13640775424926997982042250437676002844309146939587653132095127876123277696124154630254353462966901364471015798295355996040679035892882487077335339703041022170488049915410653256583608856783753374075318735153963233418769764692181508955439178702415989007882507878045393216579157677089016643744965857711911932261819116856216107564890572917710319889322783224607499996294733813835546960037799047714366217551096060896670469727650364114029102150064488415517965308715010799215740944937645663209340440436659945781850312720241604707229966472119199472650043133581567071555050969045733552160221333170536302657655150322123543164629443875309089927902883673619068003555624864531155567256363939007062107346104936243625264745689786347095259849905983350575922052549747862723331073684641399353702305330785404197816810256219236936147436561235464662643188644180035160761701487186547003593409406809429654438858132505121584285881180580193557537530350629920163005822774558902273062754586483313115903966485689923767672752946937656583169665849784076849817404414130561356665546809057850938882299364853832345687827102401048147969547723559521359701865013644103336414316955991346438496443865355001319792094212274436282284800931756644625195796339253074580734392911905426419162759149126638850070516712930168620704378948065026577332381519310740189207790949292477335753938694356592770702361247248190000510399786963024616836119491671331728048599129561905894874743943213375869170432285993679673255805193363750411989780320651111087493590309981121283088005315799821140530115952189403118114927892806463488027888516519686617882351842990876491258634526178225417012217149542181440625237106766395433819738690551164946962485549856678023972838898415794017119454516480786684103586343809210135587297439838101730116271284906484025163167212085818221957656527203115166495931610391887063093190427004566625984386448457345640761995858118053578794701306545063940748171395072113423597377956818441412916879065168609011717888641667507990888739150179517427304879657196767113908620411503231046063325472937535956312518425668047450944965732132035568684757671548533350369499806596452497835674506158579349023031197209697826803144050209588539477645836513131686086071984506033579222694783458934038101093764836104832334322714328248264189539057512124085539934438550382183997947270007393225640000040287839764094376878081000230706261860814345321498128851377145625490076254875830978112131338957119101489742905595414134358307912212318275192168757191815034942912843061307287797492673288996232850030887673028389459246203049331705732242481972240961585299386017957045078341287843823253809489246699016516456789743340497642211692072411605754682003413966353916327887964032760128643302875202123014386493374912182746757444687821997601344256562053307349872414113831980054011584410762978871374465218735575422289850251340423842158413229160367246291861808195441465783664086675995801550373556588750326065585387573704315967135781626815689420482320197620435617683414148266320525428880928016706013373583503509140683815038936008245670510315018390951506815337358331485532429175465606142051108626611943169615627733153317996765802460802635847912424353651126210704746261748952808836202275864383326345111220214432896470262496032244434981313609636875490623873453973443698266190116628195419545372296095897813464947359949334974818888917617805091212149296004121087809617107660603575615900697160927124165133065491835767456261871186888796642879417679468651779553758455295700226888065088476585895225595136895102227611308008729308426428282303640085235403448750139510614594810143886824243668778807244013690165610146604925376773417623138147813385296351247984461297655100987795674470314801429000396551897048503891479799347873336677749626572474269038499395523743857359179615529385206266726186314020434658291630604049366708467073226733981412631489118387466606568110032282882372205037864242308676140315066392702655957487785270127549949799485348994141673896251687562830217117087594521124364174296677046380105449269422026818003672536733384796653198151720591989978959219511890951159106571542267696406991042925554348102540313680429776321091501766102477401804615177256942191852757673533080346968821085382862230914470330438760665582631366467179025422860383903025003005258358079398656547501717414716791459735316422070475006224682055260737219822090773064017481774695143499294298971151513132281422094660906118277535112740184923241720064938631497713629668560968613002058582748903272984262644459326910019745455978131093804127232370043044433999641655100069046474532812339924253504740649702596256394332689671797908264222425599756486448722260320960048233032709395759885135839196026635962104745057071276091162975826185383205872089711718140296292553718839364596311200181349800382677852945310004878627633703508788119747712656284714840405538527941516290062130789531252040098444614629748274216347079571013903583075899443665471670574566353254848872967982460800668644307462442964140725883049000960334173939683553214632940935879344092282610726833659261186026384023334178893376494620568250455061762300854637095960426011000500329975828091675620745553606015250509642417896550395986429948893523657031726614837508194713783980751844393907701161384958394544314294158999582793657857933763569760301892490077645110622868739683784180445991248556093179707289348534259870393568924416285180637048485253297431494840426497892634219457005317813125129809284073414028193651118472994288201261774692018031878594640418166630517212445963561168801564786582667791286113958353970347758019613333109028714982876053571063569689579365855108162146463008344168742720735654348822073239886461770302608211141109854549823043058107208603475979236318894004626637517834411175042234504089430725882141069810533161242119313334514061783766482513714603241690694440266641141133804116056418742964068237343437886733874270954077049962740581058133388202615804844674869619025021739523282213968314899852818272724025930684924668727901618206227245555818000515146314529569869672814896023707647184299639605203926024165396169103069037323903586518846760904477553350809640446280279102144717216236173882917572118515051561091653315138223131553099255263415716761480171119926607371951920325207148384482501180124519787724051680449669735652577539669733562345225908100672534636197895770663860621576421997753544719652662282745622828280023322565433221395566614195654379536415881175629114889224240732273212500460796467150914124054758362117656419408732839057511251537396806029186637504551047417835711436290380566682883780723973562178744449714607818444954796226619480354448945201519378411911864028072874733169071645049057975454386013313555695651721538222348234910273083266259804602439693575167785704690016268789896584510766584163705896716026040759535011890106038552501907106224803636307035515448110220434236388478087718405828026888918580231831677708817358433775121898053081312431962344946293436630341141916218511499318992648671526654515718870353239090421483896090730632705364686348144888637561362191573804622931166769599074111449982802737184876319503962751683367093940266127662518455306195469711862244991400186771135627242676566394630177763123436526458629485246618963825372835996595172348853009094732964011032825969457260193477465010448443613654402945267069979650457579588423186409975904956084710929040631773355579584897631429194194208497603382261925773198091378990439912684603260290232100522229828440266035574325816520615730709029064159773031330420706942971009866517045443888779002803110807388220520499266620670866606168587949455206729724746682893859814837704747298499575222860571685367314228764237902215689177177324669749504340086196459469377751969215046327130804166844122056016886004011709471885141333151160959511309557032558556811014776277635158202746789765693126378973815806675263654741514297545982573463113337390051861408515131545110405409510178145541875285139432918768307100482624916396697083066421184344047409154520512158771468542652935694109471590239488074837314370305067153330147366598107006395726359707644036928381959821934978456199943467136290694286819792764360696159395927170440442610418730466345434170074473503358029391645402027278307225943513743184469619824449362262557390270793708420533764563603323701290730571182147332747791231465724714184637044940161354515126612634336014707665631723990069582613046792433709788490361144228805435028970485488725028094268969350248671743818967662758862650060375841111720597883621335256790429004591839967279530460108145767892967333327595411322038094858099351457667812826030547177260055571702405779765900436041071696173776441469122817502726213019943174598206087816312224148627261438435606293304488905984817716827249665422543054221667292185501593763888491644784310033824189828892028412441445252863706678495919099485257657802486616098623653694964550782896655864814569696292015992909146388536193285317530306500936099235374727123865408591116745406828322274602970132245303179036764901273288331168933292303177844299514405501028891327203234817533877081612107147233371522217540146811929274034805056779895307402542109472654507002802606764008411089585594496164466557743792645375593092442831006725678407159731364749735730940349920744999443687789028338962432697534718998986715364579993949414933244041163813617497163609895664086936990365494512288081426255351643873838294299884206618918178211561843537456958052202870995914768448929613182170293544635042132541359598404868532485640033229272405155507212410489288040873828587360242204050004454421481392203671492328111220465310805416378824836073460863112791819646720708926553560279334745854198088611270093709577057867388429313842175608391733136710247852292356417744309130562974634412648184864744954740417740641957530589988480251585007922441440669400271041293345985851592756471110980728275737573131837770440293189539897852823781631859663192976948997382823038361827113399693113872053174965014009561072177346966884539248710302162714875277400005752912635635522800488435794701716584835818329557105903708312977638704682312382652473384467458692461009308848753190616681554423890472869234230380192591348486763678046354994147382532582807797247236730190487006282263572181444485327231294903744683887637595910793673753552567782553811093646942525140879277880778228446428410219081301281957116538240541300546653435317771393712647523470712003359483222899095321895626958367477094005921655925538110050702128205887143430866022837199050818797333463138651593082764223915741257181386994284300875761891842003603724087657390197388233572399435248979634099246993870033807729909637528216492969132992636739728419482458721942480309060803124939309536242667872694876693757153811716375810570974174743461733291283181960272529578819418406383498254058181544247715586342512461708937205513506844050050528678475200146671512731196760505967270043858151572758964715273673425643119382631517785197974850258157942076921708154487578842782670804798190120736373769637941144214700376453215656868475469633024775750351323685247868980661776604432654138252536985689878253081903940461148173454874396961412094319010941178801554713050670341995164507223779936068167068189550960592368486839252121100422783613696015084899425502202489832270911170477025667298783828294264967392976388932229880333474997948819513250069870254874412948998532928915549015306792587116675523803931219302758344467453330669047270728901545787511612527746956146785525597499774079417105444000078397918233568460723801729058159164599433950104765594289865989911692590151241624073373193706097315100582256196617007416428035798603370061054679435265587919030493976114403756874473337162236678986415800965938412561799458046472284426778251159726819614240786956502304929125027754669392411481984115471387062080088689058759241260737683081372089058393817539608932081965875274506711130446855993351403020694131340298194004015403216148007296740225778264014303614781833172768222510547415010852583331615597957608716858194816000535661047617140978733865331363110130148837609203803968373435792422525449987470457577947209217621562353982215460183388497388211524707047863386952869105333129492633788650271709566740111410321438371199096387409856041794846389008642465426511161363354343073665927653789488883393461291174177462199467856893453792989370056995916374833679485386831384194508141595655718472109023441494221133204498881218836625051190684714695944099214445604077481719764893876802288245322382999363113947025890067276913625784877731545707054278138678342249925128491380272267082682701654382996646709856478427271932968043892202829786619361158837194088656781837811206725396212266632480256469060850950479252292385140519495995665795561232721445164224445963596925267186034654377651773862632290145453759149538394477067395717426489339531066656098537145059718437852658557024168093690570866463124668979083295442961939825487286209513143776608770243035892195748496169228345362594245643961584794230251815321024601475473604993144391176702116221075110581183673143389177907361603574840756760339682446309136209895341452106160969401066615733700592863104713357165983646484136079850096610716336596969527874566409465187879311982135244701438750413954613693774348986686590303497603386221701294691394950747390059982731547999142561835271320543042048611244634346031631859479634815630656047091046909011267162557438648772515334898168425813327586714200620568494471779727368584657068055294975297959313724463617589941384519955239782494524217504758465813948040852510616594168207315829772530139733405204770666178442746348495438708440217845274586590619864489032740502415403135184818246181734310018527322053671324246560493080403399263425894106621165402035982265975638635600997844645741266587248446790402776751469666944626509110608303019477759894438400246406960574840518789113244228158384372339567066194620631323905226039851925990786230573712526437204893149722355680311980173158995844652571521608055879550653848718363768695649308607318455784584031444060017621099704389754165216654449844412941748010104377428313302734924070352309165092562460493898094310231639058502996784338860092227771642105248682892919355566296611188690610128100788124442252998632044703742314812895203365747471687675316814703047511922422955640564449599266817818077470229593071666733314581365242460722889601427600362768249778259742703218312039756444200029609472781895615646253407041520254012518384621272357187157390558357582027734674021355537042302822224421141792979395268121477874029730380991704876276002109947632062086835717103321052182156896403512947993018027225606008002066732188563376951761785549505506810724676268140476440010855820533041978542674009072314204800680476033532302271725274600857600162645369566222918023763225234600769893142163320430516719544124667051018036264178012285330040934143927345467201262022424564079345467696692358968300202966365489248399475847508225537678452895319993574379402185356367489875353156034333464154710043556779215504491042097193683242664173767359629039422661885481401440491557598944325856838305140085942742608266045354326460698512646239926269048803789826377281234775712020057312058580626934876965797502531915911632937828029374695338213744485571264142752723712536486705626733914310858852090771169736839342224996922799444870818835173819116231133756919301861230066317157724190052014753288883808659924887420475047128207962819236777019157108589947591708600373893872914127432858015526830662364343014853631540428072112848089445052815854173250759529211663962466138158515288157689462421601462500429973549845451900750296366753934049416165025343084789065767855132758407338859296077014695741739044736314235808138281962639705107371948422746706679675035547548352046413596482129354970101035812032251687298241803728433660339671239616903313982785335494579345757524365885181559402592024590975587880048769963112610913562921293664502156137457156019098128173016433256962487736484862273867085762058405810355367981671718778733138055204075956828412217305285643010839575600434469250814048674542457616359139118571466297750776278225472243238301286388919836176768621875766183377932716069779419619276081661788720966439778163844493743045837627792372083418840620179944229014483986885824899840233995858909357964356173345611151916001508384886095862539600439277698226996548176653773004446782254167299237843597754011667041142014654721454563315048880464507728088129689961313940915051704186949160224977610452643021782369836189582132787889022307803037513099424676838312929069117321877498249528724092647640737371206751707277416242611555132147980603381308437097320582681898138413766333677706007167109182998139673149626173274981693484791026035795527738855144297180613396574298949134101770229932332777165910172001871423826115559167133878342013266009271152238025471197884328495879989168938282642729526680032360428856703901679164823790155164695180165658121851184229501943317955800817888734389923188414063240899100466848197433940580433757520643491031371922925851607371899066346313492271287825322967642076707741413193052189547434444314265440030573057222135170815055427079445409328285101974635446804253535567328314543699884742745393073709683653439119863354956960443851167880488802417014543130111990267701379414932701034945636968653232572860966795558274538009350321825430329339023339168143646305138171121377390765392634074814931439993285392363539420021910688386934928277811826663162140054462321606154843149704101575562068302460901044142915089735566530836840374908277682970484998699089009303072103391196271047977295644282985403492251945190535214698047677600422020574210689861910038559169636369449595234828193336656051192837071187110392685371926140701807319568684792181119519538206133510707163780959831394496496599838290117296477697938561483838194862729122010737128013632736817799409003841362453725914842460272357050016175606169899521692131912937952717953881892734866052182848639040219304313376695580764176860688613268473385969391225205813297833116568563154880268512226010262631866169141689426269506075825080967164476484350471849000354902875110463488937177929622537449910354679397137886921643431827706346296064684058567528426945613173090561300911216379175757843869467493853373096354615661553063285319142920356815774514855109495382594808342296894824641807078800896843781635226793994938753170978530970836035851747435434588192839357918197766177248805173050310301778103792201373475408952095306285131650299327674815122095549542701161126384882783143562207591884553293706402398672296857719703259628467362666692714335745874612085188062329796938516617076155348089731245623660138850795872074398738376182253042355617100758002936440059446677285600649695572030084512475348279918326133236561379659658001860858935509039977049272874225961664152256299403232207078850783618493930168230674720071067572037150737489451228112540326566798190579532937837082423868399997490380426335974495715837686544232648862520753341459847634448789073139251089213654125249291536345009571495787113395817965575163864268059442743613728753434453356264091329267811573070537102074768207267351622043727849564313451334796602805888875557127367577200416637460848796751519225000975241741776955536878391558840756421261276595298246458542835030449888474522967620208407001410481848710158310847624139101299054570932797148387243411861547236908287575288384533414945142436591863212503197938174529948249527179080739252086501269008048333362567802294338921667786170248641000075298595058767033896190409360032052586360575945246504011664571833429796406417686919375131975919092573906846948683630660144696521808457298242665125321018138275223682782219564835987813944721872436974728229736662066232625706068224018957586530020395661639965254701331436267226984385187354433239727252408682532000088191495038737604930159990002579440186784397355904227493799103408747958870248097711338610100911675623257589642189081908791456228485755630354015548738447773485783129872380012867381877120616797036304745836386650887797632133062685374068051132913426947220537337570430381183773382609823933655365818429781050729942059932186956098019937922384548161656971802787348212166578710521105225379643673642026661571547286040824102156570309359913608029290935871195662668156806588109276890183240690145873473911117543922249299332152247235566389193230338090672084534154598953808186290813323607835981662624178460728586530930553149565467860448534553942282032723507402335414981196007203532559718860713844087176630395920558464593411731896092600289275643920682607065680698294164250701762610181238556547180489419536533035694241677703113150193048002412641077913271222535904230486184375880964768540635496409758609237607780818377266569060871686224812163232729485793125822203340596969339305464277157284356037270012004544790360854890997129192572263605049621987918132452013323954121863375353123953351514232240777131068263904242656094885390323693419739952166662224953254452190422561762859343289437379635282380220185819921379002149651501278072027325605156837646892271953014668868868603935582052610431282395649145125333264696982815572783010727920043289770217191598281680370643529928190102558822799199522434401540353123957709130185915716246677894244968306725172065803669894518132012217331655204132170282620675586039729465443840928524274886268654374586320848746632444485911755809315479797833589647308886629235866399922411004912727028257278905869415915769841699443935319546426001321953295403464327709145499049963668052696106487732362955808342745725992553805582285229875309422465565521362806652330844612359772840865623911159252202642331423253346263439794234027111039596166681494431917495021292031497927143159293578278416149624086100496431188690920833599164509570377104123224212766514512621398035711315373794088433999978844559970077375496998266312311940846367147667951110029415361724032988242604875779511323988485315504745542426744703731017347116188079457394507901631878769483366917513131434062703951776749790897581180314623513413623526876878874892475193662726419198677288961079725073683459277192219470873793747322950908594585099114231710846127970956755569598281633609834851938657688916301124157043170677640656295119065307114132967881089911479782339573989022606745985056507399174174901466895493001412267890395341305442377428661891155766317680077833529417267001546777043734884393683755948064285667763547379692134109269389246938047552686652793995963669927399637019833724527447186168170661892465717465400701910393801838329851269019239431443813333839206238952830409682675857166563911107551129103337244570347559079023655411701136989492388587060401329600852802801353777883025194409495545948456612568505677275837302469079667549075175319305360419425901808296103666425491608284166622668189576015928051465871918669901096197104954900124440415028282732448510715272015401185768496688107301889977077216266081964557525177326048446457622168882285659613743903284715092131263021337145796488768678793714798806212907387200273006350704865313267917594251705194907939887867093340439540113882649368569980028247324065566374955191011941634067571108820661555177724610504037961465936528006748723994488620830993032702538082592669246607295869095222805142546930816804866646803875608047107472412797466526686880440745284937069847397466772451813472778539531281833529605113404536491575541574059185735346173462432105352116406912140372802178531281080964725205309240935483362230624087662865948865872859284747450564732426690657958379579528716259132814185857873587496700636094018253534922596613734939170014209138522846298912648375336159595846208472347492001545795328207967761020399824897732046328257898034894681095212061135575096359012075080338364329723996759853094359344932408482877513362104574106567159324132894159035522831344246024968196259604288190055230093443452603206066402991424169458909950843469737949052090468441970673555658781315825115223971269710865525376862259613597030019581049542070371313679579575215720299996293743915469711432387953338011583910190696794399494890232126418453227431894417876527013181207385412486635877352956914265940233364529941070197867501185235751564225791144402731783734746010212271768838684872331159334630532992783422898070403943371066377682623896251684905712242746528714578686236274149347801886406343979947214924024680838072934452045694437803123908501379733622523772924250264066518956237628860382449746318028683355550567061595383934038112263974992274706731642962976222148408565890311117624464298754090831340929675114969737608986153921585975879740980666367700879506912232177450674018201108876282558534606966444112607222411415774225998289625230160804462492085074824819394258853560092019144829566286844421588878419801037280606159649052109144546309165986996699990385830545156557381685513405498329169901504036819389018346166816445077935900536191183965197015830356875342807458907868470965701900228360250711735566296899127324005508056908088342919810806590553773725493952856853041857231165120560640789168682442706665644418087574281145031812003620681561646631530707790338551342287223239046955453991320565840736882904316271705560142706472695907979661928913497825056000422952856311776584684772002312448107337252893556121124909075369625685387666919771176861428922687612335610939573598717084969978946051989619164146224355216504426306660075330058418118591363423732391679724277562528155558654000014871330030861652668793139989534989063076523914732891763231584707636885898877648946797575605599226371505867137834657811115751295456427556319523213578226795698799601945181475255882435465885093078103732060423661106621544382133422567107275707903012666002771119282739045283616118459578223454873911537944507014419515254018904291105131928057900488661775610521876715617065690066096774506107639867923213776382435099184121547690272780318625246618050758474348178086552309174077437866330892700254250813605656410025590323719109731636163999590010342334636463029556130059377266420053812225513585278696808109283618067313264870600552023904616134688682727637844921370727016998081240581970038135366760198509373382637792238234343325341753041622807404444366685500391483201176451430398617201538052103670483627696604214205754799105400194119986013649774058914707949354127719780608805685008850275224582430484120991293959806918905055576025369988086246031513335177997286666330791936442314115879218180414514178012789248393395219743722669060333984932521190118225021386801078697737559783646967458360571164308555481812250575900948935070284929529726391525922230214076941766683848791089316444617642687274995597486339433564215477812782595680035436885349967452322710925004164123672078351652883680791040316008174169469134848449819475107229703119409398496233252681069955615761816336536537137921437166149906538871041410804126345096388460205806062729701230976275147951470190051973063722217254791740545191749375501251401761721277855983030831411581161398984890173434561289187635951255729154955611713067523007607907985767896730584796739759383536190535060547472129137236167778404004710548557688503709617064350220284111974320060531055096398409923508079930891903765934751339454984620854336089372390497353777046207318273278329008172115389676323123148305335140746944610441729169056416831008795159119397576793160349479160595639640815012437316611251746746162077856170770872961641606916148973531877575456780929331299785976559487479665879119093105518979670640343641931459552251201798988018973937315021242236030904933042720038551506791549293192695146352445412770195806649811040718168167543724007576184745306536740854276802558314394997979324843260853121152166467427177761178601358788822993152042041578724105670406011994951432352637289842991351138698271419395040501825081923360242764559021383520594223703540714317436993310157314269561782883228462475825169174647983346466455309203793599005359367552104267201995853127978257204713103309049016888603044053765283911775010212872055167422094580715035885738312254500379248948823486451813630426268368498177279207782005432819956526866251329744723038185236822730167427009889871228188854891175117003363250168553505173740494688296751749989079892779682619500748474000909218097308764978019568828177603795772910746560410834341515249894213196668682739051511334494425436129599517773843938034034274552696958688768987836088019325925793107809132307192912480383919035480028004015702827419654200393219326080326514553613976274127152195942727103373133291183408850108448784515135720823802813607854541122119526672096825828294815200061605356545158501079579692622845631869725091067073963649214643709801929419463391754615506831378343796096535053335898055046822204121747970908617099411915918721046582263890994539899595484382109744232446829765657717393215342359720077522111989773459805904016465693453638837135193773497621211184131197715275247005458304757624069174361529695399398986378249809007963983130910534555106144813509454007758577124761869839590419034798862218507540320694400676327695463413604980756672315274117672055256529659331201055694489760629648916259346565054278499263802885091870632113502723121813647012977277061221574923042145170394168419351927890933660392754676039989261505450852976573398559118900948220895802328352125301929396887579669249762407190405300682496741309997128544389266633957849346201557157378233863745999536478979835809251006777286037210775163125767609316145854527674366953764008295886693687156941657214340117584255540425581633920024015025251691741379548260273303653925580545941952173651414294672223723133001595653533031748816644891985894756881603642626562495183883997102859402676894181682954849208381580644666612507576379740396737441491273636259713308296748786526147618958589545790156491121673100949839374298188108169191847256645265010520520895812742425810343720233634724032966135210250200156555000290764603959819168023570358187129135033943630916788068079242221027450798861490968208377627925318582798644084884247734314748773180426644491238679715144409710927803801938492850641842221963730323068030213031052463598759571566304670071031614658293358963628803793458889163433854771403544730525162112739936598334950028434606269774033773063355672658768372871855836359980100630506029894202906416571307214208227630575950689626542277329309030716838436223026889516420171560892397425471797007967704643845173449198484288244279416933875982085684256969596590608123521901406854520394076678345271653776680481445340779802319741175627314653113903563656797024257553886251707056463994325935616932975404497639268692710720744665819450569945580523297012188880577241107923903398064006575726271984500639982174100292706646144158000614720715907727500177385817784634751487987870262209992587123185376033560644220117670958186945123873977059811602505553404528936410497011690567546696503931698563355078748289392685616690977115326333554768356500514601569325049413572292048457646957563798446367307671936519575206193193548598149562172836727295620577366216417686912801576904389265165969591135253655288445021098171078621257687387563036525890864791154504206365116733053100087472396201517905165554825784301176085721716916282712819638367313802906215132531869680585777477972409010628607413235855514084458345372231229245815582046123949999564654064890290366417312961285168851764099350569148783281791671870766933091777717871644963241224166719148298819795994841597079116933954778638970838205847741064562807667676782815063780101888244951074916274506876784883713611691021755967522184661756055577280120002013166356306120828599019656375364194649884559277708278689705221356955661910932629490344804178371047777918964090784655247998278136108790516500138593633447504330381827156873815152616840583055026604788725774114318095496604874267529002343650387626309374030097194157872212477594263734985340093885883540345022318261519148404149891024974699782554970163884881692370668933685956642594051036939529418812089238313805957113462399031327403652308791360029338972482595928691566679409234289930405326573230256139683701781684534605793313787444826855926845998083826563301306505921348027936553106216496918294739735329661543791643361222901910949664088267401245378274323049669384888996791899614670548922804639842422853257841469896770018541363480577510914026341345607737441424652644509540678313948505167600817413604855935338308175736095252469959348817460246397723296859013955361392813535169110117712066117351241995291862756085081470538646643173254252336148818160923304634484181858981601269397015938261679587571867989067058590802187628766335816659414655538275634908430188468050430223662014628704669336701447253837947939778429863425757501727091301633670639962607689115013357744028963013152901375436672076649628581692722297568768529077081854338562471648971968896791992695327148113071901389150917323282018069644398145455515689147592643034799567529101287576639682121250635143513515430420183794319734427547947649270220920678586416508087413514985069823274015693560441195428113733353551260277220826544150981697041592556815713699549958097548010041830497040548749560335428934062755065582952722003823435185238298575624105034237553523579118590031580144812772830605188772983768509299091180148576980224690651235272605347244815798177231945192392945935745072266141298087022833829012445918203084069975147786087116464590821755949753029750099801178008906917837993607598465291843423436170703363986733670395138474174703198052460935915051032747516933150852894810214347977443997788119609742175168565324612828330367541757219947045292057718989386835098184580462909862027535973360322042175378284914045770709716842218726789925132352503391928393709608952245507175582092787062747716749587425744359598635526659974164827578553479632702890564001707251849942035122416204516303534633581694811869722080793760718303251972277801519179107664105687791470325127583051134692391570425316715825369478452916125186965263981847714855375971637612562436538630049782180103531228413437052350718018315789971898405339314033485593955417647485746655650135626350818319917455497011298520638596410262626529323545975157275702385697244308785601290012644785318663686879730918683628387847627003335524552120836773199534015523891364601208489321875524718027335139384822749851403734190491485574953086214090346422101357603102302156284057526054295843767100754848010477906062485706508447534328729303092757252673089332263315353877067513154394618280658462829240368109517753905645955346764386465347185583070798658865091359108578150104394257567585367182683342048089805568518672855954621784229020443863753748431321565775462394430183512887424302657112742380582119813209110386301449764238911448727586680056511281730905500833680137578041636742211732663037298196835454996447927811944367888940560426441529181634559953903018157249811570123723460900980161105174276251707508688226902185329371432684551540833321415176069444578904731265056946428526475278254373209310068793381952774232552265866474415225190147444901508665690356507645370990621758585770014223370269900053269127458636493651996795882191769834857584942589012090107937356522961703229550622852294305675523869802765198165121484733498852100849279661684796412047219161416878488861922685287831554905747920953396518709391666835265399147211646390945391583624474609705135822127301168412921291111659847217733725697838196423982218116236880309435016230174485759787624346755127378754089051029903798513215374782285509606415462908351611899629920531689712082672067426135407105820295324048275054889584317165357056889102371863075082188298716820065319562626255074757623208240712930749583902963620319554334879729666601860530647987175552591572155554688356362149016781988881449108206785122884199821256861867685863638942436237199079810029090100986964984288099848408527439518624090626118160391978645099243316663360182750893732189292361462816169045878554751330536782757298736097159992941975029258754158834850663426400283930416461955656257087587393414909181606594887196614017521204364771118809911967878764364499689500627516245514075822345327423775220962009465001817992559011516796437300299791940779412321226977029152259999374025765121697373821741874803883546014615037398449205511884920490578743137229880678042853899511417725713585274982960252753163924495560780458404636578948044162424353519706080941127956118173605939397080613996937410611253894749013294561260386249660579456571823205131528013499340285452682906256941138723050540188760512131084881992732510551780681662521165927861795006259164464032213278336600205273590589309233178903841969158840183062266087039710386786958624662744831040052922812695442701699787525022902163520600947082783956057458374911846071607740064131252440503823949611416818222049162382155635807303118171644319739763799454977780003755189815692562825864305263638238824557226313619206385724028038502708995198649878794790299844232644727532209270832178345140646991722616575547765608464900543094388239753776249854111825883198529684713035161708110471357800917529479771505476053569007682476926290658638488408662172287515041559173472418024733427629790551243294237503075768590624003110002041362574819128257002754526854918916100920486985190356232233697723473809139418995609752844444223662903977094885402916154017527269423208884706174520016701124955773540763029408458823766032227911104211622323641007975361322541463380110955329490258681075741999745528706682614328902636785297428805192256609358289247724476529001563448778633190501996546543881663217191823201290835482971109453014989971627819809945475138309232528736527108063219202183246371040915888975288407269919310785396863829364518412462845926581098197445972203225884326758247285604913900004012835705849226482746314037715322464954654597708726028312645917145188156607485233922559188957444834022306922664413714058229367130406154881260660608587108941880418202178949013212175432605572320499213972751456685806730960930844192464440240235519733859167845539926498939552473284182972536504243518566813971857564741969749022178397122924967194181695797564309564939376160622486982522469945904222688834565297062413247229441457823655985101317503021902842358773671923980561436180805122778630978300872527586746783035500282896534452164744784944340994900173101248545349684614339218517393445050262257835006930844680579965560809347315340126961101571167186157561149876992572236271627225124792309310323302776926788615905487118692693211593589786461423657105875855908694565062841636369799876556812794681950765767864180885855810068463839872090216870923839623194313482049188030940373575745875523709814063858759237216361711053396072122834771262160520466778755596481224764943044674628457177738874145762907915288486794364774709910044976793186567442693913725189494455478901626012459514867014808852309909243600711496727311825053687114122590792062967710930687248549508793807381897454939099754751055728047634490588519233668451771002180452185499786684907946692788261382100113439007476122800461640733568504208518741345408412208982926061048406481399141674847433100827925044198417325196482685350980789166887940172382120203372233341622297107772642584344303728296493434548551196870142264761641520108890909386168019038737895568819910159693271918603828501857470291423799110952446701704487944267924172992486719239773929861110545138943841742087520018422088302597654114393408294215108367482167478915005499836665894814709046558785294374011353116476618392014047039549586388100079527779837379577619333795161916809472144653891015719911383534071469755272960649995903478462039746211881991867521216967963627485864345486642571808100256007098315202872045990851936511434530380453875223173835409934254831593467479238778260673900190101184470095977932792143026232754451298823240876635602403205028915175872610152480751007718105027197446393259629076182772547520697812720812007399600347512691559129063528126410122780696384012875782005524786436488063274973031314148407435160084872249629948174080371745310698666861574048406955020616653935479563082974501775538914721201227812688405826279597787033753938294114184586306072881014092486698579298110029127315156982536622114665842768556782468325384890279512071374547985501206480518523968154060806218138981917942678065720554979898071503477450510865578206722584910957626955134672108220181599026969167639677836694867491015439664862657715114882235894123495089942280876869847894895038643971500388987069647699371522289056224780690622216536759023889879454398023935509686024055554315515308242356675290699247607141886708614718596410601741163386624639244923024173591385810715946220004538855450702340573689207486968911925181244843122680995315210072419112913699204325745456503238574490852722888134316567489027334911464276874780622985537906759315190193248018492313814399691310112834146649132969924068504480673994235628829970529446624286790334564021170582833958986594704755937452528208015860827809659383658774760587681896796524340945545373458187201192042909232085107921515328563327992865134579670092406444558793025496368463674205366433369702390249748233114364547523306973896159747938514806073051717490844702279279198678382069780047362635616794935936035715494817244575750891688196124486349248782056109534742462377548342637700764857595398469543692703427129872502184074362738975234779844688406301388774043604398186633709995827940066580543895284167196090354597897442144142445622664964008750840570614884298227742959210695687778653721984366053848246785907944227580175253598348632545422825089441455441310804272195486255745740670677854209085167855303129369760351763113627789654893090450411060630743355074105899924939477694351086822422973459511679338624603746271444002405433738975256532752698681849926357977558044889924789929113042603922279193718597725075599394673984539381784012098980470044415767659219316056456368429824199782097910187310006137311853339884303171448504528975537067695072301615930798631490631904627228626242429922142632735330080845911110244620309647315846855443726429101702762630600259389121755485901025197231029009946089703735752980153600700000052179658987344497086248662772830344183045340883310174989859774506089823957805475132060213731410627971405245982995336939604277977613523353690570244453805893263101063261312781418335405996573880027483210042522285992972568686747499657538396431491404788997715661412021907523944666075696108427454033981796109526333442919653873735842550881168756846357917992212951463004661383505335796495109576179143229492148989922820961047879632971947283949407362503922756258624992045236809811063610910753405107417388903837671482507888064045103802753386020814574542193157320128760500870362535722168552514181414567028944834653878720694887507890385013738166445201934188458029793726927497016315539204898711633063342355154328560754295164058695974583450833894933238791138764631769163653754737680491485610724636143317667493423650401117064792593426401844922833811097752169967564100335831542762718555192027343666150524425165897780705994145440742017877228801666951204226445955911019424623000161024963759367180019473403045658087480867679023053963536237243063053163124687603428472995259310188217944728814251178983325606996680048631359818331252413637441641720011605034274987692574688987660296531139570750832216662054806676478037729255151530880662038846989838875658305239432382653885341408734585805516372840416151334988874206025037813243738652154661109863002800519588992948956388036086152020254583491140225241273257451924011148373834949917369913494361855962083737368572068195993951700410107833444308993345184282485831691652110257157035367706796157550727340416614066240380241972076413831408209960365704122979592823049448750615606768949030868545514241784825004994034678768929887118367428154545051724466462041357769671150095923282686483646171035485725212254668651592518911826882067003031798936355832785156739970605812494022116308158798448775900487325324154697744914708238605239171210968516777980267339791142271208372975392645301319930321929130329285891472647146317839350359225774319771713427612267743066907483947692632283313294300076823706726328179524344365246485585697671986287534009465098357499488416005285018178168898602222321144702163371659664160347994631171997656119155958003670710300265388552433924873189007810488292390034811994371685814644364798325083963445839429040549528317601685390837230125404566631530165581182229827178401022058985875817482884110359739441912770993539485585503446018412213250280111406617723976289937896099745099455262690803636588786285980656188007006103959020338344905072659842940556621724885614106547266559500584809280112420936680398994814145448034387741978543004218779328804393533516675997544334774904467502902417533814929542084893680443858561117238932958807273730416694489453507417957269566476631738178267634445326230745966800764686555476675060373315464462327241586075535546685813908090923032881441149197655051566097372288667853139179487735888913267108852925741860841343848353540130377031953954775729863432206952393795498722334806008256385017272100655221588306250935449196270183899303900305085460877511579020581086461351932603655093046193097615810476905543386526526400911578035725688814212015411299679002957073687622410938682716108877235469562307134711498454753512743800407309834399354285921408463031086398993556588171470162513175420779901626732358799166518975855434544788376734448485814579074336824670530591849066566076731689798612277785807249211470349877195159055635796640108106065301734274542872092929814212738349806855450544480016887443981717317576054721667403280035304369521289487744735307700346887541227480809861664412760766890058385093258138208747426476000063446793564050310402557079541667443660943354746813126622547293835162871432316614390037656167624932926910444025361244195131058067523458764537241876328632918300542590777471249120329019715029186387087742535286534155384312256716481318127741944971030423607153129499694581060389870794992698892062483082710517547152846267218607173131085925370101883509331816687428120604658452977334196021270026795257031147001990770153971148733418032358037390994705789970881771969460326813108829695878972916414717985180204754677910425305091310144104658312478821341631499618028314372306628392540092820251761081830678804332796201220450401287614960608449550610158049084993377046001683901616617480631506356150173610311552796568626881629234897201569798897430630768521295620951502078862367237914811843244801561191083710631380512881158260515497936010139844752379598831293139510909474585925381799775995497785817209958936309680969309483688358328362858472709941153131029705918028407045355341293128960507263351417276172797489122744079827927673547934715784753619482602711553829754978863274341174093933483718368660964684419705234046880327723009871887890463695960782231688744986751992454655976912297544619625877656556264892715659361474728067809375298939236161769769126091791541846432305532066670426191757429968005385363468354036368687354118771013150985505176246024435323882405117119323545194621902338166002670895497046508332917468113162498405202578813442860075885674126052027735956514542161777945166553788001654989687489863569493900052319365533652232586161019837946618028074105939629193060372295360384386735643298363531741994037470221512405660091621834827624108911523083141064585947178553443864079791670517052809748966934024486589618265120245080600351331718168403471446040028731878696645143685152823128332758666217815891529430040822746904139989419587706441469718027160104068421479842591418439082035209041432233763074029405214789153705462615764964606730540240038866505342342249756783947493440548331940612752129632342785317078919555657065858073738418487917079363722739022677239284993981682915571182436257836051979565682644498580605739616199658731169429227263973377624139220194679571088184561581853909763791839424350572309269225138435483363158535487553160118708736246904753695235399698748551327258087741786196024605541079806508510569963121115632398644897928933798679181472838192310550239732151917007944763705947833603155698931902830183256113673344244970163559033810137228781758341108056055310177545898727346417760736528288991651333321075486007367641489081725073302903425501840771257516509991917872523254297002872374585566375556690142781729517326822367951029356519120002272115567139343195160221214995221959441227855900231278535555611927134499877274452233039042973810904509894013021275601663821164028055572697031885642485062213509108837994936552373647254336694318201672523127481552127363052261983898726439891270235160879570912054604406973948565165841326016649916472273963259116915874218370923810123446004177485971326250993338931665545726356553987773306585982140930863621984659612607773662547260656342312865910682402269129752995387951965559381842545048423780836551519705187617124256206146791717791163210732700040645519747800587901231589574875416695353305337164021880315933867497232383448830942407286940180601191004875191828054604213675221721681502685036370161494787554932173024188235388389389511864223181742322207580285459549120783843395989803603303845684463512606048904362590405808270832072778225959715052770001065430183179445762818983498948266243510707262472714197985048631899200104431497114785367442884925878592383591805139496629454916202216644210865776431773933954572699692872250627215627133816048126399636233095439556257590266590548142415958173962225567555038135936267265448207572660933792250951048509274663562070442935624942480067699987004934205630843510846672136160911403766805063085510209241935971446506476513175947920743852408912940347492584805289022375938928435878513453411291741585833421561054334909972313409366290577320632575517880018311499890471270426197470671182678263101119729049620455804715052170764604177164766355434694650768915918997973211002141700645256266174305491721687038990478833443129795713058589254752542482471591952636799826811039439841607811756144271714738579267250039591559521902889871241715211278191484555752973554705311107457783909544725531720714955190756296972522352667457967810633304094796653929472017550403587624855987794785346351964517265122204521793122646013360690671144439910524237090882460162362563303852954430325387937566230067631229886193041014154046942287497168753562724189968777094105552653333044902253755497746269013403306801718112294455735555035357532078258252815257412039568585556380874871495304277360353359467978916883868590698075988296165344729521217084078265016562051061973474597430908491567015054105934326240240192242727400938119176007729638520385077422354485871006728151450102096144888725950032717139554728981441054532148285884337842809573529485392553668975031069563161102006160813770455742675595659613931932491619990954967653190337905076130442826018987639427639718974121311213391633804886049534388553704928026054482561869559778375698355458445881168112407603366747254630071120754569699779433693372400037055857812658776127052285218330515213586320175017722109863001041578866443503718419067286595981055550453876109954118797053282699896487992284969459639599018238418315824019989702270930050443532361428040538601463528122858638644979741037130092101632679315586433128985699721141256918550486259859776092379402636485214556757724262434608647204029693766044065436672433898909975757360769124354616619584202548101690164357186772840144657230685335804391206871021338407382735914179223066842788071297886419796837362395604967344403911728480538993838285457329282913115304866049671549776182975894136666983989957164777965147641290651696796643995218354230081388287826462411569198104554237364226974277817691920906146834471924490283623023396893930304734285453043911795255345467262169097477485998032920102630098756759550643656071979692262930793416948003479671687112697341281363569841811572566206281996007816783338530281423159568972185985686232770649670546018920564467588940392842588931404099541046428618610456559469210712466636217791247310346026464056150688935939642860710425882423422610047783677605532123460037299248575465109705672715717903706303033234991589261431661402376141558968540557375553313929371647283112884588199791042423690484465317623500846728684356765872379766327792219122642701694892785020248084196062958531598241564466536400421116448826326376992032105608484542750714956724043649163788846866562444220620784565236269085121205830410301159071772572359839825568984735205383838842254557740709121080370477095504875455636615427478529483551022761394234729825954336958068190996816193078379456765064581716822241856282046697307324376815437241952250215411259457933098727965347169264854749840227212176688607973893965571399385963309396189919235585416089209980794768494275961243694747015634383013307501541896787492023934712804566081056427243810535929074097574804570694331198022037712109037439886860043635567385790730637856041631063421054456580992567255491098971007990812006410792521971341390459622160892966931072641855251277165149354745174517144036588410277164239453096502193296847207609011318347552068313981400657492341472604613436207862118853250927762454461617048022057701421088476068333415718581117723206605698175271959527463728125918084674039280633276516448677570933606241035345247146469794648944958954664397214262858170172527942388446596732617157474987701521567876446349528161408069614668922371293935152950326354502486649543650056375868382726693080215144788851050955882891563087918647741345814541461036929133419414821282126820043101987591575838271938218234237735814594586219482964277286876884705486694434336827436741971120310885369793631380166091629862321522104187973047441041320336384261433257554733791111736260236286939720203739872941900936278671093997761554416185467173600745944225893462181931732606164250538001559266358071836002123636141643230032343675155020054804370935557207704401278331126494250430612178564187642679706662971580484048336476947163269220139634866204772581341670520651350890011135414511774983874277868846191984242097297813086992279235893222176436425777249655859516730527311678182444526952321192933243763766845905394341315679830771059215824457682887177204014976036933597052532273267409153082886633650029441277940176605945689539040324389985803843517623527421951915533975802391771823483767361262326873774788517961230103432475881546569491656301320187501354061474543024105035456063868710980686296064902188329683067324381362925771805082303661647168424195995207415681878477894464138397640228381961420996731393994058857582653673244098076856887705481619256837584820463842045516367486810859670007244977668009420058283277968175694250640183688690020112572375955551733725372537269578438855264988299439481413187172983354702196579170488780659376034482551210527372371581946677989987042963190186320531322141504724930713585048681174287964992763172772905037950033329305151672141084666265598882861697450514453774753920134014041643599222368888016007504243354761507628214454646686576867022205021340610990323122410518837211647130783146356420258140855989934252151035548632208345848665841667051204414867765282736724070739952891028847616810211810972013839975299556608510174746273709828835116555006735036422135930371800136224264898411331553343435690614991542812675867215067951990582953600882450578599289636640097514183174966251326463178942448970156518980026869331303791734461879447907150694190080378367865095831408385654285210516690731402708495754622811918238154978875155363809361533457735842599024636271473441984036765171908581870521855223753502396955494648631072211669870792264681688243488088214952649075971615640029497521143220586220761907429512453054012881324546148308950189927319529808721913175273335600863806837762783533619147935093602932275626074919746563242584743966170999367035610842424462775547615453712085979251717460371911981259402693206498513314786889412715976982168304759769592514594217227596543062344622472123399684159813481274375379601635723664887475933824201852466757368981914593989480518144040294785852758418817183535841545501680620754820923158000728967079596241352896522251460385490449340326394450603989548286206657409306412160719369248829185683101826141880850234511390363735902899155294449790032511345292116215223258170553923490496153618870722532608645510285185996386902389867120041967776707712223102947649555519384509001789561985374596918062036242731315186569218976746165752616655030429214576651957107108083334635513707454160084767097305055508378305952008998159354105483604162000489690941675544121161344141477587395036027021164380181779611021761514327448901326754980915921872235981676672449098928636374279626451452508810140951180004234997344058622393446437959082984036601018881613523251925227817832290873059371006507142386034809275348120768337953531069087611553768110706596363102289340781365125726168138372299744061609818229605002900627035139455348998950450104682820466503222148656268312104018170970128471816157467109357781139059077212162273541858684623213150069059696890372796966912026846522592867246915929919478729966883627447933964918609549305013398340465355191487606273151308598741056422929079584677637786471401056769254850461376665909033173478164890347145661159877052084825097702428602511752453846805739279030895616056885235370509343650488079642554650541302343826809292245703398679626913404770472677685130682993083117398007234541315356981286216241055084297236730351413977389218761681031570848232237391715047265582664403349470891837867761471804009090642070606952671217314596811503125979979973825210689313151405799733401630338099305762330972741168315527537424869130024800757708253475059396008487824379856076721706970656689021227984977744126918483130412469342425651981431049394220533063384085320093501253861673204812267098590606270532422853858565518900641909418756533929475532861092484107493104027381624396451534021402664008756796448731857228772334629242958480433852117512103007893474210209626273494774459586006960029218745458567905652563155386009536881497490861705293816072967997410349219261831710079698770481617858792836644648011639975794131653256904161678952788663726376205082862113750674007972008357878433228751241596264764840553636016897489237579163476323056740882429481661543440541063854151463214111970174628799144786064189861229559927907426967913072607809230870025111286232476352147779740534029661033701587660814531769122006095759727506787107482876725336324353397706135138549514494983376316155632344826042348034872788714213893063008947293920787703864093320456616561736088321857464801471722257549576858965540998173757497564032623421397408396469372111386814332889566418671573156242298502710552947716360538000875595111383155891258643740465755072105717740509560078799408852055669411445679921230063517208709772269565568771248809438637078666339267788632889265988558731756454942028757687862122575332044532403023461274940392948283472004626941113275592061851604624406953808483677599785992256614864960719495561227311157810050051036510818197820940771495232720585185692345741309707748971016966914371486398374265717655780408309652846835765624207999151956470315922004733960920348090011088371536310774024141459484909232680348064192537625829118673493067091702805250747017733174745224249170780939273782810346582396361300221621353633860843511284893885795725739844195892201715356845291106571747249937959397343747084408258711145293248762650107538003459589676802791062148042194209053362081203013615662595592581306102319685366249282809472936670257636306407968016025388246470828319697876906266247731571789783530943971877544222713610308678500017216100130352291557387835189478140004046858789719944361705052463584181236350969929085483393105916923724692698452235189034308201547600445217877992599523893570828812416033279393195154088054489674618129535803148201280944579002121952457559509555786039439068382651858037843151722569203042717846513229671586709577526747407494630056314686670497317774011167669338342803815639620929987553262637852537448185441495961724211452608787259456418998210378827606129956584936813971506350229934104477602661902388568917178946113129645752421631722900982399538074684217616800937305516639188140853441846220602211478693774502610810919809293601211000953394443599293473722910425570986606030785140443238752356424266380032324232284375188073673162700336354381920437125060375546949303808977639783737885002119143882689026120373901240961158350574940530024797455975365231278682767621086365294317194953664413152740008410281684395690888781018418509797572254306919422411274036606294231570226046135320629731612693908066921610177650354352348147354038108119747542755351298354116190847711290228262231874696926098748615434870621254085650517480056274363773465108372149235277955462140608501260414640980108702331723256183645781617753725120967013343835609754618348411154683965029851573261088809220563273086909860982928376927084171471075294567608693865262446088372345823771336348203430689103913397923062526441326300298113669795705348655349903432323982372686605825147789597273373644703328899908913368676306240405785861918543114822825528992540746108180111003862828862288600221680757339336897374632491936692157162614130406846394709054037011898900309505886877991458049059198949921782034143795603679965554713262428388652179295676924321958106678544759100512487660124099299604623343018137228313847767186035798664474984546672955697197061137385968075015158032952693516768389660689438367335999152500163459193681194890834114308909731980552351098071245706341497086067697193135722562613727319696146229355194909424002546675316898347641569459046929712128756026872581367163420855938080645025836498687299175378937628356234169078575729842125061057158023617878376129459476365261308417078995191664844623171537665130956262493354407190940676330914378560199144789283438290195641894962871937777699800850023758100025972941085770176469825611163314222363045167161878457364785026661274113603163018979289999525260139115965582252356269940414254861206115512955480403876444662336681333116198694517369530351118477383933584121011986125076102560444240819723766734881572970569739616916783892733725753215328715791683651507752567568373157794406038445050208058877507335919218703284286954952741271542337305030417229392527652922211359143516350348497572821955350291617406205499769753744346895663975185631353819073759091156813178886002745291281689838203791188273698120441682204546829437250313475767987514491711633393117520915111943462550950485019659797689687506030355844029475936517093387053457371703313927643310781908712244643326397575957046683453875062524028352668508360037202097677574990019386305251095910601181608195911335527477550508760114194943999634881489456618849018977537179731580689896142190280504715743035510420827416167327865812640058843327620179816600380136445602684255907112796099194207231198917605103761461258031807478112978457740158639929342913315339700754740838752268058343912501322188409084481556701682713441766621305640679900877391207969595361754586590274195484403898020725441865247706700911313851519240743867512515445440185063038271361106427910080789581969753823088558963406784167436962327084404970696267325128587986270891439603590409078424606517927765570797130151331083071338589688221805299875645165076714276544407072431185971287871289085624615959468924481590849841255107117433077482816920210052237209072228215638665953033942418241767587934545277003993038916315627197295911493161726698064733876476935550950032391197752482542087652335416858229693564568928511355740802439282542787718272509490128831400349510508259859276620842745890286027433611211265985060035833103828976274714000586718643224090388124142692344551927537486997586118790176178697720470972380343593038365230195069316694355404550160885845326617505157399736087216508812311821210719242925089909905930211791746354655001915944366849969327120272437042221604998078250255855552706468324459599689484518557969218863171507123056240564883604606471697602031029257135471449141813529961247285678862957828760699254647569460854235296808211090340564014029135017286227327339557266957044395071242340400201430238925308813080880287832717302694286831762019416652947671466678750985401940957902538759425661595116107966196083055381942386521949898566923086173676972253771369362888626690268525622035731491273574788215181819456272905690175672737784815379495330677366068669278828349110335634491671191457884327422335763346846105511731383575094900988118707788110720038985190278865346512442584550418001411710234498612162332734575448315086208275807904268191890568422081602573277887266424496310556236684848107856511763846981374743318484224419213662508970030194227899713780468010621617118336724450692068230281026274674950979758362637547282663486211569652642671587216145476528173294433430746713995825745484488598111169860399357968988044109686311848538913969884494894244847872234011373218767440269435360292494746735850272819144685301817719212572504846032005528757227335619409124650027870953790567930126367880492037535546546543206180673929226988227929488925161491652312496962723283676102482563103821934499720949845059857268129164107910047428567949297900954653636419783901998746502839155742785722088331071641935050152081589961261525977943787179978867501330833212579273440922118337735349299812092421289680530219381513884882162204269305702685016743992677705922531745419818069560967983236810562142879606206848430852679799827363694656358735858676756722186195186467867973044454403456821835163565072783970256773102409810771284247375708873145578602790441721375880565569889187766154321647049076338163480353586600151651923285413569948954994230574691332129603026986069247160366616396030157968904313542822350628442895590508296231340932057923110184803958604378941194711397005715666625482637937928593097162560032683046226890952919086242181857993082769146031674933825420018973179288603814630718559964286477793034482964689982278459152199359194208062164152722823109443484170748115163032511569868745855018429478160921216823761851959991397560723535312688676427949000700293469457568108137828259223982663783141335188884061911758765074479012370050850621327016767802002572545003191972079361533858589541876470035796705350708955828432506227561765893752237569716433443002180066670022359747896948036959446059991633636100396776195371662105430739931211055393036591317549147821027473369274359552197516163354682118237537319657383099006411553708232277031827999988439493700481026323853883333693650520877486086404180764428066354807896247229701402227423124780754712561237067051979981845480545195663521180378388687610679776728350396507317510760379511592905027359553450783127653710752792516859146516063832399467333475140392454775353442721467944597143805803260413592655296872391640535550675179296578404792624764039389794474018897347680544486153281360263690263804004361270449055908156448293859954037783866296953750432321889748344734080292759801288809752377525639533146374486644932512741438735126148603615837322900319293547342798382907554905310277240303075500517054701387355490413029838424761382393133160960925585165489518730026438298032402325296969702966084480815245573520668228005839201840368694585644211233634025315067366626990671925846850750165604755406993649714681812938172311742928011008661237744396851085095378918839009911841836960917726056802658300176290717833232638140773175335900279425405273904343555526551600921594236217726527066241962582155280245835581365736060680790745230064527242100695209690809005264174195055727117580935706267039958404299830739783069898835876728516738467819447971092601020007737881132827546146820394477695520764723110272409928570714866224075318243136842830900393038034872145779555947684269976620853609325240115619619789213051658151236689692508241121697089968653848339125401314774320282048394929933207273833846875627437943610605089392839273379381287678741098397842764068318237077617253704479585404498376375695551307783068772212386825831502990297451760665434445944296672557232950558643834613951719782198533492544024190297819386159012551508358874418645593150071296470418702796699470206739751985058890412820694446258129573191196581843871626086659606850479040532233761065890230766372556167571279869945625848395796114792161781384363481330905682688251560781715644011215628641422229747408330250645137583903713559528198248237552345822112163127280004050424799601793885400233881024874720431943442601433299240165753512701325793756987673078299998798490743731119779283597967975500524810695919850056058365371027416624178322316488006831964371471019919574550021976669885506003811136382337848305092008395009531520478504366405704807036260782278961594292293376777858124487902777502495185351977260252345551190658705333185550038865989331623922651861455597957449860560737000065695748513479186602004914217474106529669137038827804916756805543202256807489703741821844433166634917068541593293995833226852233250801634642712690412212538260986670238486771306790645909463873542829566739420383145836180916886564029631325818537791118839452489280922907959857549839753701707120956824836611663902361074345855926338450374580350701435764958606634263536472620687384303812171942781063458594439559433845587829957002556277830139292814225435305276656494638253060057341364101073149114570055995329526899487713265625838368302437333103975005574600020172583425367114479842172955207295969924807581579130422674380008119123697826586416729713266823890110335921487043326494884109820349582662076175782850413627399908035978020351684910720074259708838493617546864930924637940720813918158998178483416206019896661001291922016095423820054667447531902509679228305354379255815421229384027857078962122763693174715846548185998362720923206851359157879407136218013676430381651886901186887742948123808353746407516040079473965467157809219108137461395304085979265809492245008054092617783887106652628126250543719595089822293552681019211587865126691527607509435113651899270916677835888388366649378674678299095088605274003142615313588037770351367325260266805912723146310385191828959689351391329166491976579596216638653242420276014150127231405193972857757553769398426392741088763525595781829760795743283621064507398231768351160686833035144176449831765822355781425033934047816156126451203262611937317529550955281869775281262844188115411173001158678780364624800462590227746585995250910907762251126218604588663258836343534856827236647178197717938716824330543461474318513112782573354161518699947779761524793668446503433865129356319374964162018798426185315505732084470287289185684357841720156608963987866770570398642358242496502629808571021122918729810944909562956574739785379687928069777133483373865203505802267657921144586101498283352361076979654970139340663266535221680933854409326383354895479256266926375765945297325740224369427471375185752882692892777211854325820880689433721004701641706392705731073621166553348934111361026901200136857809297930562101704507987929315579871919190498068325097867663380677717762806137327837467024861367628953181316331831089257064088662239105531449182207014517975779251556745309228245518013249991799737678046250937421714552512124652517880533390313595950504317166262555097972896396302356250923180940194009041483580360917763042654894238997056521951706817172255576664585698285162636100303396189378963385330889025755548308672211652775157530900846919857736277207810287844961266079075018851851520471512193757388195177451697445223724472676708876307992555776750252911528102469388670982657685238878626207965831565624436303600032259318993738486273921971937823216988155331825744554682384651216460482393852752283999243184448326356170010486683475323583237164566200527482678019454915719288164798935281221171427676001090297777731527459804359056854955370773439354766388186331803271914424232185911057307101274765582604779223642160928140018349854707351050581003410613596305437245206070127906833222715896216290687383471770270929362513461728771500127024115965075362487774072885509045365151148858740425854668804929553376339581128429363344500727672875281067461336528715765211634372177129308115074546489942896630762053419754522083108786738534575357422994927457800841900931036194468072186149013719381710483836335660516975774996281193826883356427639451222135650585963602773565179854640452182421290662261705182019366703472932949931947361594552486121400339056861145742268498626095752511149257225885053779148445602065018639972906026625314409951603475112367606422310259231189896570457879346001541020104763406912228083412449022272625499054979800665884414146640877022580723904412816122302464781170339802035837547165159023413950236205716645216384746451482420229131306726627413622907651584196386973609865967867044164621919150192440298455551202881677924593897697121030768974924739691396432331001305194052511927794848547069590068303336998377328803011359775903120403138811211173938844835913098526365591234429511487377361260480302035381380663599598377154942726759370910194270336406613064508970729915074039847429218605241112454428079682780604172107276717342757271590536638357726569106417712113351602560763447761779558668141758735268442568752665452067227658864206071901986768999176103158751147256737367149057251961731920305061913822137036181983241765726671312568715016732340447698011111441646109223089100217056769258715126193926502358629394439777997144810296094319901143878339638628850625861143852962113998662897744679845141091636365423962086185512832519746583083419736505002370381346514759948145617601358046243417302297708301393375314033415787692082083387930201219218844645719161402409570125976624056230517793051649265008073046064190742843181928468036996182358085576660459036118586062249023823615529476141439969079452257634462435521551613759409181943486844523072695440652921931528610302160491760682670978400386451827967397263512728834279153494101128543776901592662053066566945106213321721122257505838662325787444010293550392817379692054237770157393117476115011959274926191011330785128021829264920019661965207723651090651618720747676413753776515099733640203595158222307052127916406330171784941987992955651594799268720488677625384935015587767823178406775864798274460180225952009486736297752159951983270918578365806199040285626345006835129974946634336254265990414190997613514711954816082345604468636010663275437494287039672759468193901892977378286524325496806178252181593617076045421514826196423506360679733759203622109024596657353364366083710359641259970574027480992821074905177214872374369193681528249392981696513595300286133795848655970328948803753040621645511349466243564674337800676669699696866353571347431257296404084184389362235099983988799631531401167672201052660293815958895320776015788549698848192348991548543002982169673487953846800051604827541856228612818368926537524585595349369238339598506252720953736463575092910971955708717877799278932639880220120694701353081430758314723254471300785763787413454009799494290282158455216921710636254492047107132215764259299496674842190328913802572583300671100342376245443219076690924967792671138682872621272050275897753594259576014838001477287295109740124584743755531881630809309906004951122537275722702335276001136257449484805428325961450849087804616168922766121455447940898414095092904290691365874910481899043786818636503460867862224918462580104693281273078107768658373973250839241399398746369802816380005327611107616148514916076946098731186519845266580089712362670143575146793463770050920116571271665565449755729271169150979953421319491557322351293473008849622810059096246320337088828896845186194127145548054046094255968563973007739654500446345859034637440061276008464408836176975508546013669586999504625103987990373239768162718104374562278481110937559318461746852497081358202943295105787524472091784777297073111691946119854163629747246138132092210461244543919042905158947998152086645916473659083686085410568783203307162817059274997286156159004581401134967456373494431011358340024141072816342526753721548815682317839884521057932074802771548493545160983316128137572140969437954721384672086607344414969848082111362146771662753929554193584717668166965415251809516077965959723015163697500732262605645997756232259131191412970836020846319361068881916109085726451682302729506120004232467230031899668622755214577815953618629188440793561612495705966723398261709665370497893114569052065828571749219437104079435571010233363242941110840722301635919869557520852519920975809084558058073276004953679657511251809538162759496772623885479070894385535005996086811528540181897675001433562254459864375656755458473236183751845158392844916376500636042715251764953853296805438774782743618646386986073060141196136975314767940915140905972450820446676284588671980161940119121239905713115664212767729379441442654924087648180472951497288175798053819653586226959913311917717512704353162697304467982623608961471628801664260549550192743969535700627915294045882633142526180422818928889676922308869659229230156231098958269987084238837421129792369391964555363016769520503568842149437220609032054322885549820327874431397662376589973365689078971639831327127156307949200346473083850549041208958103830279106570869339551814472852251008966006487617397210803253104307638103013226874971775875519936720125781262047890625455276042181537414521403970716125848354490238520055930299153823706385267241671555832743686790498194797711806178592979640707572776516405274039949416435791939143189650855058965507393352272462274720538482872205640393524108848619600862071969270288695265223291374904221068838266380803603309964104713532369179813950523071062110019960032395211260920493567384835575550704738713997793232089451859831309300387403119099035783857913075934711335784424454569688640710592214392167531339188622381007095432873410322543191692429835020375687675730404624283426145815893838261111843218344738056352923942288367575829682832005957181105339133734377355827290497443578054333382537662904696681382414591668483176261544587992430341432634477722725413192911526421358117310261013845522159982476461104085052057051424275536534059386995767977223219443975686608903057929429406952674316803544027535836468565101922748414414386681890383217022866348377145098780927391752876969043295024710813336901248640129697096010722528832082887653859524376443084330773700192025613468754268243173997815228794032712859150499844524388537518027572153254877177568604838602070909436478301872663135909643598404757923214937248161127074269042450264561928498319871071127114406411184968351332036222221954327434527737202591896331714061702719112881202339447301097621511009209612679001818456953874207868877925112443649158921504185768099538004239383111739526657111258163425036525824694952743422787050642066006077801970030227817557196446647663325983427534470155854209650453392654691327003657870398727349339917714718952334659623861477857454559546643296306699745219095427665256273716259333672743253897659910698292136222793294225978163773950088156451762733360034182212476585795197223962363018801641824442855682662955619194907987253546773349925203474482033721368602876737660138353352867436653934216367557619049699305071283985302586005995132144652640817057722949736874739296933804207423985356056520839971915757081061244624138237551153109358531489286294220338110624899025296112076254480017766634055904007257356718976768611433722010411105945332198830989544085462653509616754136188083100952770959741916970230007310447466626444881529683370675737389585395090213297379663705337350820408848852767103554986015620636750840506969189830065715794671164015447506191557955268206441577373777991077296783569358409097524641461142215101851817413023604342970925887871831536659405609002047432394537115549823292740533126467131945001743535572275846615393869432589625067365643232716515061435556733972021986021017272463358674554820067540982183114676558580417254954031236914693195856039050235753953097598998089273556378898004786689627625608862078906194235403167643257472052396160577592671678624537047467353690911799581040690923819471470447171041659434216209294918869197418907681051805087977345167636684355647907525188681133370145865868685107352409020133297071430346259614028264399003634437732461586771634310878606553673450260379231295507536226368760438004164609999676360754984903895711336645423185235623418352371400827513307222870369870705371852296469385623126268832454725827435143392146789412321130035030543554489408614099751430464615351291099463368125780085996878411742945354511580171718134633671231878253214860709324402176753597819427630150654503015484679818066687132257426916165307761851563301884549848119407136525763518109581878567686088061452179803207224855119482952361136427573797579236890520759482935538883351539223433823958672357627988355279986493777467743106065190549558614578801539682234109612328860637361767558964549080341641873678932304728574777562846705977755534506209239749099698602418396225941293322094902464461501475596227683868171001942763339899655425855813778883598127296492215065422047408392989038585168889691074058417733544769143921034957106540494461949752449632593925634114145936854260174745084523743888871980538024603641768026434619405643128103940323346521624499790505073189213907536630636796271863966531258211847723924007738879091084805612341904180601663919915627601538480332814118213649808653981038548802877784774318318680871384091050455472915072109545821326185156181329360288764062550449887424398757167794673515469657565268108202747816247032977400582590040032429049955976674600258939951194324246499062367699797889449857516406692485668558049841915180039027669865977513870495197368559001834191703816481599298018105924694530534907912892279912892159582643434120128872764048892587234285442804992687782779833143813921500552169922014055421652188519289785767200991355496571282659009204066022303122748946325699415737854377199773205950635699612799062406934764250672653966507942815213015492837704372307542277281110031988840495806682885008113170608664624063232371222040714126858770936903449420808378029122398863889613204654019671298832669204862882824689704858096725815924832353220195382356797513780699096922782431038000705339424343860361598232515853556962084783895652806788193952658760041060581832322152013551015503330324110777411166820762265874093569332240786854612096963557040297666231383928975810390619735848924072191051799321196712227896148248409182962990817935884575417476000732429236880952144250549240107030496694618619932568444576557126515271496510236430224588853806506704375083797471573140397477419326551848616925450202810959181235789408611787358036274039932591291898233241271372491923126482450737738886787042795026058112301662889125246375414811693068636876398875330002567498081740884841402327459498215938147483171600777325514904800333536858423680661148066653606309244303785170954016373134185087639437335343244935522924633510441497518057558287577956132846810741913753381639554307671593214353736448407204061412830921148813301465110579976735883402043560837016263744357733542993523244895332999291052621505781339108161097122524207086642950710612965424888699357327488748713878807200652228583507459421619788943459007735471847835346100647209364090409777380267300731063230030774959757606641368338628833078755940168316757835598544914428784565622644144178130334252954641248829684559540753816062154042989925804297352788715136273507143895895740423171091904240154452246209718417731980666014737517040972563435810794403585726112082691242296668655425397860183428206929126264942812684482190757358811530902235655222206701730962226178218884908978906372374543468990841254638290778723347177729294359136916878504661009978558570849680683246242293463141211433059377600591914098872707037042438695492159444025160411433773867387505133758894066361671568805831107551511029400216764303553128746805693905054017008883823855662949308446163185868658292231493178880729518008208582007250943514683892891296687065083935033547938125020383430934318316255478577116529071828593270069815897429058759200572538798590646803789600674637668465578884265869996500977909674506642367986611346009460556556752330757046461086380710643145778657384140984523139558289150765541659640656147894305826972019650185370187669450062508511846386329154988627723751832822665049105623478311673706556151289011090743307497182335917354919899104107461429645421166863536770933247363113838125155744668439651894107368884482796991489135523174713699887252723254618806007878402371965598130740756882288992009241554290703139056394450969158559052062255699806633973595199547608506004907215644062381026663789585910193778707491087495918275532132394551508547727000500678314332123444456606436194375311505714180841563380751316462053762091088555196516884305666300673627239428746146636827831915380317853187213189241537480188172946533155773421935686740312638646164924689333623827954308606505903160701487890797638815481987787494551165259763867291391962240722506295376852111499613633734201634717580038590630863493109344874053018301776129447441366094349993805276655878877776935555811342647599062403141878491929448258526121721862144816299078775273975766571350461192566933146726442132988456593997508955287705081665789494722854872561300733632139180708741821214959081307377770551019269371200765988187069868597498658053628552911680250621191104479977844107803897682257384148375838516206568333338363325998704783641131803905243770679903429119944368208510824936852214118783017675663136156216923353819313164374539099198236282225424649870284972783767047540810432058860488920708657512730385049661680390305251251254673269762688697148109462639256683646808567131212209408921873730878168063976840913873104600876849426070134282083686153697093336265803424075606339414183956853271970936564641488857053954328686582457583890908756579439729425539653783947057359718532417638376940852667547669805053373910071841596563905189509101914031787185751641980994267428073259586764951710206588753394821394886400355220591241154086621634506042956027559794591105515089704639566788694613181819406823855480325644844285227049520139373060954938328670053682978475705748453985043924352541682275813554994601420966136414406875289718015761942991584207979175974810615726005115463195671040839696044560520630616490777069848499347221398036433062682896010682429665226347615330371108994536920912501045774189626189296018572440051092999988492696561076335459039194587887742475978617571143515363743204367585224231385327580547418424909620973402450713434135584157164949706604963774655829881515358744085090718797788993479130902457709356688451089039553410881419057144184558824021815554051117621837743911632359186421724747171648429868348823853084703925845825116735026215918003547932381257041728954929524134534656228609895034172143811954506550953239344208584249679669821372495215970816495205122657616975912600773228804343937896562379228528824870669439860215218263551247442191446370344422593553405675196599440898308166931633243431598801004796498727006207923688685959857512146210624670270028725764938903913594385669296639159695761756431691872429928540365603634105989486405637820939347948393755139774013402570956457785834204335317626265192865942135184731885910618171129325592607085256838075283588240371883565015276113706665357403004677850271638782051006204642679919792047062708094524625500101532611530937516409945231878835286267846800179067894154455679323272395205402832632790379042110342032518904768208831096975398541552370027725640432443948299445014241478986238022633907047996549885234637226621424778937017757638838845797948906467246482491893862029596864237751512731639508435205368802466797880066866915930944357472739172678742980237157594551333041792074244803491843017002561535881709744252758060367294835088945016315524095658429661558970258597709359505323680012992046040764878177325433998762114862285809216580242431140508299098379246171584254217655563968630579652484009076110348032598233851152233478366477471930038034905872706492718504484771540804827616740582129849284184216198007622432275967251726708553090411977960254485230519430219382128931206920729099599166884237549414968228865315454737467357077739562176960665593019150063017146527080973269896158361220405783540218318352796379025107127655435570712363096778341321809801606155830681089393330920612927832291951049910993937142179884542754560517307247113168852217557603456969112333643959798560816093086042324998035062335998776991196785642671531846610443269797098718453328261337663392144130774731150290930437611407730716784955923462532381684104544618334313272223646432058663075626881919243571681029793826619508310583003577355942936060219251186666913220920173952683829971230454010928073076121720685003306694591166862862280416162638539907177036751120857083301007793873989992475493075240204885836000275205029194018492320158606536390926329369633508288405649593281399767686034645385381762227540321012142467205413671782203630042474429044041875473149434171770232191721361711374369092369562251086593871438817389009164642500822080174491388310188680666556958707692373112449675668757476948174450752275431123107694665934685768134210919134797103065065725617349903435766743646081821921355928711237745215797663061063152902704312141339721145226241100818808297712912362980920317686845890740723981444653042691572016249123341985775967064183838627161027709437783056088847257936968155108309635907068641428463238250944525124202542651652276213207591144895518517568882529473184015971139875896982977763072158311383374987960502008186085833280504470763054105125854302823467967899108308893471494028454936851392001028927063769126761614123999225293562707017102888728975996827044774569904560224263343347622099958610185226402525934987416402512970670533037896324469031465098606896156608297171198810884188464334699534984368213645085041558643789674763416900956541533456387584077863367078298813345435423938787164006862587203790090119921096123274097503717366724821187145774659166660537842688394818276824670106642069146849895076634806585532679297404243887081701809941042109949321602746001110658157252986629407183363267119114931567586517907375912126500062491575837671972650581604013547163540067262102697412056421985452617309549571399493030844410503542428848226222128151167494588917139421487876977877762343382087901709916820746105285845219383855203365406162527573642233336689801522557327849671966948536569018005590814033752636401790347024505651307964092818665708156987901071811728864245737545795697572486070298052489146746519138394615306322494203139931425178680597169663482743868740621259913423197861285934246546439217431898830524149190275441747410819380920639340729462854076592485098596072593149597661638310560094749911560285946958480969392424172371537181742358645218414901804530993693666289723952819393407333561022649626732283292354380412260443640232108552124790013875621931375565459147991318122514499917557686976351515350258448457350644957753113287261477167648173252461510005951447292548738196338814159989010233409854034342508115260327747181601309214846639763038774068536523707176098139149829158479597214491406922814123065764560972014188518083562148291697089260150616353905900112522588806915627424621464433296346074862721571273908729210659058603676575882644730325044816627155043479611043962552252515331915853095397198888572128972012106675340521384112602680840245888318484863725864446928599277323436585538948203152332710536600665642005640873424201572880842186111683490037651532935793199273162780138225799002318290356496246270014463350903210559322322667727428157839647867028797073728585142153676828788659878434592069361473650470497633972734926205456651736645597291244570030115563257664592570536094544292131606706842155264081561860745907245776908211700877932977530401188929025763238972648103734458426932582829432562049126544365846537128091751221748338890702724374199653512760508667791958781835445109415870188621139362588788329852691473438599996351726354795815500463791169869138355314848757601169164491554755840116814700341346024688118697962844152767095732466557048505895748974523287074415824501521819629287788214512005969678437897017183790346128405029265221613044945271118301963655283522085853940143416632688145190693586973182247611808850503529404223952680105767760743458808106000801673773090259061600035212240451111424084598292161475665417244399788631223630658458708060361296782032636579933402606384184025887768327223654315964479439117306645913035006435448594353371643321963133460925086406492434752977048397648925375741705710448535964485451501993464981760313764609845210558719593531476979818730551449484584320101817724591077356845723951702998169977492665955404092478108902563554610263394217815144205997479827059884108230336122787260361181552068325742081014267645723363688520014937993692397974383674278794886199454338851557728143244413178618967791523224710982954563061937195698113699333515697952215105913518972489506302257757455515876113767443721839043800133925030548414031129871079584417205227397238454032860937428800903343197342213543473366940779121089658264314859851147862331561962272879900397947573730664546799216171069983736542411215330947233515090835605821176686421104690565434984233982201210787953897204715581727203102129257585392667924778801029938275448974477164599722123412155827574240876933851318189519024788367245842049958663686832959539989149145089427092765373233066936895237436921959938555588426230241579073827127516217172562019636391371007655687337923047376451685869846116692481208286366675997857580761510133205097296874461318953276857105230416007411091976063230237351730100400731210367797234995551286727303779064659779748764427355075926831115993348597866752544533429414111293772250985906182323672268073224404808163421674804802074480299403429801780381694595235895588170806157613391351112420892730093250066140980698505174641263619920929737678589014189031280054928097367197692581957175052610335885117445157968757251019267953267898335735937503765228716805267070393022349111215442600921955392580805633278733912982673322216943317766685393660681191880917146276913985196822108540692810532427929133045736598180269427410930285655571403852249269941929830293055262961153617979733049857159509737352813281928269928677601601221127354133577988269133671299123575272953747462814693219740709905314754180469759887874368588372590147226589933705935367071136619344140871050744844368788105488308158252180702882369079969146655322682647422448305996752506929748664657520624093299487760305398970403562566821192469374350365900940159205579757472597600778641025430080903588716491182217834190842239506292232412569413144601400393904018895308805955660098094296565822251208599673937046909503294366312813603085767945752814035514746911095845078369131104158808931214538211657434170914333425429188271931544526236324502282818228650587864761598566010421028206988781872086173515617409557424924507701679113648131354470613072237507798934570530491878517987907457116048190824739260308995205894849644957153882100587739831678082080409996846616409150699150994176370109935582787951216410281587141745866289170311783283621893622356743280698408754895849767193916445310121768590485458135765931016726215670470576114216446065156906796710978215489300863381225086582422990481150117779420039586703218220973564608487923375721872219918975301154204034973989447315822071381564977989606503503203575092451531696191869063461344371402922386103272952149864824324168714192011970349371475487692835447237377845791405903510983518053435633796070752783474265327147608224963602805261311415242509498249530175538098880121914847382122231060049056186820051476469778776916632076607981169951161033830138352815472419725456560992830441804509143198841163820042517691003247475591800266711908120999856821176046286569180706364655315937497857160929660456511736514247106350553135203326771312504936314497034868008238675633113553544844679662859165984887189743206529450079057114902137299259826921280702211323058437032054464278272008942038945238926188964816550124524436016019691739634562314826883454585343061314975227670522138071517825096745978745714672311619654097830823372401357754769006931505905837283906136484840962567314761183766317552738456443212684191849629462948861472527594004274994517292384807340903048780914295685275408350188703718941706770804939539357064823898364326071261006008780576195478409733764499053491781010904932637852135167171971474674861139523813220143996013134318301298561648317353368965958294140791583140460836521286017567937567970602578549599403465489967564983511153963224741224956455833656985313164145291542884584581033771594601349459468944110453358449310167731582374110845766669425077295034291596301919062830222253528955505252508056247486305955620637609443031244508795924641436229345394315401396578676369793122438389084325959400598361100287726694156628122356032149148929225989088359802851381160609392011439788264025471459149662734647406798793198281150547339187321736673675933234583965668688138855115273107889301532673906206128066475948789512774388891564812740154366067077825910444503089468018776422259752184637609680343747967222161234144458629274065408578104730462569690839648745256054119266370554134778454659659830902796915957195276615371956245847815356154427047062848229503168533800009020405211956480935969078134374859579245485363144756577206233983177409374742361821210676539533085107730644328463704694216338347416900579364513208153079735894299145176368857873387808443303528775458475638531477883323642693582433712581393174512210083795154130226609545300364875912245998115422873755177312461871927756430092568799171864288791619667898423500133911935446593302821429617284882251163648717299978327477601822814888098535783490202000444627849513714416115406663034771551898497284903104194658046785694067302112342102852700237351804425574503250757797629776841879807993900293845978029868931011739033467421467043690835010162106544082734844830095856602287146090556262120487780840843678978958666837147605108484770098751673873728178360599571929287123282262649461541471739217811532137620055831850158231900116648861555640673262595311172008184784593644282427959681642542372583295639359700181838520696265791859297463024898860241460703975572744099764333246997974480376070898702833352608506489262634384105565163655973810021983530379909728387898038779210065159033369107642783633653543277129555107854509119366885822115266840774929455499631146245761416308077284265410500580831962056139534564078087777978068308230295157287890569315972210736796933010255361810718218090310677279270597538182314972771582359532434396747153555169546760401209232572452234292412255148615842864844918235112539907556027757370673189267351120173799665729969733517428255042496276980828014650384711175120643250890856567228342275643074174236427755197468214584071606810828097532110121626481553527006017992506230191322917803354772874305842911733960056044545253712367419009343674658171567770974160316924761891112784602004647646195892806572074789029667194850816090053869160186461016082553001066374393669262734158147677997524742589389377570914558504492857719343419286576302286275399803282882796826646631575752368102140285777383827454815492320399931114352995550812283279234782135875401515325260839511780452069374297883830020683466794908028360081484429988034258102110401244058487123972769178031155232616304007465332443275881957833521501680179795643108690448766784636727116985620057519060254612105866040790732338596783769575450469681516649007141809271237484121256517027097005909059113888305352871179047420174840854430687944221212870115390810709152781402271262149289431655143428730954273333146537104020453191470508862547606400344761821873031613384474507451937455219010113269004722037867776995074912044916778546741025369695854721454465061040097587367920874698696248243627833793750948873323035231420822558274727263910683276671059031110391504892333568877979066039694303493133989305839415211170876666269388244408386601089878664657106537329977193595776239113436929287017229819077295183498342466372141113574026136926097766749020800502918457317760756619099979294904730120689188406563310229506128228940345954835024534797257267414161127237188096981601201595544235726182619335347921492900940792366983602007574440447883746785821371562548958734298013317394444057963146313163413945067207445467107667709819577993805367161138006649285500454022520940659880047335429540710647876568565494332213141808657005641495819262010984185006234287515910792360029498883074496311637738493234335234487483062635393209512808971670612080937563472629399019262722632369394186667645388411297091475717429751210943925580885526972921813643391498881517975739048451576941246193444428804075692619072505842872846834150967663453978377652909052007054655422753035670397254107370544192538748978133894601766754743619500638056107098703594453828004829678654217597303048879647331787892618174508409797222856239849418303650307927785015795194422387801722798800098755937990604918191560090047217235920116042850561806191719533110257340411709012162295925006066399719396929584361882065792493093725974231004098679559764431949229345772743263139631339247088684862087156970688855234228907731932990481863554067404553796130712115130322099190754378651013306253392658346502166239167289539599101242444041188439349977623366013254288898655680277650608310285928590287789672601821116517643191354414331838087825823799877998050303279218035893178422498960273232880457377957088440292915129191900123752419139368431687989382551222110371717972835699034213036810712717199153819456533148935767342297339525180217315202295081692653933884530592952715561940619677068330331359277316151037789993457538469023909212838650826002953883064723562155207400850218094725933756614258631716791354874926088323133227263606871582104964678305133916046752034725411210124881017021743637834080449329539678079890730468286502975816655966555594803313106445424441145915839825900812457449393772840268947584178733371708449539268611324924966875740429357994394800590865482674455797558795953212456848405140714762855560154737600342244237186329327921459973513272899606624258474011019921525866863513483122464327211313003406060962934747791092263970322770604525837838665416674279317989247882904447717641119860163698527031384374499755533062553721970638885816893411675384245819562600334541403212733442897344704179367625395871115274821815395165387561078846990670610430128425814090195579513177401159773749651984444126541231510174129972935189503559091586371577967530109538510223962839007774664571582602029397769526791649933775945986776821157005254604208100423740159211656571163953259351965216200107616444405700923472485014227183979078377301814405737068622775211019543769161598166211179364208734840352771679697503087143976294821118602674104740223417874476119333141372820430978133567876278708187956034938880423286411865423805881757566395861703993329153331032562134209884225082037548954341039495163338265512255733577660064051969491938170029623615368539957758399538964565950866679480448926045792688840247578145462066876528154442753115242812899516768975120568606292054012214697918969025714463258925271873576644127323685928766774938981953151355485522702817210649404611305929116512603592066817873965515282433820375592564987762684245546946371952669424636285497411846016146766357120347147784475290452900804407881321418195788782304729707664264864362943283773351606329753215978816795771009476637503483786462729858231041061927580273013542236412473109433741146146822931316177318643590251984558269351655859144072956537297029571773400186051642586121690055733249047293482301658322944393424058687861083906060634183543731149887449577953123468336235726882677292286605415842318056271198279649988177796707085092907300741969625860411208255026234214984126899374414143667493926460412245835209489035057037740442485823808125411384479143790517821491202141103470951701388788006037013376598312182385181924537128820425094230891693376104662145682162848003424004435121960859155990258625235443477486888061646717363081402924239847232962282177086484440904855228478303290945092867532546436654090471892300459218235752613333833261519691582115187491634702922828214374075754430764640181354850222963130128940776551791785587402147928004842607331340185820578825218854722520931654548944176881906713825710441466622634503301847965081481049981912403980662280883702590211540979871589325718577306380732561225242797429587250382086788168126064396633418192849943589784491894216846396689932074269701676582451981748097475842564837534444041464791283926419057186222322783569224184288638013668367363399900291707923470661787670138146534471245997141493486897660936535891323834107708815677027392694730445036841450718233111734744281552501444475395788285567660547803108154080780317891737088827777683474429446359125670189356511797702980196393044303004819101281031297981399038667456358207047072824269919290407820806240961084131954874155659828436530739993060095250644125590055777556209574899654875749602449090434722690972482965773558142023043800599415905255561394742922385214435799987841482320003671655943025295597521667724722335359494016559864138637494345865733179482396027839712355525612293108689583624753367909542467031478983438346566662254753782976996885854111616394203781858402271953395352184742425400715538304419687379936380814118293610424682703474930147433022772739596207239685106653646346475075027695856633829367509626073936821838725551351835465159498019470408696305732337073336504850795973517770269355830630415812783842733264444446147406010298127340406149466886860459498558493744004123655181492000619835042463259043055123544778027420620458047416898078868120267828902832764479380237241979765090479174656303615175810688846789366792678935856192397118729476908525582337128741821480400369687264653400902339952566685455129669431165516076119692905903493565849305079222618188015959099557794283806112989152305862657948574045147074105311640940570500626927752083639375966230053645266410356669689485551782807919577763775632996582393001250632234569685785674760105712243691587569725078323804066186013803282146116497448629273877441390481433394343041583691645789035567309404940158263741969522549748323010658143655714513209662382653171918453422174527585688375200188421158898864109525230275606303467474621814107712248059054488708486964264078192052878919538775004189131268126908844897900045388365655080434410083050023673926362962298732655651566979184232083345066886433745457995766028808805497915103845314915430968851930918905259551325051993361170798892375267032951497150219145311864595419924504083978571007104340328088295962016320884319290466784513375945104588918812618335819011306033309277799600579673801782524277545408633130446564840423720802744351586869574910970421842616906168737103445262110238035672920124034538608975368477370610945799352771439637152252004281587828830532908906908342188365559682178651801929367547278867976001376494162140678232941351583027288605117331687955638765745012698918678790855732298171360725333109641887607818211132484057451699843651629100096319757811347942922617827853346368412824781790903330064072267488684597945966497512979305546804489408689646184228756334386568343807454524883396276652385701381289850276980168443168892972156616699605846220248866023461779755326938508546849311278418226470460327051446011531890912243271676544606606897018773011374186035346258780725520540211573170090299804409119976982204744988265998268633526883126074576128058204499413263927800508689352176479578205582322790228894353217574662001999918137956441811316509985103613963965669892213998758236981105161679216050175060291087066455185003349120500183891745220242684627193599622145881144544210261093497771628398059258568627032290949898485496656398027947590702631087133997679713526610008042171755343352003576079994625686969142073875416190231533464313676921557295125569026054780596564191907162788286625954201784759833150484857124596430310372341765749397492947980422148615249106906183201819904019177312532780765730032587596098071830447208021711926169688808393217905103727048546692533704511857523767025468667054379096289584987942738290874209046608335081456606074056127618627427680189740001203685508174625167221972758416606381453587636894470899087985065089308314501786111653545691427525616563402004378276250728103631715242247706249066992374175221605600109434754084921390456514352379367355819478639178192328825581468687263420162879014191261420702153891067778889521453148224295383913563480203365546210180984783360433986912176397300737202550436878823328930592075106611606458903402703470082938672252544546639403746291236129665912508100453163235904735440102217742761815521386510607316084249597281808100498469077679708577077576870813132502162773829232672680304235793708720969885309268300848572662255562565077380487109183132904979969417965629467637056265331327363216626524392707564517669501414533671963674361869528307368893362719951559528570759086057784178877565134206031329059337137504423747151843633064480692757816867366746448215922945564880251033861650762946054049435808579554750691846924709640397267843902429438628295953331430344142668102150722484337161164622602978487692254932643255516742639161664396029120574672909661026712703650659863018476487986309397666570281918802142225326816517484376224171367421249712343530803899615568485617076816219653424629938246808196678872016989932005616356259849471087331532687826820621765562146675451177910171550767672140329303482888262872335382305421717214205899583537502531527495271478470814677454835079724830250034174939243161561653915571203480803452422375230168296372472824764463187712970858838218844180383884645466934024923145885061761293977148461925653257330424336050999042630954020626205338818236549215995989724285339195689931926611913041680636239403559812344938445310329417981901918025469907805328627942549063988695037936256078641279015455829154929076934335283226536671513654983481021582730078130221234865168821650270206988842013271632718476693816168754153954388174214069473124456865113195181465271257439296787076309945417072925976360701767698606979840833485852448883124741414483789079325130911603100589891248041503985058519658728785419264685513568319854562880915104607810506051507305397176178335852360488944419634186563187393482186425429470375169465043626679103352112096630436899742683969172626379269375156822497052479667591870957859319990298476478482943834215556478120003464243672404100539211489578426569133926396041012969575086406381837906585890666031598451404533920177876822782349375833999333868107520799876013544384717652117423053085243321020224451149099096110915104159162008482154859977274259137788861696012677350449408008744234186795346936395206568929267006462673106119609402303596949686617144829597019722696934614830551007056547362633281531731119284067687448382766212726698394090747933336574069357469583567248670820257897285870525780121763624793176637464652474680545908082962737264094551889480915933979894689274026765613236686782611828045860992387424318954224792957931158310608345799260023504868019514076797252783893968118163072388952160477876392705397813637317724474211545246014047666679481608535166282029678612326882687144215833930918778104181849086297377966253795332775083653909895416638861055853088280651965831100569069289916935977572673522348071184710535150029075286322082642152667921644569821805909388531917707444049663169017594417647248380567791018906764949548674693462583509034043270308100042461014206790040098085198178202565087471790480156165506634867447185421831457989796125310946192716398493340677417093657540481110496436467800915070576639860640322342633482874783589088173204895894065304550283341588956528667968486213979304840733966038118962344344244825909391843280925203918468997941176270118967489885603182807800411095627776875500226412623235326650329052935279883957150408365022997611694881454773575252573570803184206282253049260476691175297092007448828994566340714900728446103483955821258601418696793675311761459341971331513763302612056045948271646313601095638912371228400798024862745320588892560912747482016107734204612026941020499440436274016757199767052177674443442388443156470010133019008532772707824560264789128871498366017660078807867949662643704086295166544938885566331249110255236507498999371343339411418287656348422176664325177752824576298875030651626288718594951339524197056200260673631508477072841339222781766738060888997455993274614631669398930374268889883456713700962629241840093896238690469599123395259664743783973657680655913706168598433139257774590362860196269704828234719040845641505399994309824423853518320729229551155688166329534094429764805920401729041998107441175373344114693317186508592981439269542306304283103402054770299486944235310803136097265700302781870783022409668183115349965234632742965899041087857258368487842931001807359867566794205836026000899330889863504041835309578647108613493116529201566322338993836377768537109031497712488508007324282787761442129522904190879676735293016206775418431038050887892506565815984503664989682178133666040489068995836755106689420628330627794526109986050105737993244588299210115796526157874904606026771203896678687901342629655915044804931342544405963047002910184689746922541552862429175698921962144383373580862627197044367229712204013872095284233570431732806993814747757864388904090440899707359092647376972718195697797262882719335390743264286773642531507695468373576801889143380255246085153491218044526415869793867177961260025865417641926171017189677315391824963533185011357926377236738016321779461443165758348250924805793281269643201162866587129097958396544043970554234272750216945487239023059267736192414875141610990919340741148287066574162858856788455040551366973751682542426209428603549033063250402034397702809330490345683173167867457166721669124480292097710309293286027481150097614468050450989882732436928955523695927698159463395767497575182297130464751059868871029200980601982358448485091979158759068748214479672205508451096016827987887959184184692590429485440699933951644883936932683742560570294804629040401263679938537330758148371864067372978742537835368933773190482259718667436396255424705723995085682364238908408900354260293886113015087156238136939685508154108150897928338826940868977275257234872547284569355418112091277914028742377716061051822177345965651536359934871535501645468541886870671354263511505290682628818162558787181611766566922293603658017009595995373091161499035052600336810168559642870630811380694115085022593501667204186004162837948104814537166146895471975020397411712251339992625910843155793493877294041656684305516012131161717107341437253743914530276708751266775589518888352195967861964895963297090020402854648327121095937190658769699540785231075941893409418587552099917378443787444849259909128053361176848770482476678034072161846217876112263104115811925389361835555022777122601230542827731017339340530516406094908478903370202267024715904747021556437186405429549008194079424853552947533919457480226403672398538556768561105106650102554031229506089363047162686216394981779974837419054812393876709544364159276608182987123610979944819162308106743378154835972281727364779639850987373209726725912236117257603385133679793629963764357936094346232042954961494319197142039859043809944972440919841287790894708165821199378569420757986563203664602941435369540884536379328727272076308934940178098303975917499814322228066295825878399309871588306746557322542774530681805489229476348655404265104234396518074236750465933998705123453755987220674536161776902184225709426045722964957787621935105680845958691109049397103482811544199706918601397586877513588946725096830008098540170454856443617597737013939827299773192382222639265438920474716490151091053278707174298662038919457566083436673146510955669867866511978458134180034729157872875517087623268999329094526167364996629076164739019870172519641333401550630085461108456563634293966962064190538655681261827588698509735743632274204281459262055756691355583293918034749219023164700781645404693314386059712140881465204996715523484283538084608643682988082644692194347686077008887803889732233314383388916428804915541616483429225029485246562721943208205634496040686002893893038491033009925876972999539321204439251676301665998806404601129078122994570000667365771620546512697004034922702768099562148031961607081689878039072346376058960869942158993258821204837849764800631093473891154622614934322144165037855034668609980121092121776342606115604611203280972043820720311366143322985375941374631126794132788317950814549291977380861099640008034541140650969170709446191728166219303619230247098231746452271789914298296994350118188599977472343408533437077622627614404393571642393731746894124604760387356515542061236734064715758140619549426631518923621397182665147963705222023765401383795338709977659596322872191130983495046079606211476666932101956964873834618383744571542134423129698797270721973723402853763732653763618974684712423137390225008835541254409349586450671170189908581052268981419068337503210064710699937791332313615891760310956297879310312157957353149591831361079404360753865611062453260669771318609114406299364495526580602805335954672914608976095646872860134939386963023022388458162628500486759049333312524131236366871322905000489033867907518461557194642642335165043142090802288822026342790192668373447494326945457837445467750987636428236276047215667382633894028459745941451948475069035323792099276832721040367815974654865174372103281974084436747393751437382321725644022932582812380888668239113408939782267808664686654352499721101419360836994943493067014669838764713363114159373427832624880986594491963020787682082139510643035032492732342804873855295538514083174914549550798987026265661774394593800013771972525124663808901970952938610110103204384117490029826656134451298851661115863269805746271249155462644368551568290943855188998931153026972672266460412083007702675429312699350264490953949363694390269343836033410710356801233625142307285348515790748924105966999089935316013970170559982286948938736701600720949477636532707146417206317496069550786855901849735708926017659414945185771644896915059947380459934466484164669859669769706619765607965788050855968060986225110188805709353935183721962885814154324453224713095948718426591612474892056276946072421175420906198012953691428914751292411543677324795526574705428757275989616337033250980560848294349882456557398866165713843867336572913788193399464520384419433190464487357743360063702609203554865972969834548591518778334501305381694464914744609906231838749752931897862768818223697820332481578007049175368574145051734428016536713497812596230585500600535133177894044343415291465227551691620200946293510367440746748115631966787135214988206232484404517564992000603673957798114433757443402756341791107119641340202660779760985737112399172089146815180739882191427700740719212745409059702723498101751529331480707467418233929664565824304608415305675898843963863626986481916469019475322654293102011851842939124818786058608167940150533009449736682046239477790529391839480697769742341372329893897384264514808344993155906760264739865489611375178682407110717805744103215791137237040767359475633799298327540361953526902618042983412745124900746811554235826850476213409990536542216356824534739607955285967739014397803698961749775746001273500695847184226960057522056061539670746733405601103136748999974044494814208967265376019508875406722433154998316792873578319701660634013441158469861175331565349711210626792656059311168483659460683449359274644903482367023210895436514268197967109403277980999846394495799738471455207339990872374127138769612207456045255001674034697283122474350867080381769107354485777807327809221604992888977353283056931376020386220031287169908498763237057732474334020082329600225302461324545185627537862749721520050948680906404056978801708531630762849417393570085742425111273429665392686609643143555363082423280958214027249836024533963197872975141201340845194741459177241108992114491791437217956564140272137295509745582675918918704688435799678366698703839372627032402243583511852342050302654611008026781496332642237065812504495064766312600581972910771500213470047304986257749267005651198995569586971913815643401191295612116667292271659095019941919162877735584469447427159963497680019233715873069784451582229748992714479621410679004850460769679609970938516611332897046396197741600459056657740446489950516943846781067502310959974071101145363154163002872009329428232106304518917830039225120054703198826448383068465360347591680516299283592830642550206849294641492870065503299543527982296953925886165983029430172300310494899080478916736792561106010174775380712746182572634070580523292915128738732631076362331876752219507578564190485453858236745390438061994559919301331251600399048742634327109868457880055596442900982314488326441279052108793534906121144605083211082868412513807441320600548468906125977221386623280634718975540847013396898224904571333552905898565287778928415214414319389954946333877148594682818597944639749680944479001950921439865291232770495799064688843833394806726126829597538583981715039823409739969480962415683568706543879948954793867662623772555434563437381133468607876421080982686568264625487076752231744559833099345712410556326964334529675032992263174116210488540137317931979633287181347673793946207238963926819411841667356370617838926062656848283649462284694066853653078303157933732864418329612178825880896731580176343318477774765887025392964328498018710362770648526002614700977732652795461549406933091054427166828016324002176599130247615361180051872891460427937506710998216459834031296863232639038028290262859981246647963546305425375925071581424847425685996024788310644869859349958514959434085642825771349723680227351748681592608481046844991364360968852698236475748371400279827241790182107786126053084084814961827809515539679166999883544591088432396697925672162814804622164424701744569568877394407646100505665971935343430278200446139227205355550690013828041247374053213458002156600682265478608767932184493576836860107932789739858505308777669316774535678910249124132853040522376688836395757665267417892014967879428735222668847905339195638053092146027429274126573128871025011740462682208922431269355004837504540401471911875996195351078331577423829132442473390218938174924503773122600492156497472939411946415400520656908980882185099977873420662889925387241082493702780756454281735521438539311220066717586310684933524680192534027201228834409522543021583091563732249382491745300410945666358287881231837130031461633670813600765522336360994125186906067956597571467218741695885707067193879685069364534595946628638876194426861531267573357503773999365055861916323480099672717561913957632410459859337661363241549139336030059907534271469431939856211485356164006006051660096900349786369005922489965003943703595067210877067136422797864739892810637435705047473224347478201458660690916585526850459305235847284515006748901311010348084640505030327316435436074754484902373338860374253008514556025920310582980958154963896321680132937503126292676562457966510287512716797484691110263010479480115836172202234872320214263952065077544024313093638147924771156344743712515063008840374811707775790732321159834629021808786484356318946296046622566120542584347121856172308620177624691192284496490064964710473661225747608290201251737002335572661616796278216341568196080302825965660877673192049934253563360782585191030525438607635649920767466384205095064351985545149125256185917509038035282765250236731589848436918868688849152774751515156193159784339827955424698629311771708733437802060561889702844986676893195074401484851785444282808145555560677668440441774345303949049788215832291169184407164428939405714365181269164099694931773899669055270669495349358966769681379231864984082563125586335656692219078156485601749629544471165992859249649148332647379742856261579377542832695884923415644183546853495472225842630459952732555319435502261280440607538777915796501202989621883405695970444777799855566186884248884227174326450319114972573514054038615729895051433660190062836323022571176604583447247563913036460560113543554964158482574517162549981781129522596368687588378306997108260491806732914417617722737939288867544985160382274153238981296751784928514116445459106953521596938980298566974419344852808487017422943375145714919020834592710446147303267002997215507042919362421316487524425351724980228250457668594270743612391141978576068341342198536117105767433017907451948477219208435022350893357725936605739397534536774989535469057750347980645201970349956155958214406477753023975675763302294955083092549352554794499931575814022896410026950387249730781510691532157378912698125817097952680166743754108555910565205426667022700836701849258878686452890396773049604916693833846276350423313012591704283821291987529849451945291093428611582310362130047753639008137095793817031062642543592015167097122335139758252178479149036289447737734302779369236831875303852928544094741368761367856165810183560651185619534195334077123858866410478221487378438048383205946225129036731889894868057724875896301705753792223266574673942102376798334398238209885684319418787707032614981084471340536858823177200487077001272356118962365086148638239289299340024581741801132053612457709183891247267718478175545041605508812110771442773767351777893717381861067233906872978208904164923893321953709375606008123315340314027758602276063802337911811057495074595890445650222435683141728623079544752176584065622907415589892161653071377959067159461060247813153614866533113341865445185121317773340456411810813691620091671538101137658373876816236327288574533498739097608414176594899311596959095565201799157503696888253546851024035374289528646142248644004416209649084337839713809648271325148598999737273686600602829324095868560371309713387169652622903257893961715481809233600133158693341813264222571467048870305613947271370680296994794873513000418184471939393159463415900934349855320022275445618717101830620632382516270391691014150207336255036731751819470320642637978329528382576110984390940663545214827289554907824491502548217903761953740847144688571073287726162681956092367969384310755425664782530705372955914173175990389959848077673853700339258063692197940122512894787366334758680812233086170998625207591897997952085890769854915734414257087655628307839240154453374966746532855066637094002655529500494599986602319276246016650853453346782393914681163195265223563601611685931686650849454668903750768466717951789580476514464478090666376986589568234088313316095659054992672648550888690852635255842398191906092567118355315142054352198677412083715367445464633799629335510652336206319432923345155836476417753847096956902208427570322686834914438683895840311609227146558041540012210259654717679794768829126401860123107347284989021061270519366848707143738292527420669689270482051567702712341132965211721604692469563713434395799446114283956564060268162604910457732281248426215368424509789669508300945775163030958440665758916841137619992944636120803061515390678768624980234937758881322057009588241229802349990080705870140354333228561757845783975051078208123835000870584748786169801727810713499951487564123345044581229038253606719588131074595508908082520717643732250663067789617800352287024177255106697090625313412954252437292554650770105959261917587344203575807080307861478368119917971533250980113406980493761886087535016717977169884102809624379057959337198128129876558603778528792028055253004904890787201256326929694502035183711633760235025374329454499339697864167371616952668153752514760317900919576094759682818510801064781963624154141175217522907630754343118734674526103093404587951579133655770285746852141453291420986983113056551382049601519730260002180951987067351334417548439550494633277472925232524837435539456138123853598832517027928740277607618234180440328340446515606415163077827059435059079601203408390897179476300825059962477415073574426941346063148774067958701750634545058945309451074416195494686699861555969634597826168959496235926253285746984445535976859413848710186162512798246879124993474071069091900968331719535239536722239794664520580558050242841626431552655759833469408403174572721357232671300728693445288042362255047822961283041262478900113293527316874548587183105615751341223566462361111678986191652909508798802062783116310621426243134444920072646376101227916749655129085323935703760498744564374981380084688591775409891772848469267171456674222760463133134956803543618028017836778677165391516831009967541092364324739462035807320739773364561283190542680866844844906241685040245602993696674019237232943692440208302435875350959754572065441293830928968977328442626046143621852231899920601233323816879833586384142644211182514978717192729647394091583209723631134364458218196264638737831644391399674806346740223360160924416802678616002982097746828792327591555894805748782545911906846208352078636467691065571652029723072412799534810620410419485704229484304536121093294466058977997223357674290750853476431466525287186844381720576603953293577746285752249067283354713870487758368056025450395593026781264832130629370705551926335522926916045989673386325112117028362285837996954984117973080220703364493654719254801398749144375546159989324693053853898534566836188797391227381715539267199292731101900618239691768965351184540984644691693052979530090094356395255978997638584824692004823751378102964859563180007569093990590280203050998161068380550608706497636105135565145195721241444068973278435990346067854961119525224694114317589224894173722976502301128776925143041082958757980501758785289709486531734207252692562687816341968406782825786987478023095630966718525613128207632662605804124070736396543649413311456415412025078032001253003269010964455359918248774210358794301800478540543274934998319276106612210134849306988942458889076929115941998293400525151905666220802521132758693247616050846268104179449329842128674188178492495015411125681737599082004071195337887872806221905327178746021302832253705265104249942234416257984998518959571222410340517994531226574644655924792174887872127554110235429133479702535300666133703119883609472246856139191389890756959912996884148506101440426580284928898214883955269620364047730001423348697059490695855894313317670424353122031953511502798175336253117276117905925122512943418863942653189789441947666721864605312650925866656483177758455396164545975690645507478797120241549239858519281673509922039177557516307261310124225427961218854271720807557710204023232164616198740629518637503465050961940199534239363631587122046365255264652477105680424256156382457546011541298110094923054810369724161445408200245125943937587770297751659738720683393197676678995627691585419785711386566080030120302639305322792762011973007359828304150622953286890337376115138077342192080169368202058991823614432000159802901824947388890622945038894426297102584715463440120815980469566736142637528703357040873916299521652966477275275525858242890068479163267963897086653513467259667177075838233924337030118160400585314307031301302803514402790716636349835094432335429361018751902627975555710170123968261145801623784817973365974597288104350530783330769188935152597991454743304191422676006782166780557201644861390619273372014788973106707673052902826810099151716483914925781569060045126626447361964568681557222072933575630563560131565873335554931720070794179737088389234544317658758562707486829601053667420324104598900526624305924293173549040061065805793509782716713081502801839405671901808186776522882232579837434913739881609508115952728849248921830805753560031800596082111308946986897302422071278468539397896909988207643590332855726703550109173092226513345764130946134757320540613483709194249835532314817413555164285070396232203365434385625408661706996168892238541458480289410037379251060717597088284100548659162499706999466830195638529593339206214426900310507661998347095176499974266631223393678630789096138210425654248889858814740232117947931919699894567101478827153726625455937867096732907193320778662610065884093649750350010747292660809047083697490920260448656813388755992685098187136863818406976594582819857353623978581968465990714065905742129954067424224512716856134008425748736422864136429252290195765444840219488455238612516821007561229142754062190016323586415882462075253344575965111390887008061778994616605618358030267656158778192721994870899319254333557973101044288435366316060040088714080584481097582677733827409971226195990275098681402280468868319349625973211089999095862112558616032742755268604244419837968492292827301179809175691481576885272585751286822719258607604214644576419712577308319584427516360563175694951992480119972306444816984533288345721881078516669420104087049394219547868121135255160255265947312749727334455625194865535195095021841630332635074744564055023289100773586847163628269005785201083894797662301084038745814825825214815929935803218619193566406066678929205948078922915624674822252699284253032697151016380300732148026956799533540780767888386071163696607009134421434198385965874698653076969092291443993232503548757638235921157840925209411341496851277793547180698345821801926936865859112466043418669100292696007239017267773252107443423106087749093138054001032100338354252326016246835606113406399457759077615544723194271432304890463441398595547364818545151186905676187111423749961902155802657016345534911540833149787075401964727676242370634386873465052064534774068934575662334431792399315903582716728612335810924772803487268567722731951140848987218516961206614225150872458442570739571075277906431669804427914151478871146785856490484028196179558890656612562617637417105185019456651303074059078263862208937370239157635115149946014724783685296777096512635536090746670962039770829907138905739293667391024298062523037328302886698730051998020344920467165620167287193506117711347239675603365062328429332722488132749384135176126472889813829674111945778939977774988803794626052342551127332540131398276144368449202470187942589760987741028989233322703575382219574590945231956440530305653688623154000679800388339630723500026580372866800911620696000580105025050422543972717414788460434780100374927655624556454617074561126481899550254318312297184813737731159947184384581202316347048025336643119559048266243483243737822594646160601141588217989174883766188600599541203396057567028198792956833545462192398986558972131125000016536034250920374824706144739945032381305024218611701781111431248470229083805664729049601549277086980807708994019355344686837394776207835236696380230022153623299603386914951502587496866102290110512300176362043962511422863293931931873699192968517012981698229547920421345266218625589374174451609253676097909577419503849574712797588543180713472635869249094243658916648717213298510248882157904203960824372077946816579266613246445642082050481307731303436778099683113274243763497006904208075412286829427992465785565881381945307540022845172023527393607108195056782429604377084652594562584943620348879980658572471950982352891023121996244349224093611879159524339229651486089110692745760649757617225332796567779318235310431962323909094260957477950024840020920271210911610744428313089367811746943169239070496276440432318030522088478613170640406838583947203439902703643689421784276683466801384895086628943691866060024410043621995949262960703468467608642233492729543815005686898577651075939851396771090685853322956156849253613260505863373053137770502893172832103328491118599252293742617779401373888704127989349697323683646405465859147219955350492480221668682804812472944687956648045234460385462114298626890588926416350587965444381809257320473453360851158326352888001599731871232348160797413675871109869054319695460418285822603316846668027056558173030988869150850783634058789113012654720069253994485601040835316578671146366931618570823275973081658631984279270952879349920767654667364785263098952289839640088371415706854304655653748616262542572377033540515515939774049147574620558744710825230613732869023443100047679246116030079827505562078547044134260810026513231480767997749337976884075417447810713329725641285430750183357025665016669004027520045319519071630231666179329341992171875315712221918093477053542985493054968525887542175608858414699412417633064258756752879244490997328021231976399513548128898933955257899501423647800900720988264989953930531242034027815039329757998529657487616405014281620031974862245257046475018134466311854831332290349381222941352216847851857540823791174913036471759163840867793384979167506588001296602033555583076551675189253947590837969989237020928893575660909495441425321643777218029601222138339500766862836355733793274849604975553314508498490337210387844191544379442576567064237228241331024037505505237722574038085928752574881702294903497342257843102880053860287977867821080300578109753087773127785024632780958668111039677649793038041434369959456640446873251953198505075722666689968973342475404746454014502585681535356194798279990504622326205871731232176190409992121680291294849575679025225124516628856996059424003317398889938651621472904302778857942381628476756068171233897290766055658584112113729669462456148424151417000482163354140607424414461555847543254610458566915711380214996327805427975941997176376826655172949206875350005541085567604391259618454976058769458938748043149186213773911284493991619401862321078788384232005426474040184031349050782124265004740956327302266852747357127368159985451140098257189929210310568159616240752073149923064328788297046330557623101107808434367507818291685728435015526818551908876485260161039353042342048807452787856819750356362917653784657165368859330179955306390383190299262649695154437277046203326093454682098696615012499392498792431210257346607297015495073033355370628995493293699685992163558141478481932598546814231869894861710499202496666688108599414082454012059588262016471649735104728882862892848795289177026517374309501237234538534044193893022802715740017720790357137680913378421806958288984493163714529851130206350392752522314051149669959328463107928580367572281064778437896269782886381730956323343239324639890028334329935117905274868878223863801227495902288754148789931175067352261246544192360436016951866995047237443983486244956556465238718033778070034811862134598918517284225673624441806978530132580243958444898370182451016440376908724183927091912278683924150223223252888786994016932537632152085195581556919537071176428015199851430231921973898260387250246600031435169723278240397012498996533957870897773019420022051193830777116685137239724826779607294349388078813722753068748504854030077597621452263098181731905174630823517853716579250265577716467387532556663861745731606173871439194577048292478473641714508123771100071090298956879935034249671787168497279259514313718732842974175441407434756822988337378932078046147511559987792203445810048764671958875704028714395174302450465271391465695262010610028416595363623911389543186410821049623387863891507729177577126779176023988434140522202727859645287947821948228957902924627602210886004571096831503393587318282482342703337792465643808743735798031572550379669013726672362441212053405585407171773641631468665302649010235175009445684655145430641456672924472532096212208725358622711146740868286721701582461387746627461080944076681820429080291410362127323243810189214553109433326010940170545425410128348415920790664089232592867524210705856546976116195157377390641563249857788236866634690927713538313699714286326081663200348994943711896286552775700524466581235731132375758162712090999724761976793738527515774225068640278414616586387865134610245116994918013749138091851761982680796368977015422640800646150045665549663494346720351878174624266290373702713290428832898906211338326967551539190666983647907786000754652662840047169800989739581845173162571050968641610761773508772229196793186007398251041821253012507093141476868847505217578827764419919956564423206735549645718963511358668559793018936148572267894520646252342511194632874249555916629101981751909791586496465827069952092986602621841933363208686540045024360438456305827131457512488677033531865409006789322918773804218833624703858811027431464790288645235320267898984440403630408779855190422813631912964549582559033995375589609353822525455399168821755692146702255232904859893517711421159698298439978345001269645846367678597514491152268615949121597510312833386358617720044866979548747401484815428336154527599191649463443669331185239887287746350194917958961829444552579746719739257319910937335033754957759086476652091784361298356194491317658195699346532808716516903291602917245531464401187011627276591182571902899623853995360714297715629539079533162662488093396946179734618369810724832806626228480851032418187317450115355791704003859130062113067262239390842915783830480622512399332933719620182682807292681961174908479569425531193009568878632627685784194415177291716675093286342617337647746405359123598338676374184440486338954805816499463460622310580527714754332430926502589941982024791798274859209774012051436456206689871043191981557164342124261855966550439342312735501506567261652472826899046201847538895044786272746639514161032546889645614127535857102884876295180755814652546547829155628003575044142765991103729650370197573538564063529073243968211895025901704623489924031590705523854581546164537991988584833167661522527457399133843065772025646025419864695066593441483251925946609576169304252845018886347256067535263252903660200939986668415221143491037128219938370063893153309034174144797739880888194908042394743191928934736296693992922648245065828058236688961248332854120293377681468408084755911795743977743648085261610325753234636610922998756985554380028707490058718987398501918303066604728617868961019139804635616790875200993285731498781342470096129983107866211541962472842598097610397104971556222508162602401233936105517753274879055976336696911585313899295042146259420338443050505971553909236134796501405882853128537762410408051478501938070727826980235990361479877911854272080979375126326668604148799578514461188103959029205087814136906800576817684616946118631397403547665521807943232499561286821680272921420846584743055043345803816031002504804680660698164952413124676698699938819090897088557017006727254544310376904385295896091909797832394552241712597579088282687492252523219416049432802082113278832705531905833616159357105353195797974786400627673483106068829409087779208187542507414612831276693204387594586848310689180023270681553782764479634057215414211130677628539672441991963370714052016195985633697435241588843438662942919987020710885572726296129422482009669879864179930115071863270971469854427941228707006678114429728121158220712228642127718056435196102896850221794756759818563676362795030401999600109130146654907613509630147541674772380985711889721080533125960304101811404655748131849375079227567775326245101328965964438761804335592883977091126871802233473386446063439707056616032643049826651532041862294058081902414257942794528846827938162595145541241351799097725527122662061263509854844812406442833020856936744564746034438921840020260846524407788624836036693589307220985463787041678388769247631787984673500100626434375864342500772582324820986431477266905164790718662207602294369268941756668596752773267895198617586178729627663932730717136105243367360907708568220495536276164534581292568757047959604939512911814941256616346985365855339486068949236272374119234991308989955597472244149719589650462036248768622510068446577744432732203156221876610351029938200159258227839892543028585532235862098042906348569128624363138695397825980993612856604968031841247381814853538937966428828095531179708864721493267655828494342591708078532292238634499828198742584971163141101151337570963410059236793063111223449451724293680970819169141832704290324078093816538545390915349312208567756722039282050080530820069663442179890657932341590671325938920018831277720993618773688993659445994118319109261766798742045659979958592609909499538847533211710386698045885530202119067400270346187789848283183542555623950517662543220784892949602192758448446426950353039297581020865427083185785849191840909267442056953161045487461922127309548905750811854125809399080221700975037171668317980703966698278214336293644155005028898524071317388105822565943949082335990958526990042547628698309972964440640948663245271052882636731552552491551431763288663255988278688950175896391480424166125041296406439663221093481915114916506289613995471857473941094533644196066117840024538900597595865105437549211379124183052541250594661992300197231065433867706986349547999170910055344686721711422087891145236353375156648451394055897636762787425218173069643991844793967344160994236545991710715238345561563847344293002830379205311551294837963625735152098363222319970570444101327984685627842684161577282828346835720424642938803705563575241149726971925360094725908849690942687978961576370751925386831275920890411029535316932495864024581304714729299957076814457453149549447897338602093289266189206951013334724783344083843999045589494205951855323125255412857026503370536365082515957238054631788916288336835795760833703361818028346229543942530435323653154719668314989664767967803867032962364788661191975034090058299972868262993229319186445593359957070290653944985561433009359626252139764370854513188800982223664505211975396431226371163295181694069331251413450196188792435054345249232775637835708127676978570020261481100260617135840884075846791216590494648691449323587131592429458705428749206790898531189939688563331860143254513169716129549427745049201960007178456685637179757315838348552508077123763267712253553816370645704452038803868842447970367321732721649827118854804879742564416565105484173278918457075909041376399675035232294201185872899793397450288696412144876333044923730922952664828142426246618866149304033355798285622679141250339598288558041368692248417303943121508471685084464364244275397109017226795302695536280616413384396933545204378856285687694739332326356929880580397041601482955623779705616717545346924219298775984863427250037262174110368415452921809679991017980958757424045160040873717170986418002771868439869533903518373513582527482666788114308671348136956989667625292116907619945311561934945276934003595378403229764186529206993346840408825933853112853205620705162820113483991736766552123122907821026777433208295658178291050679428067636970437643981427749653099776571489227092442243698536240403930719052714721753982273320752477725813712746684472327009233975720967537556414864087550067051191027320661630431794076970291213174717796890607865539361828171155369559213397832695468867407986032385408197093786128297969258915261467005052028043478627468249064417078359277066656986283961339837727284138210902002195373954795662860668439449681675875165031378353151922825412361367804449580228557916219974702169276399927478449552258058783184771672080380064071246830170845189738109486226369345853016898420009470267731182247440011866486965770990172394700408587425452876109361667661646014295284656357542891793315346129971549177915590963967286767667153302132778703840663317838369360053656449979324585208082058334210497784421065397901272114778075203535194406404319423380679780259176235208173840276958118593675835136271019715165406003167139553783582053693447467557099314647150487415947974954005627144830057794209201047823120143745870943333819157061807323053900424253936330480530833617324545739944874457215264873937715380990195964172269084448699537477415953338176212043314770177786432452906433864393777181005904616271148249623339782576623870486716710310287011331381329332997548038017566472421297930956925263166311259840728010464085434838038828407893872187313061804420970968165939256363656185544913681925661586723478996522120509384171183409802922476950134014417417775929378100567616926232651816673773238082273155965643645595553048685049477707926814211426056840884546362690032455609356405395502038561552358784281853220956478906593809937169046354175703431088843142197580193293599161005525283822617004160954589985853465482279111689522382662395188667294013265035320489193072891442723776854499339343785376105680568717884025640780965721998008481904877756350610643015501828216489199161835774575217039951778188381073427756535968491862734078774570627914295116469800375859383321207982301303599513869593371373016987720098202702210588894279307794032236538700328624831596282216741987203161486791005242019488421338711702862862607917639375752302447947887499398726000873779972479316362524104778807821249484991245436748130812479966021405145274915746463013522164348716505408984469076132117294789814164967103975214690139522031195875448515218392021963986048380065056886460496774735146050524579543698154271341883684036912948968815253792147641265994285167033643316350776017762954321927902659913644544893548742363290655787492442768203025437123396731864197680315004942624886001277927312881817775031580789217820977601825922338720739290110262156782736171931885052028842231863467108774461909254643887209154454870111168782718986788561445065797428744619690066932314237303271086670517553825791689155128798225358109479053236320764261555150669453567261461707688774918957746503865447215176638879733292026187141858687715543835300089384659016645240557835392689314516650501558025827853795292608727115212697809350631681505063960217336065721422013977072763771356020338587330093184131343497215096680625485561193191961139878690941701811478254039263550519129220180427541636653111424280442892071142727957234951560112652123097160265843351775579806077752465936988114264506327319699463078138751439394830378734979975462836975586148724601668718709493420709282892095809647808985068098668845603025022303557369320371388430001339691543840808585862356619751647404911622970914758354712687285465951317079144506091083117602242584605677626671218250731532091109018793840760872427752190678417774929534075578813543318566533434422498967527348295198452998952801628044426448628816218053302420629065184291324290176150840553078636301741136290751363153531007694223758967629173502561136932246841157541023952421514927235157997740461732260082862103090720406903777485258736039648705424371542299031240506022231023215067170259768075879113282299198153914277203094486300593652508097824385633226034010463571725618156809141099902285100363726097284245600687020609513299253444386711886130615160120240501684607542534078520532286646054687564196306675557499325577355094156963121037979206956656051564753247303430222351683816135964031604177201487598638835660350341695244634535200762079804898288462005541910936547522816952177438466110382260269360406890157623020182974607096651613310856338189863093234196972061553811261978685000835024617567746917604177685556030175337098086609211237466176058911916980002853621989788360697375295917522789233018239834833049501315299366276170369121008161320868864793834660398693860605943627665141210090254470808556889609651989521314824447148791950945493069977657020742000552432085497396104427991124684777638674725505928652088999175124713678752391014560412333090183934208086862401961801681550677427168371925274340032844223863043550007688327037091901230567067167321174274166414210316038397617524508705344443270688864952717748113839968678626973418989974490252550869632870214586118591796558092343280106614666964185899365260358402077821226178026670296285408839297621827151498864412843170918597494455394681694193099439113630755304546560562299110391235507495743985829283950754435861169584790726060649154378649647192411837709206979962832672515605841602705890423292744525204590070995636190857415100151770282818188260808632859554526433695659692412617675185291291273333389375513524146108153144477249578511154582454123324544559700617838634901735432841747629176784682935536127769541236170656242712001716798236449285679737000751004416095460631105913581093590012319241088426663483245006954021154997713285975900595135814185052191176618231964740542349056557363830212973975082983467346715861009379213997210105943102957453979401450586952897128815810551266492319519861859393677109471808222308453783369991353506987275544307866972673655061703192476535232593805491678596910979083713374003317778717300020653999435608407951627737622024105661130116038698381314466911609835634197660349671868995508075235582078440735559771106833616147244636550086410344286893676145663091717296414322811006278749263940178332169565893345914048029690218505516663131537282476821585720440652540931822031968255067502932871654582710377481849620339712328518524847792768896207661103251179410315786301907001258791060933816176085690694105510100883694095784372186745994404174008276347138883901021084875550925208300271812177704769442750875438625915727557978830273785649613395958283545142578401101714262474758976182736120777767590347375746315822148629048325043565511355660194354388325521612019003049805757380659209729658276709271140657696782095262813035344150504206767870787748640816911146642453958590667139364946779868930720539460544753755882959774286253360051527718540268825044680116446834034119850484983795955312443865842833844146539616463348801176286564691419064907843120900806551449995097525954661549679873339187878108676524530504885993128854088534406565948635254821933578751004301495676541165058745969363147104449832924081533065441469088384117126495382200699025625329668642344313058272969438262958004247390038163139317583015672188509548723387493859634912658732126012265350016099713058142597100234288291048342736519862504169605517348754266643401689016413765282196451869679848884734406781978005306355846315449835211902537830658620226913753566122855834725269294673419090974682593510639222930929608660050495601792887774746012531558708993662085382688521178137109699964127103183878633364928950601647485482437811236097751778910129029447074319455265673793493024895966131376082748722273737244803263775294175404830849735033717722679240180464049905439091555107879549169104737916120372024965733258552013726879148681998223010525796269506072097534240114045610404340389500539985297379160855949805759672301301626443996610733728481865807174515726730443746649234008541622586550285563560202102395791206106332531109104445478911023859541545710353736390488602618458264688235451205528646447713738899787575466714335553260248235148965819423737256486008874505852122941193802079060719510392436620125583771644720367584946054173531596031023457207800731788331701758084522643279504478644839682151815001321828221263087080301775619348576848362764979215443098476383697634435085150980670889388630791706370977498502860748028045904585581187786948965354086931110266532999672094010461677547024379291966242018285737498587797175103239632917948459305713879298300863921569709071163738820663146109859394053023275505919521443895806530441172528134914659176475818436348981999652083580101366543518665279634651519623332042386814093837260765192018474968045539656522148899244413180139710759697146550385729788995897067107048387886370125571384766315845119460437086051629353128893587655719616023314197850269004818722000920939325814779806391984612553544088519473863456526971982541976012772337281256382730722840102996879270730801288789120797550503203110180542625624419237086423248184411351790004150527542884232488856715489169928075435705146824527493909121451152895316165571011594048824208032144112832081756078742150486918659516757063091002602731323518683926859420931201056232005058714872959023846869116830033720383596466617410613363223996021078233163251101483507257243336912587511030929229181732429498464636183929334119776052469680134084222936380399327730793162268774659596009718234933491271622691450322026799083323005190129560329057124824020540974138792127577079531650431090345085239217029336706914321006029310468928831707335559569185012565218123166933185331715987511411888359466621800575126120960948955309485764004597551951255352302013955632695142431393156010365966977445028950877179807277318531430235495916217924929956943706177188754834631928232331142574470538715782307049697562887523026756727363556251614728568443423852119716323742384474731264680769624775871437506285116730816723417062129021314091642723942816324132542210635038090295242526967635485597100647293517978550446516690147132404841880337826080606834256512541105194998543484927012271285818062295334275873024354723681322989957049691499506487060656798061088295914712779518327026772438096843141251375085052074523287241635412646546754116263369210652637428346705188855751711410261978155672997538431417854756417570153329527946941406117322020521451151895036527034668568476819847303393735798155515679436265746996327693071222662092052104429655714762486025020970825840786191429664026063001833431646012795892050023793147022180422163345910031657853529521592240929589345686364710784295897388103431907022556756684640306961053899778206289087960599430023283735609644370709956523987158385001053965108631618306998657415489491456630040845495504406528018203686408492626608037030063074571146132446168272160381255932903078584836721086694429473224283216398274061516182806971095109754325643665153784050300757052325016800096860798693907006916717641720103515677184736337813714373720586815214900428087991002159548101370807425836451151970212525147767951385761454964308411772361716890077497567205356598695780997853566077365350453378501381455389292275470035710182617446306218923599393979996099963758191937965430734311382188275061852096235529941206222868003390385607863138958784691529322473354680573048369941454058087378110953870449697718281464566443304378058678806919472424127294191811440536023075385120763136336221626646400404356075740582432897230012678435235807348159090774249457319449518930096966433964776239946142413395457216724237085846957096814625323076546184062356518572945722580407532726781280163790657889590319153469409729139914954093465034667588862755099890635902841325193017787840058565337646512052152859889670760858775972144947589628991719220408115069010034584430788679977081326077734648706688958325513332049099105855823280574487265645023161657310164869314459205770042216437461679754281713754276641908727906536772438512613191014586805213166498935421734367400678610521356050557190913666022497137333909936830062290097261251976851183087723462954262291812882048780039758303974455995359831932110569975169162097354940883860128028335142836458301289812461665846378315247155215619031965196211382111349481979832291608910742965428940740333279508174005506128622002278413073640433523818244405467893336822364179840284759861052471567046563610915244971521372943520256537225159622581285258840994874201502557914430044546106481539850702361476680182349538478830618775134069430971799952578226330363652840343544495821670607778799069636991874586833845665171345226575339926893003062350726639218587518403717617278661622436742494858756127883475462380143489649907537373906610976734804724316571561029067998775970449934301445667518185284431887542346564365661703381994589660937017969915306868108682264635944840055466893825793665459320112963710342854413957110526742305236168015454255802270781017989134023151397746110347299121598617345424038948184729379911583402585385098649877884757498813144650957173616189638785982012819846741973379815631387597799946820605263769365820633432938935405921797246502042249817595345409004791842760343411954366468190457465312993543833861783487306971633886382692693907884183800082615863318214718160468407702736284521256883802538785431917076856398679312560197683854398332454262290494520565513975984401497842180650648345401824384579729444000613537699927792724361998584009093692861758036259998963089544221648578288519676420461478052690087492296035123649023983656746889252522339790364251294458590842461229819739192940757718827431471816088674615080914531459214679475021801548579978145651686843652003444628194084931989651955061479506944758816847834985413900535537093295045141565605683356018397846604063668224690303537731956954182467904126085677925747575018041765045658909500164285288671289850662830052123730049297021173477245704197922644090779067376807069417902679792176408501759350193731928302839457097710602713624834306017550841319592893763440015811772798197170153227464104277413260412365983772873948727199935759457315701497680879898450286812916911241126017590411097050806979623712506620107224166949911538121736810506159172443303342702812604804274886000349675139326740572195308878405938349810198080047400810279356604724529984314190521516337777503491064076740860992870610858566462212979568733862331364894931992508693180832940870818001253888791973095486149459541407271029826758782300600845520941836051942195087203474314630955085406555443787536003498548619937069781421168545659818240118842475673470672066334534910157422690133916543287665779370118767361399938813432507015686328655641111679613549292209107839589144391595132059683138078640493137714265390761584938514554558604907697254364721068778699809093538125390162989609733312494285654664531526452533682401924674313796181346286424855581259110967142364228119278074470989842413886212525019212798805653872136293499252668812728249910692891386873558940450301188685834281580121079053350968367107038638359982910988052369281826176686858396238818255263241839445016574362277252828186120395820640496085190007471641581886705661675348126710759554383758888266592666388390585147400665069431469624744018840621515921523912227852065853089238113018137821954545430995603261534155917668661277456889533536050010613002038829641916038826607701451373188283770629935929994271542243041247610296946311786282886826454970950441743199390070854958029854589478600852892769107813159311420114610042347203347281764044994746652755693856813261039026924871054672392789861739449175004124176975635531580050741587720009995156720273921666989875015878445124292503876853313084935120429567743515181540648404418621199178912309551002829059422391241418334672997345240967058013611716498957888537242147386146922073371497817039852284150013156288935377635886611095260055640710116096743915195250468469491555953217937047567750684886517198708662563958174054623978980189209409235260487324432748194139097424717810958468413989650287454397906230373348099088157720873100886840245598038064920231340415964681422432877597556661178418720839139502563781703414759837156168174056668287282727342369020630472297973658005266665744226268287823531977591113957535878132772317419105988762027490557155350410395090814739251676087776239166990273195858642754050086386838182693288860392861986072178101096444443330347054502685774457353288963933855518489557879417329620221108058534452815596643120259549855626857012534075411900524504130477878897020235996771724591938585001689545085254388673361610270766454882578315751747498880323437515462521574772864825113243378322122416592311962434512811928999423661352872912228750579248873710662223724281402852246811473014898793635451109883915283233881885455141714209610836052942970087806443874190283689357911372315205679983632128589571522788933792528726821571595690040503437219618389299719079029781520253562309514065068879299699018051258180077738679202941020943473762792998085001210239180455634728482243600155521918009518999891383917884366393036090701421614582857522213892260510072413222393369072704323654576916591085034964975298641691424068883300661241365276962773088506019693258649062849961891110240854379443201843062487125042825408851452291391002642438916624734854474611755761540847929286601091212005760246918770267536363398243745602811455836001567728227636073885498649354675072989788970714994614775249770762311399985746399448727869401010219430641719640944469513994906300411529419738387016474641788853794390468190108100310436804931154073453703579799571268458779107213323617738302788481268525926279799032013309093086438297290849401798881634041558797889314957811736620567419214835610707901391303682195250914487247844005401086148746661098975706311195369274432052807628552464991827875881660638709618117067090851245589232842679827272545117478001831473280176410951347040459463727279252252212492936510249665747138780273069128892456745459461252909091779050631364313620339524197674157114327854187653503689755710205068191789624365874256426029636414000203502143020597567350421224677723983559051598666595636355233056843906652047193307028205285626735157831415108371122638802023074661314667892442449265313172608209643033806051034312514022173036204559908555094090135249181650123133314961925029085482389588160278621185095881374954797063596150088949227950789955539360693496144702485000649737175275785903997278336568136529373078970339851674943214550913910985454993869938397092333220323576453839593649130443429097156166425623769597642543803776925257471116520458008138463337053529909806173741084696900633425428821965131235482718502062096837362717460160012130849309472897359414704010241759746413234903145442077522060743489195119402831515586764694410481277055319761270096989187573092086481694717190712251617308960163715363897708558319576991753018512015553112134501694657702536397598000513122053155914899117363204253825125078819598907031159573231867195003776130020117090698488943821749890285227750298399855711641414654664420552067330437342740456331226989833838195685822962441640286837709760563795956636063973908283174537982667603294101759481752052746605756509780240160395668428226977009807141808384438548830895895904576873884383672783579693951579504434054720379100263092576033556297954008008767156489306577785838152358872513654486065502571847938567712906195620175662961513135015610148123543266677311413750249470170948526878400748311608563023244509307561507992398511533145529568245570459547852731444171502461687623523117606127222510445510083939330542280700846752880617768684432109646445695855651570914625913475588311614816542898564654728669808443438746215311844661993151449827245288257066264903285862191001317332241166311340845753359809967057955690673181379774813091703413193679502769164871396623247725888933413474586239762966256095865735178934786902608034762178037349655431497230764302578329401316630735755181676246104594189772767573438943415293682862463398542578472463815984893644355658154994741772648349594303729695646361789599361782611288351954721351775528905301102630139150337081695779539670594355335621330980112067024734508730734060638331280085109862226705525150157834541265930993640047023470077945537620505562664088053206529741644102264678763112938223762643946360387009501951231235211636834432747580598223303791013296969155634073345017986437391221694858655202164068906571669375795022594214353993065586649458939188629382701202213011585180548344592845038170099122644049893176636926775641363470178209199447314847992523981205484623946093717377993861167046432790194392793222940556591596522067850971522902514282747848452203770448452387889993743985849022935273215686834348463473379909764189820677038152535606130498755779849321966155450775777460736471972290674835113302630698818842789647473424766665921087355151699098322213505428071680220027656232235503920397035499495617335887694276966473732496330671848918426831451720517760317594672917553033058628052175807277358656258105391101551608739514942092696312635763627158581286166336717107894491912913479279075408735755644293024745842923400314010604780281079280284579325731073588074524052062477526691748054576241740560444147927286153276577378183471964259985857847126169891033350559589788510579268469211977559679165726214378642012284195920003334201694738934752367963733833181002664682578064454604443956168871176366615873172998694204626504176695373478117766241472893640059630850866300389436421034931709054859568080623031402562763252670655846491718523608615437964742011981901046837586112262176475735458798317513626208698239561289651602828797656983336136898309244279654102711953147106998252501623289708281152030749471822404817970915920102653172293038286457599302858606968875770579094237328760255739908309048846572217183869833314305960852828961045819484197411712454506341331811472347300624705541962534752099865378723501292255620233602348473149933457828590765230171330309963454386913996902373524581197292889600130366017337807871246324054593258002471249299590714312133619351283752061236249737520072701795119576263505669455525751403021142543078543891896039537708849620514267638989696586510268123388957642362643963087921864496361745547077467727798516224938080794613500380259093377856992206776764179070132891558903747149687325318769066567491952881631809049569824771542057943668465659340184540925701627042491525048893217094860050337547383097449192684108093696390132512099307497251371364263001872001870666706294138112596744558078331372170135651419153550893591104512679295065613571000222114045367364864160518103348058150472791743078263392030819779393996930315605969192093135940618273983311201825128615259450897381333103774692283685982994167526142781921911164589077539830119651435849427901576810623133301994959062261092078131400623791269961091242121305247207557077716083849306169689610889621935321437750530575374239886264667326673403448374082358539617066375958433406137833339390249245683488540694642607462379184804056874611358919646113032074932071677086407905845626420032635428864962886608984437131099455190940275536426409761065168802291929807380088281866732453207493928128319023283705938834161920618379233643625904700486318287229936523754611915055121377919314268751252729862793223214718589701772713718671885394404592623971388328687198359056585187347253049169792844248850108392504643548093179843193903641255985476133929724871031425013321684066084185429849997722034375636038404290557383881082816818821950751055807435070088418827015908190536004321628988238206533387428889036339695958932841558298467236028499095162489287418394571772183249932682756266410307131207652427117270993673239925688366346781792471516239319814039223950407375722930529174476451203409550956601116004327212468064904526317851380252872550929535172243151703340392978326961148406066202938795094127433244639630204452779876364903043707452155683351391015934334505079375151618567514418983850472551618663374994992553583530983983485784525094464049132382175944230521819118977203023140051869502034903004792469549325746694154098735179913664966717911861126429677025029641497272392907176650620327480565437501286720074868749024529330499981499343505943994713053091482409660570250430542034304688863923984722544470993854231848295950345501271067072929932870666176321283004563306090268471917334382964458480179909384869102487267207073288613327331807103555977878967841120366551338393718059263909526529392726584490491781553727482593807081131923662973129508092679202566382883995022526861516350505654734687407800761217961597026590261054718667575932469034590856688390510964179871325294247324201660663106339643112328120331443517295873411845630960829769221061631933300490677538268557515193455734547385157653172023403844157858583332313833713644592373163702283170865154061436637351604804651874045570295164461330147875626843590281257566859333080215120478435740612737933788431437321825313876128585490265886731711704296170485747583011750753993079166556349246455625047807288004787045146658529270033868589224136465004564821146206642370768769729962259259984467484062835724343012369171269676710568329968030533523053535769768802793275019270992690585509604812146094816976217478976706460277178597236032272358865216107586629057362992606079526786040630140221447393673485402320027950645513179223823362381501389372437444185162891415863530133737046695354265152540146674180722184254750307980168296951271363700418146695160647593317094452932129895728470692326805985638571708371906835107285085901579922832671252738380778722943386543395219121153046979013823631965084021085771631024833172388936121554541806755437059807010823215356594023727307046286613175143500778175801289614691985990692960003951970863542696317539714367068479953999041429903302766982123973007657496443260896162723612239194498201565763290797182654629828394706232386262737110840431020927217248821098415194168281354814064098306880980102372638494330564595732221546839179923048758094354376804173364856257671967961444834715668181970446954304962364535041111916588915146234330722621773027878713768088866029126080714042092672521689583476144544606384422390221231961749439232205073204215970360016696604894811985510183409104003187816403896908327149884975998648834262550607911745689306299944995011550208223949371400583864564663883482435320220088261543278639310867361658894867815196466510894200477688985718011424220279355138392707838001085269873059483353921168608228683170996048292690847232455577744374877776679078344909025600625386775611507531500616227212918798303276536266353025454564144244772810308753656088084169850358155561068714914133172482229799747555063267610684453118228929536718822259829058884841541261627129441916043528360199236999499666833762888090731301365301264299843782161350035671502929510184937060531040938546692816461655886911309638356745592108686471552139694841496999932363124056575448998249090415575901013725955938009907118842075968157803152830717460539796141165441816636122131556705668123258136475788965339389515421277341763488277177099732397191116035083331784552023578436394478830412646400338975385717142080953773505044726946451495490655661320142401326945856480458477677609170833652047099567004895539990724372933007343175994654087386945267078546278590203453704115847800989220115798064647491830245748269614210325670227826065007441930627351591685112470066823784840449459742459582388966521176644449700937389319342528303266104967252007858372199033390294365747326844462696450354055232301261123251051333458756854192000513593619144202406063904492961415355417570337273124687095042587457256053510995098025638257249955280828632433551764612408960537552646212779022835820868216509891696771725352840257368437935625556774541150244874579438666771428700050184694955906645734991891765126992294485768460346261586746325184217346425688747818596008354840125022543108400583693115774990605720582369403802327419921651997554200806126527780142107142208006656038599383483121161543323451791390332785436621716277510712920330547824365890692840809068121443136792628642657129943824539276101157716513637148186185753843357794191618603066937239938267334003937017710239911935915226971852384949797741178058163097172322722347190512654465985406857134581481936189719152963193132118438042693454315552017037112842531027503523759972161087108615504817536058114437688721741357721425160429086503824345600215789315122026370140526344554172057314232957708741636721295305564633530432902530516068284126466528733199989061466324292865732829271965206707810846383764406475189136923633802062559214813256048074545563343341518103981996357526356363194684495152367256890470287526720003304330890132787081219237712919254800169792511660723292247233306930642317113403305900197954295166254062440976068150712532178256205818891266038065678726250854024150966930444657021675465853619711700692715778969736852717680805344297754667714718629996828472414638009331036488307940378522405454537302391534114225620192796949504104891102788354319758027411022169207682673836126948723610981759238049205258975253967144547770366588670705089530704957386484322066147072320694462095806920823118557495858121406791715564696035490174354418692001159065910530321105612630156658079006465777711392549429724346475411574487910777988270450069170354984834213259497497387146123537361518189362194614086065130955832004065134706292952488059155966589512179669148531158287493619086577510129023918310751403053860649216788256684457167723915725003424853434223288391982100221136506481439533047424157733343100007097071556924733222942725075519254711004070237403122513604926014160214809698999540285708388500587490517084698997617607416331197666359930141250202522785907435211713173277458979219146645204006861502960017371800045460861977220144713896258203793473101249960555109487913452998880415118159431362405936449949586200275668830911722557741071370964119279136410502455602838144060408217785235267737098916612398006414131929515351109511543271848723390016797925267632600684039411817559012431645682008973506595143607533021116078746399315394083323240144157045317473952216350573545796282112285113302126515066917932483378842978675139002248115874020652852887550945859966290952955134291083797397214531387627828515894365450624194675929521810294319584363937764895819599156799073135491345944631133720895278715438596932483256186953985159263707096065743480811734728059316749410622096965775680537722545601038215630345756392930297831834894746400399328481523075899201416951820394333764472164351732657340065266999324348325014758393466661511700225035352826101930050245517709247353412289707602201716706716321326328187039514823965718663777195719445281048035875802930545178673044582840883800406095726521207114826278706499318915696315001832209244527380742740378486985944906066609570013529774711469357949202778934832208613418000918094506643893858284092332291620858342986079094220168497075666488165425271666207100171334732006993104459104894591971348091423720656404895939935197931802122412849815162968099596859299974826013042091782964347601065095209492381581189378570247453959097433922964035777507817617155113326398890689359388937763480914923259542343180425793946062525346437886289284438879267798907249245282277339581751827826787936959517929020474738616091749135662795493961028895283005754966328563589441853076979718128251989220610321911683898789447575721228617532633915314181259933720480553450711308880544513299569960179370227794744217288989450772347521977803402067271203591211819387477986787294954055877314825211166310568622454042031516512282799118311785946589744034258350000144748520445070945542241531910705890524932456563479118965571284214736649450531670016780081190262476779677660491070082767440604711636505552885602280168369760779604329749977619760890570663106278596378166111168069313607860698128538611907078453670615924961633653832265830476754628998325979745477529750009646580869478449319365628846745732629023050823188850161785326276908818027543444166899236389050782546554876342651611907319667393983709305476498696758546015577247473180362121906086627769064099775329817144601881467336109980402818235722491829396701960432350605877914290855753023553742364494629096909656353760711003650638868226679266287491063029162275733616749847530500165350461516339718496691110312298337102256929617640931110001698243172560430731965687720727351024243251530525312536156229066246293392275357630948115887759799518439683101169563190439366772810585378994233760484138362599803265925137130659123700771094998403351856394576983651094530429324350806419183344085657733676848654789727079452333246023486577069496149863450052627165273313306161745251959127114771372020784259536432155140589720607571823017402210849049133160124522711418130281107799443464823754753493926511485673243222601475852676948350665880557835982228018577956434007029231106307087470163124176256711206667269810899668353301631549439916892241408589240782372375269156279889870571625960414760449785143827706455523325168039383340971694879450250610210041866769190059964009634209898278632050343211189101531074469554265802309753174441091539010636772426106175106540477353487533888536065998574704210368157434412447828419765253165805859575498035961087133967911815578490042117886123922964644584934678782371719891029692061229078406321810066292275497229200776173532001380927236437809367195261251134278438624765535575575161437879678213810581747720009494231160731773918503008848449409356360203598850876461401047399456587248407846422938062577669499000348949127038878494404441926788052798569095479377223733030978519002792599263217864370977615948572717774400270090155823075591863443063120804234420584263389847199876230094483995839161564793716097589332208044627000290553447838456308033403423125589464411915683649381400969148613040958532229043367174066759722848946992533969934713592690724297818037441278549427144024427140197508738810387519022536768771307820886820417367342513046937157840542084950051327754643489321110978125753199825856926195748001253000168038950759640204314937769960616367157241343609580871814331896427174218611410923185936143315721177446540791686634082502347414839365010717829292464658581534675440994990319959106851324060559505419496554572259273782316170048405235701163860870369934638803943706726431345182650336471693244055728188166772172273836056092833545014139775489957123634925447570075414444473708950378660755371460326695267117784667600417038517712203304849876254368013428273267872204401748637577408934087305744473590761934442607766288185844738665352264018324998582132944184558644452695030691963883004485780346352417337701645575516395569678379053434266756991424456323336179605131687967376559092259857331018800791388905686645390660272286583872847068864152570555527563752774826742002513152066471025584362173834566731916909194197226936913171767930939357300417255615898323641550127067132395918938598414138791065309599279609825787221506218348627219815591617447857091468702137091657605535094009906074839194526316857971247587067071850617803023731516867791858947052302738918284459866027781945148111914033052940968883570142816816757270844110947405125059339413322648501757217575189332011771541034068841528357365355535414297391695423107312934642735692469021889185458589116349044304315989198554794400720786192002619736718211764389785612440022894232584629398669941842629549703400632457975463325269006969658128884300759621722334930583470866685500397749905225058872772348235680692207933179815590912635225582006150051524350238710066351675880861506670170489810131948086497186636219950496097908963600343625205046744895177100578616556438162018318078062902326593864441552186259325044192801528827591811296810214868826928939843318594564220242011960172536654655875093407517095997714452485828252172057474111409210775896263827027488718587912025461047398928992590981200805675209082069147819739649923275711954868200238477338608377135124452846120068944831638567695462782466313982988877723785191167351806370641380386160597694005788995330087650581525659748022295793409513035160764740420841484786184087388358243587606915706953817116888388208528252113268765967797056470064438272082739864281009433831763569970272642900843274074904835854106476677796451606979086349807583317274346695949101533579389120230552175797561517197544180055313572815952819048394336757067847954329431062686218803699213817290345312320941013605843803318085927602352265034020543768377691088311270173198740431750611555519744654466957295609214376300480229650516271741987880729091239292586911644925852542101093173258076417229031453402564102905555724845783675068521275182308130229707660309246373626403136711601828522669765215237081358079190408951899621869264351829855244207730992047165204845979369372701811334214104719823620501324653818159246187469224691561622360360215350130341670069346012644167986007071472975664887684466478268754756318596987107411456216195777417722986761046396900691164858417732643852211821635489409083049535922669520558245957413666517641218508107665185390543108339638285041841968613455589078786024889057778742712090624134927494126258697753689896252475161826459908155516959137965854100399959512640176790843241314523540188551999419409885083731986046840437869483118598676343109498365637220275841902713953767601380548985966385205689166154327709643104864458522569864426794970933944345007696370887232191834640998969475696771477514724053045352845286073914167616262465526186507085961568291582075930436823974030599207595261193990951149327161693583981391454852166956797086055814013147744898312216651432811495241497801262950500084771449352144235054581501744946054546056334915171593761502953850233263613216372337264951696283144891472515238069663788044894992095222288217907968159242818973059333746371730555727678304967840240752610442152649538158815723162369630997109960082844813938475055988776738201862169838437446868686182470969087750936305009925151069394969837859267224376392719533317093811139491638627852877376983971936812738705387927226604779672544019798125072763943669253975396162885766800076463120288502484935980109451368543312718200352089456979230574269642824105589326876247641176113626414641967200709781987954069917592906399174105535671018122129088984346382088790694154335112646373897385454813052382639063841249702529089602672648411414942467412793091004850003177327462429905251905789710561738986222655061909130140687260114603287807606337305538547408380973161451017694447240944341193000071200199097481530361046667707384306381274191992962255650166372603129865234963911757803831107814117940791113620521757556696809433711225781944886758521910570951722690036174677952785644766512854074485265580208391813088437465745601852326644308339812635088267415950728310779405235181937043072409979097331155584720189104540317151983883106318735744675232276810724722087533014417426742940963965567551215382331632866148179702434346840331656216177445269768169591336854924560729074046749264309709041295036345333197633138963200176174720369221837962652025510014385290996839654010164645264645354381057206109381508225545757874961706848840668474846862467312500743676392215369073848210352014578885575171732165715096633919408055938566289873450464225946325567861752929300499929264836870516176990429818446823889091097063384737165297744468943524975043659366001979129469056611904310862465843468434760308416934459696645893763929438435602922073341669578739524228594955692592986936357709469938604922158111776284229224164532701355844757202205792943777080528522340022107790793787682160264729323239306424189385266601448581053644683331987982661191646552846497713550543852649345381330731108085482561239657540301361174878091315697608084755801753971777634530625801499937889383413330514324634265429324855722192645487338953970081337355061604301132350513872466566499935854138938094998351473270386170399345685802475056128609042501568447712495883468488609458420897062119700898919996488146612266887818121724583303340512890994619334636742908344199621546247362410682868702728890251048066635041724429315704154325302542756470436085982097001212286204359073970782034470469667395615289598625003800722382060124222210925773358245318625684752808078502606277993203573535413787355535388669587595213353662105602028220288203686579772821863105165781630151272917615164131375725895604344118707927417378176766501139356787493097887611623407358358591108200958501642747265768587837600618125484378580219620192059578195441257320176121498856373487251185454018732449321938818963124310514418757446905616625140096746079715139442072296842407437857103262982047710770359337570006959225018508856734198072926431206819990291937793346064810263535469058358570292143756532631284503169752114348963643885510271341205528973849872031571659280669899739356719865890331582438815236282362854304701663782508053252074017963260636541401445610264508222054685328198074158812486074104538232794442678709065116428905484001782769175824822678321242743606152862203716168716235408395368846670083571845076655283563850616728420443498106115728988030893090512220471443619809575231657181416238575874457942292760574298211048135757792509829385409897713621126947908401010477160365856713129124527683425894392066363303663611243874202451962886495705323440830848048310172806180625977070078154717921486113117060979969192815417441981434832420019020320374556394857659572495041797726971334138854105606358457428575993645753166718341323228181239279757864598326441734033208977681467522358486712209642151689955851565228804422375460150276174985534976793014701201097480275067311983562124173281242236564898239136307430125898824812732171275386250573394837176364675295204806142298237848792297595483942758679694030252645628009728516455523381288315745265993103205115613073799045354710816387600015244082985117582117154021526607278894910459670924461964681165095291561536749817033974016612167125358498943730801014589238722677428984986104325914305136952061630826324628585106626031717952031803986976889680608176610276159232964291920233600580219357131021769508487757286023374162117606101727376660334295923062148878924490787741680851706979374646720342216313815185526854063417808721753584363347968648282016890498376481491601393911830206058661799671155124749921492803496532524291338486663450432305951621821635958893371259627544018825585854588095117187258051453859647901448222741760341017572943206016745627364903609696822605669850262007511059721744104925719111586433724410616447649981925066979571321536361040017087803092245383240477915692799383149345021123863541857925476840132363007008373090089061101545375528805982034002952737060704879376847010251325434917284006187857564281039942373748351083279599849208402412975424920884846655195319402820793777038278432880680065268500311614854376704953165012458695467200723532474759873401592398253908139779364160780564946429370581114559150619176175251393475441282298469184111953941504288682667000718870340566524083228601750543615831517650709269380230510942108617067651453584614481867781948125142524824796309659809697828126679330260039680166759325219624639358966443229725820279357130773474004542283168523864119366805050417762712968409264381195153414949385225726194791811914965364091750002745194264825172522795554804042307018504516615602257828249230193798995738906554066471247259344988738392857967726536778407366372193279209541699983514430017867526088782359995456417864329459656699922424554549936217275843114468713103501823070667164094400012274432867027823579428988243227152987089656012658082226338802465632570695822628524569242563790944364546282126684221763355171855107406173073871890422826598867858970141925066294772889254513570028917142971770313928387016978210051634624458066965166592047587045036247920228947975040386198432292399507980166575327807708137137614289712437406732452676894291224202902231165066773404427368911304668814005350445135093801289054092859011791098329277070484935761576741481134123732702170845626079378434323871751228218039057212671282293147347720714343374032454791652001815913481495345508778138435064549913608416188386822881224409105066450200197160653295457967514627659342937526895896518727513831120926326940801242766784259408725791637666691208209703803937026917849777604123695152287110356592438876433019200547180348399698100420122930643049297213338282694768960841913514645089433285802299215845098279614384127296300648820644329105110120427683400868228904137713306714540630072701853643012517978848135107582483653921418849581303706294612969915805686037103330303599053235385149769989605504799724580537718198471612621536563835822372703799814674325122329646195754868574765924528619937476813066138501006903133490250681862401508147074185089968894502447326571324252152602245560349703288125472665342970506650811583017007508787764359086927734488318343726919003203366127107418910379182684134372101427013360546256761954492607593441355676625079320928234639082336913019989961700226563349395865112151335551522545896608844675612677184560861913676373323112231604527687098892709143399271153091071761916243701889522491416122630027825488212995570681728084602561150753455293659432097985998515451996087683545412761496867572131081261402413585415223882988564002921618518772640883002195859217736302265613205373795919225818721168323950533872961927365313875953955111855160845039867417629905203532252308266689286344881347930691417128222339829781630107920980719638174758483481568622954436292209618004336164989831324476115749519740353068585125916124161477732693114715962877392621080362286868219175521656989699185743612139811524100880711193675887659927362566195821613726690877984612628404906871368379894113803585527638482994575311527569845218539266606327985985321966286021046011886897534748745187409314428308969049792260023582017210431451149822338724855701782977004468556155294620556949897742680880174782240170437299789239938587631028283215331414908579271187402824496956888850068072660495335359591592022014092807363717849044914748795384335617151922071120841573216060947047847221632702495140922141670066392341532073266488234122424051363013659774513526338508388707989709310335004325514490500908704423097085890117473306734448478171999202524394928796556964856317233163424935818186345740810479469855721880021676566479588497657828266956280331075332299656276877536840655712619303470552827146258283403516238375716401035642216637564722441024948194542054270207783249453175520382467010157150281350617442473488758895719623431644582951282915935701455881181855313322108970962736740896551099123563446908348524319128346917650774188628272349813758862611368947474465638637617575471792382887901928155673414855680287665514525617073511121468498499792741882677785594841194027936791121152265185538049310390155111232226271212271176458582951706042996827420603928530524742852050975214182361813244295937916485029075833325747302321981507302819799252665568324552721268332126264678743710325743650421305523685708492696845155402185918593802066926993492948948031304544359963758475465258773201929261816437679297838784756543922909891528990085842990771601438333114945960589346933883831057169062570200960518085168816444317408694368036181201141370106873032207492474648849217153404057802505403314520980304170029911305978825014190676680558419010726892795608966439024679959848096973944943026710095060494117841163355944306205731420292724371641617690179375910152954910403172302902546327548509584586949265050275363705772407513039055764715469275226779885804931979697756336350498878588715893368313875376259094267778233681541539890265721337969086654281212450201232986281416075094490536531914620476137014316151312381085323853206222627691257026255253646842444191438281229010042096135080525854061217288287740722659739225358960788260005679404572658532757752497979576769971028257412337812334200098314803239299707005885162577928005859044364185004150744898192224578140192087075919213850611480637916039214840970981255619832937777004423027327710237877343664171902884447536520542351419828958442343917463483391082866617362411806317569265325712493912522131885971947834268185031157429428678993785650263746474109718810024779291234719153282018253303361075566913733038435272733016719458566176663685944365473340949765465777825497877126085180349798974934826462996017667038531929106860981419672802686843915780692524614774122627250364895661860900340085574707883518556688587096453395392865541614625033784721976780023036925881848715146451836460765806667882375151620520412816832781311928898834496010731702069532164484632793306760220192934983235840040656110565850338084625385068263776542466098071876581693198197373223728542725287695012178839863652807729343634599736776422923836385177381884509514532255598327194697211826539611842356040588672044287367150940860661418704641261091886347326056341953653437134929196351188582875516107844453683169834506953363011834559959148585107622014519035209836258086589000140453457177254575142474243060826847154908504702049932052126617134012173393923368322447877199056616652428753271390492860617415953848906515695091613970498700093296310951100920176552133589045514327511863273918863598593385852630377979230580130329910009082671197330210488969183285070915183439642233948487978998919800983966260954587317886166918273405745832198842027054340206731190859095478100048516657743479848950606430042853577408278139386285634686662898258593440436949471455414250113278511727964760902532924681645197561884504781812182906356493826353152039746181548557802581431224870703607848499204193247915751907502125340320645660373494463707134414685673054039312701289936645802794337630860238613853671176302602887013094367716835274698430365832632241886440761121489485303443371427181019442220376092645104198010534345883328375601373641732424183290136532898529920984517587192790132893166937920616211124246457297720531555612408778506086728696599263541779232443169966609463436493253067861749747866122162819545502365486549900322166882936086062617918248698992398768534536862278598868837832779487092174803822393644507668879267575613103064145580070949911113250296465181456478252403920766350567423772022204785725323019742886400957464517946256366412096395121747074779678275342305307417512084692664993798572101100236939494155171487554449593334982547174598029036717766636468369430683333958430577181665818058500884789144119866076495108311095736793291281700932909422773202684386778816824781906714641276265528791572977681137952955180125295605372937130549062969283616449924262049735972900179207791622495659132991640038469685638068769035963933201851367457478367239525982998901371411129358993350659424156395955902151614239506502047975402524796566382345219831626924089929999367190355995166453332410369567198641553342999469535057889019301048639793652758718263215178730532419439705519226007740763080620841465524698570180469091039651627214658266920251005123822389027251876139458636094828859204141778543749730682224010565526396460178471842112510644382981273786221411443375579677981089097483312078062780096175596330930948553965142713381466932847710408477409243797993725273712722908807492134432469186460955946132428429120421803356742097086533720897203105003599816774009857296883009753454164082377238659625442970647962368290403304220067254984050167750556793908955159293517871375828357841856123956677023410316472114576994529384859124458436085394943378265566117164816699298082661403467916947326131587094714865707752292090232634339950231075729111529084567499313751102611007345920012008551784127893126094710005081622369650040679744451442468480805012416651384989047818250926659028240148187665852519052645142608425160070017581908606922741944285673302787556621990928269004106194143821925569155953460400740330897425815692589555084462192166682448068740111779112544318438838865742254652083192801796329086696825329056668628274776689372875138858432233512366572434035978507053020882866350146965029812795518557977212130698777854477361271337473193624508218401580487687145286609232217596511371094180487555626586047501809814406865524118587859822112006712313926504863524819164943062076369401443738826927370734487249745796253766409190877592502617477895095745881294936337396298765556247565677787517533050350350641149545499123900388520857570567488820030151964763798032807525381218562285535947054284541128558625830818590977843270050196191389160514194587393243075076981800630110792645084961318797823926706694741308820533005886177720333884212375973156733779531916360287729290961227478167261186642265873397756621582683602884259600207098963481986781552766504089774242466682673526943906374801555932238074184148713830675672512642923891820625227798688570963669078715998694415052114248085353435122445566689416626198723100300408828807191814114111523812744311707296764152816868859182558655731048304297613135718113530711168078027019507544259043996523411391548681129098058607287170834863215831964966092328463435072427317615734504588967027903019949760545906193918782336216363829699980431580308301200785066231045142518798092528931506361174524601495109930585081686745653990476825052785398038908662646577605640991956422615613415264435887450334252432251329936828041863984118355248312940188273388430878019368514989118400158644309137948168445507977807447557778653296401138221651093614633216573885949943251190513571399041375965360082068509246622737103300426318861257570099232277650175429569285793880556423061025261317132908397426086518080730068566081476727649628175824584487899292367406634725052357561488405198201732074537115347393485756733899746318502062764888136938184278728505124514517173958830492131368695675105147820093075147565707200204954975142673402582303877881868045038534856409700465718872571358472386737160310902205636011129428057865656335894603220243435907931311920051744337517775908288231226054951307189341551767835858566788920484653537192312408562203764925401607259845250272890940161367171663042364439464563627957932093443184463874659206504669132346202061046579075701889873705727336616076721605979366321314561742434482315320579906635752603908000270707812118450698347863192787453300317511138946776799752915086705189155410097129349454418760916686305079939428009089974596379211194857908639352747326499831516560491222497627240714422759703832682817098417114880348412722752334224424820868761007303522271300641145338598817608354204367366744969022935078786113624570643647878579982956337086736893852796235143534791258469829952879026310981590750828105912157522964291991853005114385772731761250470404620435804440362363361788955688612788677305743723108924490841591143139589143065023088920520574672737630065046972240933296782674789115442257969173216782509954286522944271707748983794918833318132296982225002684795516761404990024690849005115135197441117530590480679780763103695779495258200591159651519979867252788447586202045530459355103357974395734054704996586942845819371101600327528729197470841394486364716797979343070413817973440257731373131688090020846334647654716905762979784285429277135113746545410166399406440114383078172009110921596474323430751996052095182315394929216195069401674073353530920107535446193862698063314662142925145297744100430859697095673924369155817149026997810796152222081464826084359265182569015934915287375330114999695578504273560308026898363842360548486220025940957727785394159711929024051868741406578489057384350398146939025468921216623600542004303627322796686610191395496517864774058188512629934824456379438675500474768129207085301333793415877187226796196894730597534379536770197378533634875021672892346351588985118632507086149461077023085949057681546993863507858953052967803286837164680456212262717881204985284249182083568749728188890315767471858999824369949757490104705003434675116471751313520773298424245698402017755348541380022691431572659109300605230877172143951675800396210058430900780061868490686192300980969391701798691083050685018913557821751796509253639647113051834766028288535850499200631056200368955157309224196107178132778197128835548608377490630258487839055215879097209748937387949010336354561590626605582212251796469856572075701946081371980439951434490824561402770335301698999448458982492591613074569249668137219957050460876033513131697930172567406831209759604194864264512463683631712284761968238111136157272123186573997800596163119766936661441824255704302222312723721648402556580002270553756855015893916846330065839432941264014966938697014247287381606655209222922717702294070263173221765523557695028711937548871491262822889951383882517433300705136011074136305161761336578027057628582571805331748518861277022207385027856661314190635096457897862798379687740446456608346246102862676287732575140503261916741086949963580684959326800927260012512220577034423108919214861290175085734070215529822573441768734333920347035377987108222493342789248404556149321417798428654806819211993585609449756060607714055545044083053680655798292992216399718773089012746818069860747768661998170843344576555027694111648243508946453775066876078455756227342811600227244112530425520234357497158508086332354513759371993164636206486049849441858477111686336936632998091508365986697700133073352884693439411321104246897805806606764475514859949307451354359148624544843557424106012168084441581548391267416096461992218874806601047802665643117087811606141600343395948490923771709724678227049893242407046565995153168568066074860626701832015247576481755306973639341549025968748150639147254136436284457367135170610488993877794381375700850394653254006287477855978247201996716072607908794315479833644953494115848888772825584630848859882460771630678119562781346876726070209987076714813075573688945303670301883921326254067871629337925941120439814877567821412028236797853444958598836960945889384286144058587323326693021466685753086092975607164165975669629548235023253510729013239300507094392960263595103097652178652220643179989275204479016481800328846385927503263587635213341156685253933100079371976025611082666539124260190154553678207482915226686607526162597238531616685742201554916169216356753004793408726328909865950434174728461785893873865677373403451621389667142964307392828102440452142451812031324669943153586334237853080418258288675719246680775576407862041586894980393696300481150648204852747482004900499867732598458315006203012604114590581977747374014454785778736867243118660122816929718021086067099812525567401693917061933257461346878138718022656666138301681932865120243843468310076487472680451665915187871563291232168132723996522704974903154094951730117265538108430261964979919114959565797333437340226438115739541896586029018920277770361033431273327080090359212854499278718832526445473710294556895287458838788573407057819629568229247239891847763486559789238377599661773651766767193645439512199542839178504587721152014121098870155854960539306212186197346211181574755509304307994482752848885813259138627579463817955790535164452717352390929535804974812987717467641066379388137925696447081544564723647498602858973853384524342147589818125266296255093135418966937231773273027853189238844293766148193119320798897093486523105440535885481016535052698150087145407105324743072898083286960319668470265880898657536964524512421468167387852858488613177957800523932825284555706846802838551635437748612064871225426971657929586223024177446499334888540030607099968128984094520013996494091164885473607868517601713648259082041219239256477854642787144377782940486186560903304304795217461564665643297814515063187870594348355512784151857134026920707188789437123467355305315806554107983554575890533804750418267923857157628570515173925677579746703099985243992459828396032344352355374923582847209201195855941368725646813595606163978341517268402660186534093842683000755200213536929194516933460842176628994713917716792882686345859989159782241108333907669798661618042124470284067218764113619829018136079943634199505349894793700125285569543677396201325436920632298598298950924111868074441360195005391867830564219965909452360681886687976698758938510703470947036258054742999365937211533057298048345763302004208950036660635785226802913463095961788200013088757272194302683140479980551497250990005368549956011952997169106177831490799040802836096772923508034784621904077022202365314624697751204278054258226466377607573135882538641167959430959772713112993153732863317792168197759254961299792317129379522327440467773714762699544081751871806481219957280396472113111122974000884662346006272549123021551859406973414062461631891128444322983883330187309064566230747763620697533523716763538101761590339007237601028557326979092873805392091639728157416876351907888711938372743290405898095703064273327111556568537501038375668611931398370576879552711658471374189491192016468036458512279643952547450198575006565045101225028374103183952397725988256857533808344129141905927419123644273243623885406383747634759698958748903035208963625723413258989885471284076706614989759420732415475160658324661979826338293110270566803700050782899601285059713487868387878956422032136038904359531847149088061015471758031808308735123826263984086133472286732249987428359372396278518644070265661293651802353735748333351276933700041547510901382715704970794296058111576580317544567165383368815701826715307929379931513963624795859945237076757542343648770556071325774927077274773579001972013306670576369509190183999865710819295385281932261790903538011436086155109129784768727530147911305554425593016144623825591910631579042814384699871414916352545013370879922781274766534065487925984199741894892729586110810701933685200193984266711146242745415458465421189254921738094346531233190575660072903328844834276420552706720541862030753561851333463774541418380386819754743561062662704482496650805351167294529422148855701267559615619492750126184037139504296511383479197313338759966499007213803914272341602603139911954913990173807152938836009437936666210874623133000046729924364664635100742094940432167257027801066268980175138593361517702474697836238487994483695785105618339275426509270505368747784865106195293167207813121320817746115467337754680558266989933879711915080570608458854069801298036155273453867529680331084635053345087518907718185845037944053995448034172788451905452542011087888481108271281423351184079804328988957168794624696008432801443733047331400901130040184032498979997205370908867668132779223982003483849297279454343663096834101818106836373778773654837963579211346915584879727406546520377696338473218767146404903866411583529526916421692159474653149152899324168143900149446499953295665688322425844989538894927064160882291439758765747989597711549921354445321605312999195151052099417532682829042731034843439626089362505316397223915698163845173496663260552921522739730488997981022489601726920844711877825513151307347604476976695432648456665823423418171200182464835648813361217716487293485910684201211236745815956852066997711946880483037353126953757450513391641245091092837922741068693579357083410429744905079164852588630244409448632949874242720436161597736477579495043101062762636867108075295911616822458806698857009130057329619952415630612927205517725487536218234782336025588704190189180852470625603388234430100027685245428377170191801942063902162516442362461006588168863006012237133486557142976035457407358484437671330535265255731408295211304481416771480676785423851670598282194682131084947903328103774039359562055038355422007226071180484246751860656535262370700636379358945840838814381364155176460766038911856806548515713933328843307781631394155065816857960309442748809958011983133903839000315666490009840624995384128067853616289055836047648602841004559333787123340732008909381006839927390937377277758985152222525211491846053129404310022769748549408126531303048301106594544644086600376456349857957863113701068373166510311728548376669686236265428760804235059526167878070450949606272330211077480193144994644362190134708075829001384984212416537707894690936701690389974192862017083874080582566126468137736736648618140809327449249953668668600171461461440698755171635395343457324551377275589927800803371465161969340212201816165133132688500185490330202992725105583620625863703785487402552873156357661273663794280742766538547459470118765958598128534890723394947270214588539333511838644558371503544625911117998596162676030908831731174186575174461975364938397057232547002127301887948850438640792398692897508856283975563642658664585902008851049549385032831070356079791905431076488381557304720171716721641212842387353767749522358761708942014758543081261968269049689613933551494780237066229151419679621287107826067947263237277947739280858908558760918161813133980440739157764156791265453708701885007334485819524280683063618501823523588919207952787559322590179062222534188896385921473310407849158186561717859935769728442029037314805654868594497123325939044660917988194095551192561941386832743089976884073519029312635641968537218224558698776275808468386993565982803092321230426967958473069139497728128144790139227812883241746410996265625004687336413442878045047792935225245509218223737142302098423395634595813379069122344310969530141291596313520053502031408612908988428045382752149076836885439957450456365555152054520086287466750355553809436770998443748167093831498530733390787305718442830483418252082108523734629948442601413312029200939690207432104267199448052658365850916706336232092947422997294043721473723461654253607330226547132463850752484866962475845702309627672334349337054172486806111252503777801807784891173226997306562521104590533459374908882352983144886640814829147339884499050049823838677163658943578444459227431853342365379205131894491134745980398491423628069324917730588079656847599815998199718271482695758455063223248438663933534148373700644641696694895382086036922883907488531573114933533914091774703339243378170997538137613298904400387483002419444620578201942333162541875088113217271151652187506129233282538082467223097943582341931780071249349197256940964327840904648459864397250242025154174190858267446361670298058925450530812333578733090789894393092206494742777245447383446897473297267223239839950042171621099277523365214157769487217923632073440730305341831341046257687219918664436403891809488610264126594306587131836484492950593167447596378328731497271657997653892870493130659488445156730984903473961932817176979081841072272106860121384275343453993256334779781773258700104067284696109605844082787865507651175115148555721314247209576396918825048373931724476311727808139802742709121408098981635010356122140054064434136560843817512403843289177760482770334185868921660502195000944834255406092447288820320204680066050531261779784630151321271848849026855357226813938044669809334929824382927684196375705997481894753443821280255637423743158961607470949225174187818934756473946066495462261967198152247350793543998668126562898090876835045719463020497566085464624574861661136612909323386902014264651939509497493702365950421723093978608774368346579995315938965246351137930197086375837930710256589534826351767986283370497445188396421436917769494235285401954816866380539876371438511962575537559547356331385566350857510613112127300899484001230998433350607834070806802529054214130512107385916273866431818737607717537782030155032130645949427171735214284021102569448369702395225156983063695649931282411854440459747327699586153801544606558630364672371810883139023873411135004066105419375409455957276101036651442396170430027944531731350025507412902205480889265901409154042929398029568254858885847433741659376085490828808173986079024615984925348405137223613114143437090932181338367027479696211056440619410491360152481577254632114612897894029412074346735319585048943805163343512546742321730532958202481961545230190141867679311523442452303830794791635523194714782231862157582124544266301121281134875545706969880426804639029882579802408717155220995358368615599274205874733975872344789681689763347477431818884450689631182325914710562826924211774785475591812488183744174665074722162174265012560876890637563833428881592027258893776114086172409211826424881917657900834896683656694566906447688408529196545763712600967520124788931491067275612878647216938167236797215132926498043248587276758649259962526962901437847560006969179296602239440038322189242594502798050497418871124225863247976439883083363825513955968255916363590432285086367357319022698313619144639767712422522867056310809559928749036765759003746345350224905101143331661152437539677916082336060246192536353369596243576560705026018808510778116900021391999094568930094120351749420854701229628736610765627987041972699767759667142634535402778140929635320329452156818920506845335362220174503523881891132565173646594381118932240164200697460633105107784119457142865455307563545989237216365801864325255945909233355342579278285394543762831517544156442252350467781695858016656001227209867235845827435313562224999862614998403778080174222732208431867812886423054159226843101998866136964472571725248560618067820328812038415830241284496181504178951530043609577152889727824580961109399938816354810802411495952202467436466007649186018520414992760332221413438935144121272184212684556960831598472295400506889941530808332574316640868981570858079028228459385380539353419092232187022743418791909645263931966673267551462288977198930376501586406780317469408654002391902833646529763350479068080963253620335361596783423525845690895799808936029822324070738355450988753353356794845454196724756700752876678499993950872680353064135637184055263549229362335591181210216476979325527043725341239729663313776128629371913145760017514205954294197007361114627342725134955106007479492816741515637971416278001411248613453761717510428530003273728008944368356066452350575898508072629202998936079437221666084801766588030080752677562292353784314301174495289073422326069395636316075634987767602286472106906051370429185062446881877611736690227054336080964526938711368386282885754602751391774465411613536762408594291561086224754729825497440031399739042450299914877319992208206570944109971166029505955145624006554146177192790660313176583721253581704907649350239911576301206601354038251509157025023911928485401314679585098166400684072471439221079645468946394084134272076722245049566095139003277221491836573486218710589686240098810783814745338678991946749844133598925133111930139950188346226020431282651041136737196361176304053816022216173366910246050881120124786091680412519748395386007854386357398780122915094830797998005772579134997864506537891198786084689363041740693388557431679622589655832607644986444520329275373600570572640481789085694311977396186812878185709304108298657665021427970719263612139588854620004421803297870470916530575423687585995582360335272106721571262632190002235117316821096523222470148434691532575925831568353585462903797086441626973625898497840692534891481888891819542653364114652995586760711732272650153180170110593074614734679149384512544639468121091144686140344125677760367808282721482552287265234638320184554470762830620877745387051094503365187757376836300619934029993565234941979719071245484590683743767997415879711666677358290431583001703311385332907294894097653151228859006739674683952285575818657020701510923432583472997412144959267061547301559983682054695690963858129371861682084278528774603643591458768556003985585265902049618271699137265198611879632638029768894097075160427469622738825885264811355332277822815308071039846229104208316468693024283433314156162301373175217035183436203367757365229149216666919375377076375994304625534831380921625341516208386898448376169437176156207598280260599551189318329400685289824350133263362703554825975003026347199301395487358187691806074752183903513511930659230853634379989957567427786377845865678628879744680167340000020986259402201305569699331008882705134805151317680317715172419598219143381978562548806153960831837853534519747452518539078779565799522127087821325119060186921568398991556171338575803819297645436158023142457535834419683187471790866169563600102766657024980507539683846097492480690775463910850757309590531894538962350159642632230700210005960056452118391273759305746114177694821880529550595275840270697774490521213771795326035152590859047431617908852876489752306924267521329626940502595730816470656666670876234983924308680652370427498188975447680933703460418910708838775291727453618119030825607981501745285126379980347675359468285083630130303494906379770438612976998925146422688135765143396843031334540003659404872375439957955766990980647293492705020940646630930102429455097649975625952721314683669095985547803524021620624115412429498700484138558567497240067082281759738977873494116191869247444999584766481271796971612009298716480426475749325363878988658275999477053097063849610982533579894986435826040670163855513518293244447204397343048656368313269439437917350988691991427154095942193120026312570135798508295218040380618644374441870996784679549538159890348894979702100719793355215361244001356645991553160388546087387333129415897295944186090713256633230694821276830710069567570713915595002204536043243997616978809027631254040883739773476533238240779485807921262894617229404775700261056996495378275168812011017195807764584048919019962815957206717662655470751354045727220282809386026985422517677719312071324813569630325903131617170868187403266443373627641532612713541962126278915997623369531736483425982106332384223339359364615410009461653173926760683413301271803479964105376066097566167467034074542752399864126270724306658041378482079280296119196019201683228920369591762132531645568410967735925404518228218841867885042439829951493805262396672340009748651659034542718362429799457581575429616763234082014889334139173764912403894032018157537072709044813259878137298507416722264895304625192194292357939314116504972291604376917560749065332768392809275748074159666638623528082391487706311228944351814843505706775298848389772973838673004283892243957205718010013467701349467164707911877170850999504310353695925728470814589911199413063022838354705350349351402077672543841483074574791897807232616505118455159967238055499798350315487738863383298427897649184774893734213723214006928485698170312840744858440100410956092151870669452318071952620546544662276403855421073370925581247605962260285541331400113409148402005158388482385938928614103909638820844926129793685461878301771935622486037515395523275327717596786539841628328214889385045114194850597059164494558866924544165546822441035084738664127113828640847433783346066581121674496314368430424273950281400938548479988602919051944998566908755021169729144779914049823753615180043064522947225168194933138554125516501111751503953491033321638153572366445508772986030315788274062458116881879660430800126995847506579166754578582682496729797236779986154506084363401331971852905056575894571816376206155326685043045694149773116676659685883280576729168534209584663449103483024032803931114990762971933297002999815489788356073514619440760701266003553784898968345418534404698797160749090264658717780722495563912563738978220454689474702657027684111008900440036889861100693413963569983509845135120339045202662352647551558141251066997546042206312578671452736887148417432800360484575373487358645013577384192626804642853669040500231393083612038022392695094649713657865459923601777744174685298056249669969403640352214217200418836994492087372369476414922422126020405442671094294008858643523117196875583230514199247677017229300634332323607081271678742421350916750404803907916104470228948486193323375047238243145771408166091028033337467568362234705400918602864932223424509063388438103498793819901760988682377629028324909150055387371510238919086345843853622009817654089907746646336352206091081833735469972167724640630162197566156365464916813543169059541949477837559132543549058153635355699699802919424681230966885151170236954520482780033732260707779885885123726162289537594375569180331628493483423308267532791250221350480779992748606630621137509376040076711190904369914211129894314012713133948669167014143706634862631439689994837190247304791774941321602437595459451429228919443913942894273327774644622409016926670533560576111051247660345666867145221765715802593380350915094817652964683039910662027986879644143984195551017285465544815619897359242506408179438679111299662048370992485357727197436468718355731702995331199854721176212958166021022977684827475254564868794726189509499875774818799419495278341401788653385955918931724365996647504244102308369488125095023973598653782380215983862114164044864147907004658464984063323177743188523647752034666490561864920305864594765755712329084021993188262268994391022693049875189422271414903660969056249700929233353409444243761080092678119109968504902833786092892146923208414950885810718217608930393875074635068822525851780770677931165902312731464221930964717119121807324724566088803664470098529779321685616749357440503087485516698380590513328044994843376648086716008317591408903832789273571720025266561460409681067898589759946770565114928848407884263717939349639429442425838468142820674920676827300716207841077785364349393576867445438254815403262082031722300933562576893172210215642106162462846016975055056796536874438512382526010892164363244558916899812386717696280149376188395813220344786150422480973054401224253150544452463852695849940880348511985718586727326796666743603023294518993329104934303448557832657501647515241360034357753127295667403200287216805128720456352688207504759338854497757874677192758207276963147721386433997668953248376256393495254047170417846262727800503771182152081451041458177972223757386063579783102042717205737436561792642831631086432474388820616049200630031430796255311611232486859706389748278286683423574311377189893567397149316837205960517942344540446414765022801893228473569159737589132684822500204009467346964246826294822903404232607204797428550601913719799630063753956414000424541515363643340783768242427327686051541296215400581792593416754232584044828855150784722895164157382896818132692508043783966033554367450298825523769687267254314134551317929591215576584626155417664056982664895703132420779526636370034409194311916100726550505729665927558684424653379744483285779293677311786096321893724409030235825028919007375592987040371270493764193886342488951518622798865890018325947148070590397889789056909884735007343465296036623929038304532437796207019779384031898519997994950799267340027740746470068229626953268647922870178077884254626188151007169487776621012876602236824697386914613149698439920743887803350769336426559898320284736398306070411923230099980017573845589772916748967524492213574095160569764288811128741538486761046205287352990593559083085434657631325080298396718663022785502971973721989217660135626270874966751484502263761604143931844979501385369408673131664417889706858301724581267564668222275205589886848529156443100763314832676025302454873877618735777958563205720767998759547278311784096693017725998708555293726381940950366268465548229344162052626346462965004865448577612577440638539880450300152182898348615511001284992394819652794763519788346003953136964072055413785366962817406375836353170284600193443935044075599069809113977764335852696450750569152306709550228577216266816710152872054314538992762078263136102701787018339378519166188440661187939451409559815674894403882515152309467255448907357096593950116728565441284788430963994198368536916234975730496728397222619746069071245979287108936464720168701130810703469983474318350428372160337498499647612762662111716752827221515432511104662144813371919404456392843095135612610101011349878458609294820556833280253264328979649097841446473003281198313029005865974123879982305850603162011422075210914469601438068044604247945525900424194699982017617430131732009396216905646156010979136714401406288983745781242202659209002728498648557987648875196733630196726548364401423496101936568787083664268314359791637183823879762217689908622737572000164955962052115014636503737569582311664201457961877648591383870255782706884906258501390580053360208153087181716672482838394775316548574009657665659905744199462827569296887417091590796561456047799163331418865232321589796805654611452653577129732558906294092162484284127090838930346405521412337743333511356372561916289328239848797862488392248821958479344801512649182288900765606476843791021655734008923258230556881597528318031799326555308114765504656207240112745019526144983222214461233644882848983703183570247661891509615742486305682218183047105502639290641596145237808171691609846936940010766233844407698354652400562030864154831858721261715685281286848491270361758759840219465961304676731099500478331843079360242373417705561637836715793522038494774554710275804339950378791162265862692058262891989345357087699158456693962561057365869302808127652126044888479632956844760187382052454820176246761662713601012179811402359832527504584442280083166562721142004831203888227363940745557468814781472647725957478918019476102395345980821175514550795317817068950176434858322329149966060122041635645663811471463768624885315440995416860602436801571003206591087006933377230691833840143560811654324536110844991882657557846353025798739342636082566141099933085739742339193662938019211133099780659305629652148587279698073846637188653684267748467784522215415524720848739992876351110163708729245761216620574125781087967890558951839834657098960831093569055236592569650671913257288554087841052562968930068672333741295182165963813439510722435253884059649211052441446518743133265257530031425322399275567720052554230057283686405344211266798909445854861555706434701644570870183231578642907517657207918649345462355191859798978649185928680972817097788431230660886688827521524299466190236419853779921762949236503629067709431399383076338066352050944583343811422337477870379805084654445658470035010017828248767200506830911734170254055590417517281141484772615998891668119098539491043718948062051757599735027964071398467615046216041255589274633332016718026194644280886101641986971326968404472886001827751647180048924839879085878082292040842257735348166935386691233116733855903428614314721720413281308291008340717555446037845095355278212434200622066956878732183470368435807082432614799796977321828982939973036393013796429924169114892454947347110968329272470208024257662158844293566877830833284612550614757617281065651693121203289717288837355041804459459376492128692173793691432820744707043487659299275362097811536832185591342129957243838906234877881635715053634041943455910258102289681586253185907058736610151476229418619849591954112327263046245850505426803738226033458616489732641991992332318401242099279166283147912168102391338790613993633770427384703836999618987684235715164518780211249372002965688699870508466849561300231182659539235811419522362646035893553903226327346350736742337440473948924527086614148568030337579092638805322515971935576096305987780785032723582388732719054166430951570107373240699659949202433006369802622629716166166861472399637361424246824356525135752654251579810376550958916862921620940052126789423244968282641493510561855691911996703648212227861304848828973723717296602143757165312851819596212670374702396447651645985700589641530898390826700042168492306521467284939474310638713639439086806899750990416663841529384375302173043529152031132069583253270703369244627276567568831956031363920863052862388868201738536278938062179802410935320838201802148402130045230855789040175142391414253614522870479246723929052182195672232441442548433667846523020610501943582887391222206641447986624903541968397292715865955794568211126362592810802141538480789989045211998040927411775167871713798613894228981204008696780284344277138502426013761175159066924079233015553031457709478463003329578453617032130891485690691484471147001994177068400986328186311968896439609786128066119916995525334936213726130210362279525442385494957901255751446927491716873549821589181920422925864735811878973933400972639280892103234914772164665305589699036011066634219139711106904870801394553168467661362787371949346399070968334494920222136300239072853409232377213652781339729679209415268173611701544149258799191232081418959079400636921939673995363755153944838733235511427998947582255289648177386128859783976097471027003106553690017056289996688612361250190626785121799287986232561784489807433660204301785046949311934177563390811270278452447378088145034171597870496225078355205012372954909885377857500863486502571622362771544124710800635649679052246244413070515757640009997265286244107589767733159310557354466243217075249929980594079336504085079834447827324938514280189476562827928732383255889488464644592769969702305974407211476368722192652103735802720242873235571496183300440303579762190731527637793785870949985463938318245764542717764932642230256038002398326826757607093919801005605580753695495312807855687601525643885611133346839824001108490024616507817895301473950676345737511482841589695679060190794869179441524359044001917049023957599925818706132749278616436938780561571940508946375419599967344302525743754295884364760664997939736991786330051049207731268986333161555239457710241083190346703349882475134655495451688038938875949497484745834484247726291941794687165473274586733396820838904296963490059593221421616810199715896234651028368683715198645288107740696727130103317793534768671047607233748973035574848958351641082696920501815337261580398186175243243236997082744630338662277969111588738896020371457231399694562864115895800752336673010483561905500379803074077376997155677387185112625008953926934387618450000543276862762009678763358126220224359090085801944582704536560315360503476401539034643081859552094725558149063375057655652305260715128095519462640946681924116751134894479212045259571940930417814454873614590888283505084186300444687047227213809194492059831663315091035704592193364045651728929548268858224719628116113249885267905208905366316709887390102435955924968281436522356576225879378575848149132431037191585130970637684216357755389231976086165360383690725899363285849957657100159136937009662632286861021054610627953812597031444627969140984738133212254473340481682936544223912963346910074125895969790018290861333181832296280592359145354355205636276659162177063798604607054755244751467579471934583089447151001164219492271388745847676745609110117679495289067082025389248158751901696927565211208277290444764761296586207903111367859047924967634960034022734235319532756835588272458449120667617876542017716572994529165701844884723427225445527891699588162667302680732217044486010090121216223327466439421010445839146827833414323622329036389026178515059500625547641852385994541890550422530544305881278207012156716200576956262847812755124320839353742247625461596393067130033761952700509824261603332890828332719059129575156792590899396436221277903043603591825769781966219167173973952577267420057272838379523217435544009523167640865895323956790075451350973363906221911792211557569231815585555715826473037098820754616664091011258494479972599539742161622718139587075469343307980715009122547789793876909502733935580215798890541956508086772313214181744502475964970895190902586279824413563413583915047663532815821041297578835066923140173093056820508906055731184360904215068950588807606786833440716887969529521122202351658179479379961663272875541439440993155250068036098409802560320047968687619451240366444956627137097158695134927503219837499373950487309837817205378176913467524293893314842457909915513519523346517956836363380487123504266135558601443468355950532602384492062599018295201510658972879860467698737861573660246025146590408597439434740504264472529375840481319686078352042236327285821562735778693587847452614434817700916004425367634481083914858320393356332645771676528025936457553583417156693656532524478720227867497142424414750912439686969099553270534284027144175122469101019845418631640406865709159659363850475691510563082830604892755605424390048283061308770757827622165262020532355061515865803565840507689221723155890736145778966676440106763019183846212881171431680474983193997439474937374149570545279167770118101449316760244813925710605415552342611453498871946765319362355837079532091468372282544670408822973017048607897777315344177384794913283252849720628987277227974685124159043342874406456820759218091873566541998688471193788406718909921560601797247757524135544766408896141721586449107074368180058359238672811972981909766689122808620078182474060751358261694484555373819567962480655919422158196381019748293221638317633821790334926184158753621899675478113875167190642572697239852127874931628908967711528052510219949005464978451130593618382301467528605714293515462783830058482614811920481148663329687122504555346661326121497855560889059968281902228112617731783053994434087778063534855384894826367673016037603227495098059978566165060688995839890966378999073970214707752980712866748315000151470492526743438472092494178405979948230395386780430150072208973934383398078634977902762986142606020535791377912266793878812727878655346322997351264783988913300812396858319918038976567862860833918645333305440164814426759640914357002824865783910983524831125606034656330037954123101066718868892680993847171055186606484103641804126374657804003603715836820031459916405835528659998149767850077604170248497065268683146865403946666767643999858031311322858704349219353428139110775769293474473006945227772086374749928995292724045913899975027047546455945889082204083119329250680240484295268714266271910933006201783917484673788485411100803277868923578219162787694238272282543375116978986336665503601209224484199679127828899830265421139129850505667213991224776323027526944295217481130098042428913261403360045018851276130493092583176384925876610508687600482593022694669406012998162840218522287786398507827631742111059205564766681468567062822281247286525162823600310615441564529961385555689301319482604238764179003587162320715797988792525074537750915521780164713581446189339036616733021917227239094683421992334042997512208700292194780536621196555451987216586282124253017350850282868183489719557533291996802528654212095510881027568543995137663699706128793849775231696574404903649290160873924866415279958925064046216035013221887571375197415967451398096654879364674651552095732517094826540255609767463747196842905644246172462692953926828375218516401180638895417886936030020931643933693719562865887414461798247879396395781044641460651433824914854228777385255704207314424535071193610029075623433088844824432038223794654170167772522944493686390070349943478032929081038301521227384599922599489805042370145584016403722183333049801057937288829631140394793405771130352956384558084818869404817666644390782058458459627778900380154827001364897841329943177674022760339046826215148272931662185220350132375637503523420369899843094376193588321725211015414469081603674395449844989013188056178445803290545690162999075601645894119422304875097338076172111819918888557438424203786621043740802305756827386785738312022082782211997644028469438668325435502316753824594023521578316705887629629363489225430940586700330635174601886191015332379612350257838401419068809077911870047343020100650185665345994043138824076126237786388153211769370094954840707348629856682165033609732670721838125306201698515396668591081862291270305325845004817131775988649085152134441317513227543563473108282069066180315990505902155436733893688492036568999662807977915777442139877679156074141567850006042855476691474120592435472295524008689523355303712175395991898412289285842682789559566356472100024390281313632680395511582768970362730572975337755712641102753659471981624881777223550032223148205926777478625008512593223979545361429785046619745065698386114518941005053787929270391437813653479848222934136799892486636582293000852080275419115563502092883251198997468924375175717778956213195121208207919266405641313817375830134524466295307510170790296761792417819231536945130464628250808187772127758572408505621525864359773311260992310235535498730029702580175762387710742420206167928932254141647819865296020758732127465943058936992165304725215579206646337518269118132187471793689034731547774602276235523178839932090953967540572141070165501261473341962813020567981518671454015224455091170069609826324909235165202253099394163213910547201306202679406674300549275322228830455523613052040891039777301530666507541649530844171863386481962969918364789447807680480543428958238702704097715483731411631324207487310879407477125336514107768349020432548831822830157024163844576959414092350944415587859803779627922346809366901164104416747901627681989013212039342154437082278797260060407074602422844264724888795405208468377459468316286717913934869136211801953300304556543868681488772820050220384047509867680984919353468694113472327580280543348878397811961769581592142913330992684294322755582396762957285660055884214936354768685239926291762016616811294993002420509699473617553456981890486156003534629069399062225672150040435945948531367250811385654241535731276687620082414563134113434558734749434622790739083552459091200908892688101670373871996963887523681941802525948624257189930364654353498782499673225242395831477551042475222516971905280486881525398674538670112725989042745948593279186868310808982891592943524240131246935441671534506600212143818562099846293184824223037998233793932518748552663889972191467223575370266350982528774160804854098658320202357883107914324975648788035784431655446208356557360895871705979187095410129545353439977968165677526943395132928784092987345951015804544629395287489189542672570173808821279876318601951369941524247433582128186114795072866899780717449069863520356908266914188723386594867874376063401334613225393795675003988038484706568024674398861831722360599009033025286427197970848330992252063529451781056608222025842982159549294632428501622295369133058500840076389555926553735376525416837198589759236412657409101244434641600537269017322884028420625723242301009489594690208207766579416840038635819308286048231304860808288516019706207657476490317544968290785917295315902118540789306242925273834932685735219336858148277867909642523101566486027815807953527505106153726835107600345358853194692885524218313075851832852025530574502200058581433068105928476707410344292576254382270598297454834984958073585685060376401243588744484646139447715412063437505916943704148541672770047363266831368849048777756526935198632912395975927375244205061197416510670900050650091089660560965858814757620392418160656303723509518510751058963181989009786699222633474419485799493142405214045380124507254949796536822085437450271335277571942482810427705499356998203607725053896285971606656128053152549632060539982159878527218799498676584846046675834803990040735654686042520447869445702923120628517036348630583541875741859100266775275527342968175573390910925830997988734004846579679175045004766017879315666612121538450994140176983395944793063540581715016160689148691614766474300863631094807725473001742175587749222327193343172824196547751582334348144895219064408704071901091001710302777793861338354699482543025753327641872287271445579459717181431453867408552754649355259939544499134794066914037040375361773003335526061567962653050768954993211214610908178523859230604437676686629016480022774132592768022882184107369831917637644861922527303361595860311350678730467245307989821684678439387736608513426470255069913314015360869684271475238409990321475992833339956442958257883068964378617044357715305913899244747797295716970878686636488293472048709633829783216965218629749217447654243118791040062602972887846680312541692498808622571237582821465142948543759249690711536784787798783920033730700394259568096273047398790961224729642958826263263398425275026668766215036809928618564550804821286935388045408057068781601391723081576917095426261920206828996122467824028269092395808922566940348061612989921953492054727299822790205875689518305587281605314830141613991074443991561697728271189642411792876570574824610808794699362063194764136504978186883153813737903530084004014214649107933245256376900005988367183244864968717160849179355895968010036055677126581111248039898543827449297072286130388360593822181158365248412159029694022137425706581392971933565342508894001778089340240792215864158069913172119445480390609629700688521663199053537176791809018878499502179848602266350345898267818894704267388623509390314144077406307786678318709151753928148108147309291791763205395987765475276716233836344737514583903237024007872716945482242121488797148707524591847097760424315305032022514856042355506969534205225516850542124909001125708011108036594919877089079759615976740612900668540114045884020739006020896653281331516131758521798859745975673734299414000774089785666337076649388083604387189096207056854287619083907009519975336935502212569784311854463127846189621319023487653694908147228188145243973908485260873404269439635574326232108683727271613617178168018499798046447814763493603502998643511645073541267237739803642576262562255553430886611610698014909057093121376492144259027307045346453877320767112550660107096609274683686534742848010590204219637307841934960071215310750816083604465649384699230267630001734155560211168265988196368294145107324298387325233693458635148769759906732356513406814341581650613459399075506474581120555202112440458492128679458992227571666226410123235543106175424742284196281389189112252449322690514040016332282817734309097705290578892040126640262654433298981760369805693674344206779103262543681416808774734004136520975276750166926822310269294916220882969541032464627900036172977746570609595141208758012250973600414338234523997007784180718887026938731651523696842682918026068773460249037232981720868082879542575302524009526671189891184746595221840891593209036143422308105636355210672240463833860038585628756026190867803519247673908111369050907715489061608423310813411539344149412502729218591756990858786071919783078663680273869656058543334550558146220086146022918244167047653508290340611857493931845278748402349453496170333265655824215639769286557806410451967281115430398875936444685330604723046349795934860249344070397007184455628642172350556263535853864136376767136413150081289435266983820128566525395817675856180418192551559635579102672130809798619066944419081762035908593677004182201394062561256425636838064860759340623566922142236906576894066670285604742269396369650673828779635868494541188733118976873658444622901454579427503380970476347313364377366430092221385145781114764788611818825186210452659143606729421828034630577729994329342722910232545666036609300229845989509731181485520213406369068645145898538858508260918248348279578397952387948818137460315376394559234570355230981090051785420468186050257895439949037817010662278212855820307632028966213115072178723487454473935160575492858547540245328639959371661565933452232996568993436798046337732127361843835813882652946853817979217580005503051557296911344912148905420060507686214802581797398838072887741193293822178142987545106347931289351827304990496105440021155262258072306211058461345486631765073929061930537339721943930921505990854370367031469307996850085566096254744377231002507140953106290251832828762136695019241402458054074194130416817205347797378481390522154620658978643953413685831525855118027138332280367549402344796569018800562538713623275707112843399673348115174181704199193781460240643714910673929112420058017848167092461464706305190817867159236351199011119124930548579711141260305320233891252659548517092980917859739211204539705268231454717025825588984461222166535361184586399438040570270193996031607801659613215863801524038067528754076352162644970868996485051485111321589050923508859599241873594550583064339525196568086751751848349998592738421253023980260286554778793899963091172225087732617238465624047114631712493488722689568822642646443488094001180642010682610258348743320069194795425981168225464964798121703220648783349579604935807814319591997678151439744108149821558180937193554781753090706519526328709656553650369111830367869904672048431822726442609848972281083907428858599615891481167881196531164885319607958108023040044756907047086127130972727077792172655943548415259463604025921679630799318076280767886191485479925200994236048702353601195821603425330625108497789137560921393293162233033789982205801209747398268071666401745647181000983621107532503491851325992204272986061441046656889162550792643742116385930116176998357223403199490202881789273753103116376912405939131525440743691022236294672816405636511961478553848807761661011783528953646111353389839555018199348393588545227323314789972570167317189830725437104675370983073149124178919474059351279852196577155300153021645407861819582181010715530033087230500764420440404164734082345048038961231821379578714398525415736278129695194188593850935455401596797997305409543941954583338036223804543671856527890133206858765642794131446101313994953931171516133562225923085942894413181081609540334172192483711617224655942405588931625064527396264091227570149030955207519183356555751247680484956851422904336330350475840230114194080618656098666913938523664581631590707297565001629829566901944545732983337993373524105934900911691177002912658609474331703984280109621184621365827063169447756465699384875498694202487513701041367623800136768776971570275956317270680702761686093962429945144260920890271079478232560767915782695528760426773766523659416282789412426783413235029814065665095984492625027120994569423217695053052406097124369265231565677020571530968324750056570690697475459273858025263101044454342333334881735558119196497853762930526619906476546064527429649593136995326881513240766690630010501911761054666121211834095848135018138205514350546893213726376926648300631096114125043001322156509508271848481223502970329174568799550133789358117016577296854183675631310885466911367099863296207593921331593228868385066354945126614787185620214820958066506812137955070145202222892247498276322891271435040546103717579291927027376413205301786801880667214177358338421583714558643006597783128662195771250540277210741517728599851440020907236359668177805931191676854254701634414660211896014421073560826981128130213323873023372841635706501470305966466323695809763395910287464377175441303902035272286719113902769432034210386337485199083759529573405540737442407968244308786466987853958776797426353041247424287580925899267213164595593639502305078507710515304942012718624126118607659408889269342026307153733291251171161948424353122431089958968499314100906263517745928306941341796531404545146908059041418546421722712485951689290267529310425890463953158429708448532964179074390388609223533543968972997883420266153102871229783565460626983054166820922654721634702112278253735025595209387685446881874471928318706871017695249854149657571757951237428786340845897362845244081842792024099090278085012040167349564953477889458548552225209020138454268264005024465117151803692835466956587927799302026380732800692294105215752835382217536447038801620230855376084427170028874508553171681718822725712221100753344653839878491883821638887598170394196772792784869819986080729556972541065783426832981958955506035749790661592260759758294469468323341604335527047692281661601991546028722648663399474412128558738114756241211866947757920589107466601152548558990084373065433110530881369105498984317507361743552347972698380944873337556746636770903940709875972961811913955326912264537143749698205363871937902698250893358999009134218794881963150829358435414206069577880599803700218190857564391922771221604108275782770389174045592200122434222683601833845163938467426919372633414119505628137755588304740108537243656042134690350645082249240883165637886857085663410898871888233300466757067278987120651180721387917121073584060733168415559966297945171391072843228785303253687134847801459626403086317123100852774931031467641196241040912113739234702498092115369897444519029120065776682343532959663128674616135010573119827341366473862788331986855920964483160871151512107525820465975438011913909214439501630887389804997527576346300548684954042637439870711804590579784535619821779496670032979408881623735742835931955335289561164652496014109523476012318700754132048472934750957744473567330561101204869292119069248304622302486724898490095707762882911136648568723304399047226833962814229072770773503992181759342973924917680039649561547613406542196723346349228811047934022817528762798563979877471274935191361897166491134319347153557531951314851594326758045549968792876329382056238327736895644821025948911657543084024055398850041275892668903108745359730489006548427713774154682610631943227172711680770213260458328578383629848979311102368942438165883689940446976552891101113718661039828272576272947079058063648438058177967410319190292773844384815498110150502040241327365039311075022305636732216069054058025217425808542169923137931161760165611763740749267480618826538755508408020321174472055970522213774103722806296922416707740014187404517364836766644319892351259889475114592286266262331478293391832726882874042555895695257887207519126538392744072614484859791849500625219800650126605215848363497782028877581673962329590245334067384878282803589364439856279305123254000982840426274531814852976011363310286626484871550025260225272647272214390963441780847281517779539726397822294192279351035197542765193702149810729549122952478150253346077957990033197050867044349580507688993536188175972984022946030990420758175828485231104393647983331219760381068321868685503690126606647592715206420188500167586587507983847666691209024906964351196795517512164810021006940169486800480155146954264142791926232821105973616858715749307262520417782689704350960315276820783292129640201923296455077306622538806503865506101010787374638762558031336099037202541403970030214216009789642955477499283466141411814298415760958364844210206053262490104845680172430369950049917084409395688127015573171976453584389671091783548314039794232707403994332453364022390127808104820563504977911301814873845909524431418652174381467488304660427033512125978435626089915745781263348493869533263753130907057259369483812182181035266388112680732880058056364589765054901755725510660272176802662218359078848055813299473076975769007014670825841696857710991600361881063466069689724930809198866616372154695711466375367196768120569148198828428731355768461932071348454590597253889352539648036002799800953444358702057565466689376082750802271540190624637164978000002533437095362958730385761404448250723013283650538339125481326411961778729415125177597135690384986219145228374878396465781943308388165656715022944916746862310588261207246213321514288551267407128232992585808796963598832544474125638700568598602980066611895561585688479004670395334157325010902298336906973919962086237995403144118605777059145553471900841395861187601703382886794901604394691208483841064186281861270127503427581452862212801984413316300000762645921535574760388915765778370935529512654498158289605083241212358133298983150234948952659291416122111971942678999186174771688244262678809252549970796830011365902347634947080403791326319002000564797369974560806625298542558805930064038832931470551043938366668894569869347599211827174191983538249355984736531261907929180211350286514800674132657337531264562098606137186890279554222281118818655089299675266928616213992361964363066037413386378422392209512100358559342644384836019350978525272336319505625894896238857239925178585590994353236903830795068026849979304237989987949718821436329874013465565139563325331576167025908901636026392573051653842252878474752509515257963496828223499200948529324959462992685654858023701056209473854579638488307562715607524114743740001380489439572326665154114852083558934944968023141378894680953506592291204704905910009476687584864757952311858877820956239668008583774029223915351785524050680929505028895652187197922915606165659560066189100829071148886392126063985883213710970002229494833697391216069405649541341165266466180914380595304639335127797379371943882479973683169882315419635256865017159795845305774623399406586478379141962859450401202453396433506837711866903343620457993313927286538936739156920002103585533695426368211921197049253833774790141439628210711844900111238745472063382574617346192533763728354978522888902453895198759103406032017943659475938538587941273685118871550612581814625365042589896665143687434961661700279816093556828977897457197484214259946030943147760086448037325565719892819210210511963971794341566802222863162688436204629646722409953822595828453721022280144655012532521226726494737381021898682562058183542302491949416926221599150723357129280664958928868138650295690971609218450446001866447586339874182309259877276527673575233975707649026200205241120680683300157964559657263259975435818053573359578420502044387114914016476661354929794195094328337071968382891879477968400792833077961692572196803031187518167746788749259772990161532148866554516354741960218257671421937160289138600354401162863874341925966584050907423738047413703676329499350015225709403341805232135018461319266086131861785785590184640931507616059792249099542762189325723566226676710080819868768831662643820666782228432124017220887193949905513375488192024522049964027970373664645778754064384996332943763678917294810093585557052312532303058628361498937771775902629189956670965712440914856270853522574622569260568040348604773513266957128130956787837721727590403775530888343721828949036259537017048937622855864306429609259159139854297009634113279560936214882892081348907190930380824549114283839752486896844630982263228451111893387842322136499479286740423975753622041480538431657834435224054807807188877437055849258274701217162077809332524680500673488750682860411134937696411669627148431393432011775028841627979841188169499067877364775932298565376562454766269985420826566448458606616663363332034437748357811176709064337012620605009500427189321276129369916630433373384230766852573287987497248876856669529410386198840107067812149362117010881118237393127719837657904615756870122854250801609950063234926061235431446447948071469672363685543848467743200023577325619993890460897245918230947182324951385616902866623695650329039806584828811282443325755313130608952705628389865054214555371140310097280067446929293350618185684307775501161505503550838444053742604755728199687459029944173460457429785664145269404332628735988175579667447417899489248960936965656968431734340897209107391007514056246960594403626333226961279290172581196798891128955871852784373902002711635519263801365520216241797002011153019050801966035457660191731937433052948600399811913339680987049036719936436549505561861592451733998392737554235620132046335632230514739952588950155420956337717098119106545797435514982633582056286055332692040506770258246047471752743096475534155332825055994187716071007748777338825194192018217624449755600546187164740225947976082528270333607067188737494982181969165861241077867790050231719181478043387876153366158481108169764127134016227420096489709550226452276338263760108189668901544828659462926552079670487782073062731793639656619186831155102612188557260316703272368119545527636906818123265581298223624227002435087861391116927203092276212168051956558538425233148019326100266516626649974778232309609880688296779902376978689477831047981386558857745521786002238468625460693467369700435451069206355818163408839918663415340760351146590577101642970613681086981310215034134646899643904976759251355477949673859410995591026608930482575717343877846468822742351126326789656773508181375959895789478511299796208202494990924981372142103618535469905278369849142100561639268853492760930336623875680082712518782588120817513520064768745352520739778885271690452330272670391477564238196369194376165928646623555148688950334361938923391911208419863114438030361916637623307814706278379121651585579917802604611371835869806897758935471237839551930983168270145101499742329242722247451046078378284824405801592418576794528165921941717854161428520653783447622201899395891992914772114326959445465510730409143533101396881580878534759323854337836816535564675768089082932473591612662102010057440225893595700857090706976327664757950622516193889414902181110925494023533317427624624228536571684650523703821028854482285825176071616320615990946352730636474350276055558203638482042873649048342925545975971558582768498957356892435965756498565932209102459883908310562496822300168867273095631142625695257738460458236507681272429158303453106538785070765497969760253045182596025529675189732432379689770670098308074515356389248448761071345530198432985977492161512808921762011195398932032033421125812462458467028757027432210811298311643086076709283471119299410410761493576778887669220441524123372720302293685070915221835675848004319423907374740233118424666990007351117822325645183910249888315266898135664365621624844754723654936828576186257853426469841903512023165428804490732607404721505915100535496280239968213957379264207174685088381964472288221338651432739043633469135277536769390134919453920337840546469211966097246510173345470923953435032631082648283182949743150262950696326808045520044755363533976211250043109370807705860218721400751501115157182100861882547893506440111866369357490547122753603739319917059943739722787358575873961556616786610016472102524190123316450391055139194660117640725673976899226880047748618935730219444579916853576310578308252275217193978690955553793417042829533961367651808157276938665352380998234486695513829710888882212901383833033554772888942900527255722058595124382952319048775728850537757373933723795506651898063159866214916710942357075538680134348460829151504098359761989287394811906111294046550058102594023247280682925271832145606500110423813784013575281755625572286902136899088066406236012711779017187349400659225252290467484290241128489946844190506980232277077614219787658981930485127675779841189310087166117642742048864231054405195478758908790382689831075263560236150953383912138068156848574189848497158269245637444869374885420812368242844652598276673856021408858566598582193193682428842639979490541047757211903232122199160516572300607479928236445525353905147203523637222269934553340996306371897944590546426235044437025257343169558479525802872357476167078455190599983297151515582714645522206198389463707884211304095063987576062180654173376424141140657912965485361519636079761064894363515881054411437284344420271892470093943978951185251242494983944777088046693527373545525311313728005981829535819624601952295743895002715506169279632660352965135346879299107606730454029703983227919958416439864341513074075400092334530098119290731891667175565539183622564792895987632218251636224697944442910233546973567819169503343729545983459466223660440030744044571934183474077231949923190778404469166647951738700237571305563949182678107386082680229480297480047209225526961050625305040518347079637550916284212265769014912119651972225759280755484399100496812482056851026496217827478773153283623741705574826147982828280367563650927594570314294970580807080668025639099630357972531174978581948014728480422588132442448284916152762513061005731952224677354523773539579556429195475383650008463437964544531157533804106531547518553915267234009071534390885042892370445598788047430695109295310399007111743135940637748505210598280011721443695288584231425389033068555567094442412111506226187821727236975491297682497929830984110115030557756831371908397697173613710682739668304830014284254504461624636771369507141258340664538686998578596199306135889781155933659583105121568071543971872139216857682728867665187496500834659258690134557034081326116683489039884262452595330867487682341959807864082817911127505593722766466210313309818524314236958880545154523943916026686350151416837050027330490483439274776055746745602660396044331440082666928340279782040752547897214300848177696158403840359381571552446388819422731160589076687190980896097473907024545053326900493708592603935788084012113265768298708768734318577457689343779453250580027663088661379238285288990404534389125885342620965607425217316852409703534932648911877939826843095042416377271923141944346546602385562533638780971122772167088793749933960461229190498436958546193122666906764658722140975730369767875255269970679069745155173075606807942320299697874746483372024920122953777875377091198769531984176397431319409485102740845442276323378392873254565062336417123973535260522958688191628200835384709608169010201929031826500482116693230756795140082431440152202652850652952819845437652528037675604124892371886774044844985612311500106878153967819337752995563707761082736935255667597103123627177729624803418799122560232982224827745121278894675053199208753143656839146711087593947187286875936615311824789214318594710271203066196969197548776772063521798465269506138523042063695811541687413280754704820490146529602861219782428785019482486175084733069537217388179747892411687752114617413249505115245320841685452815636934472061935146482959347824696629741211022450703793862784280775520299814426753933296070118780640033578418533927584716371238715492474991940979592858975160416318040951900966813693688900809679355399856601606468472665498047520364685815142529252848348401979774150043916607137404486493468915326336318522854008736348734622540736520991046078631999738456430764131713051707209017599168919842505675042306928205475903270094767306225966458834430833568706574631019548558376068410452964154290236082840962767844777375647612390565841475039209186232542082821911920271282078920078858495831983689386891885083353430331693368033523413768522392261006679750988704080517207457314954890607158023400234735041520427951635224363310399272819348808646767940542278283675245720594261397891074115622845276531139613169103910992579306018037454547471616252533650917041958541602286943665178703482352483346461453837555474960642101055169208881257152220560195300739851636168306502383326779838850029517602686269156821386824368880910228249522134426979420959998723158321663186064496093176461709551303680079079044695789851362193706883344898261227929420389938788494272026362930113166995562267955305662992045122617163335034081128298284033481239277610227990587415297195847840313608083401789923611781702233217371886156740448847143679247872599421069275294022753646580537946692821625176854877988817307371085564568511607829414315552682785167072526180427568956550817581574614260840155820803581956219445345310652189666866458747875388811504415984989360114449103764469412648785398607582344516630894897106444221325584714066076782208589176912372519777385158203236107480342436570457911942415164286765757371549678137888783263884376098552767163637476671648698929504993623486466592222144199705424991790360406372499596715957963058535648490145552207227481899234336511459919353282604097463967696776399697247783779700338919710982482945866298460429727171591346154836310340167114337538648083675222483997731209228629533000648015424593274951791085404639660953061028207174092920755863941380443360317232182352510849601798180496131507436134005061699528259183900372649087635622332108078321985834020844651147594761244328944669466242017937056941066543723925667272779158764960406344192657088700449825443814961305789096932646060326883981041529779652025935006209502047899755101747086187538466613072449481254099746680814203933535540670310683251076643195110137257377209145582256577716196627402387015022820955239743903404576065491464793676430848710470709355538888895127027522164234000533174981677919681221739337032042529533231951982927908791594668010361002418526635941529396799730833603136706106225784478969675632163973302134842826868323615477767689339539520196356768681317383992739855610432962701061044331629389696365438020682975240203530384870155897824878807302600962624927844158294078501901847510948215072769137104484070971227261658434724330894268535711023619161246200430218069027904077766899546870664975482287611624424770972752178052049338071936366198737555134682692936747095613839069833953327005643560215065551311728228350776486039117985849196883703536910822457186733460151953308790812542083235258164926998673096066256997505380512802085599210999941735073940834656642776349239166913642900057838055148165706902714057154515203638807693006284374137124380074975055404204066245106861889415882942319277211025702638284214011542741191495947722204398486385132402451827823284712245662129865402805210500107006345294999059033176919733746734637957126046107654485604403743189349915979410842048716932032479648759183921593102517664715772286955631753131642038041854920519462387053807456624788682732662515994028836269216282532961769995102142364878253440845397740685706595595970039020815188405906489221728437558056632161440743875918480334400181345648088779628444871874838863223798415931213294941187182268010161416862656612215389166003603987219356315527091020803545078492476248400108745652160864134422318135165018885487509065920932336478207384759569709528083965619376060371111627665906973587026252711246876118411598787676961631700670428181366665644844054878501254733141607508583072901131565018533464392128290274220253580219771216422214828854819430184650314033997415835043212456229862537539504409674062424681790617294932890706326607705049131601970385698504477948388155215890847827093114958258700539943420627357263927451027953979274764988121250454363290980792396795062883314950203785405903851248864604134646729416511356760758063613837380989909180475826901929765116082147408164087868907159181816165789394124939859168105210802908714468548020613422067761275064785981247260936620739997091445641619009805825827972435208138672250842171836731795935337872236093219775468639018408836329348313776877134295504543348054969298153591729210990738549392610119673966439629111604814570720275644511382133125409237272298405437120107743067536204706396013717217863217917150008578650485663127013938727919083389166200823951644030414560433020975318950174377123245613432307159519595758173509147613662547045562311307063140934404649750774987149885859616400777158444583247888596363918266622507249536192449011286510043733670507428919996729483182912889033131329981308488691997535138918126198499470612045870863945591389103422094086459104888094315515102844821186642808113153750950520805853765805656741929422204008018886535407964170383307539475558094788885430427833398983829923578242497652863246331433454814126225279054712088147263143846262273762708923460483180975415001424540955029555452623736048890300872603194568930917176422996975592292267438997777083683052431985195626862480269902778781221157907515902049257583752194322828292388334526313233417222620389092082638598327785461101049937917736974412863950471449105826732564231500373646690309896679216081223680349298338281178993235078076102572111943485695476994547458884044972153340322600257505118946086761289874776419389920390014722859568983353532613253362543648667604870470755698711128878938220707791487522469714921305837525912732276280418218206144655996222019292870000590230479818515760055346910266573180625464585389507255839734066866490595989185578853543175061079430511497050684784497775209054161265988799201189631403237247868087186757854878364879487211723249075728453323775720142853535118801502261586174788665240201351647417585839917210017983412393688009979932333772077697531275777413134042674334031571548683611653467960880568591578231458036014595306503683381257178684292473293942956740322604527767609461049423926032467183012495007999378736715825298382628091807659804787048746751423407771598430297490696484652256997026835782320904729070549976520353683838096743326497014614006845235985140849551323076845139067739619450304123008044832621231415035388313132068028676382364775035289900690989604227577478153369713580300572652804498827688869036985688481677218890014750051648588567720286557899135827078747709511974914316750418958500237870938428522574775775806419532833700875108982071237001279058780806283490583518410237763985297353240517455623944726078338798102102774316369418827188619246278203782692576468633631639940003272360909649212335436013431829654615406294463087413805112760754705590059620849655202742792360196016432975733954829841619265419198098655622535175627733817729004195048919594991936564275827579991470778525474014726301763302261934417768129299353077012222165254989031299015308775244724177833794597470346795077625910812653634748711355758995374880963346601030568211784740709558074919152544024739041507604166011356390599566590905660829972856232492454865991226280418363830638477320915277130972606699140125673939013443617535251437808541673791646605426473543365776126251188829825647266930091339864253044460946716160534598908180848224333063501093762610936772541118667344172622127431035461825240299045865616359258087442999846266466638334845333066744363057667965254497805105070355136922280196420326053882429679802344143958054961655127362418914067873898370383790885075155478202468358076046920563379708249976527944709227350079928670051454015157007858398281959391238571213252586044551924921378014881226797583098043533563454639280569046941498132481796674667627162376620482413793134284097554347322917778245595621001800080355675468816956035745741434099532957757782982620504443173630506442225265178445697857131864854896178685234923175793639071861652838476649291057529348724548570907381041586592189550672147772560849199695460889374441695417814184532664848666694468900476839130246467636656123037433241079483977203275866122171128249149761052964390831617180700626313888317624797329466840146179498611969677243155329846014462626750953901809357038974918871318507722574073505099863549796452618522385836573020585512756654175670700104154136933731108900920363924495024785820901289366238734036632851218158846919541351942967481706541626827188048266258014194881486302487272984820250116105879947290933739725060505151065656276674421642443478695309132941213142561284251881717969754095929645055628376405498093419799528317662693233664437148050070282804820546622985732582965472822037649549196942742482292016744177347739041315872348890591905529476281381400019763671585123986399107772334812097865791930407050607818262696709180856257904109494861871046759280582639100698619112746927501994154986495549219024804002607804383894674749722408343574597719765309293116496732946149514648050030326965159458923876398088561997346381439195808821469699017855667278717896651184153918302634685824865023262598856640382132146702423626218874611211016507448059520402768695009647386890500562525238991225622078390619044880705405764765112820561213032953476915260294731634665085500226780182653879720974987369517297260682375527929331664119406984950670741673509796796222307145720518476234129712986069287344252798518220776596870852097551746761026460029564373975925418730276869052579050316637934819501496279807346284543585529910480958128494275024251014007025227811454929159587815347337195257843669151774806047457930479175267294307029644927930291549826251390270273296905769055184773259061761694778899609757087847310329289367599707074781096159267724957805563907903181234456068701076681159290382741909139536958809132435325133249404286479764772800360617896574391976289898491209410438134208773403597557123878214907772626361606475222862111594266255243186474905353891856406870672728679134472844294853604990570092056800722516441662297648351019686310877751072579814823709917600754793995750262552018587441653852093748216491837334157619361365333614411825931767115123394790821785353516439680313410281972873695796883835669016190172592997582508652494359468273669028795116950939076269229738428539820169882469117828473956514721750623529090373470734100901356524166880010474576369048078498969838679216352403286374955848542721912637050223247254026862882293380795649668618368760031907733500032187241918419697941864461289338701013092829053402799601976587908514440108656321899927375909640477508508974004600750527598022253400510826030959372280199144092510352587673445969183201157466064413501976017951934145950092834322248834489177361632106812855673649510685390042540902077657321539920542635844438887762068628254854584668936219872817173257982375690673257693491444757009602225132651126366373022982587962067901088046245321113694297577517841280041413594750329012325861929751558323595617026945630225368735650381256824517409246483554298248944070234659367761029438150426552568441327379322293270003086748101868017368837198046696472916397553160800970347499864326713339081295359477785731528345111722461784513528113821669584297993565426713163088658574611902693125177409072936178773095957533632915470305671746769217025383486498122733871541833616838777292859317774509326070434634335361030607783357185450534625664479748291672074427452862985410220123348449191557579717556395556571840215894793676604300031731594937961464477389618676190059636358119972451003480627625868045631153156679907802424864579993565676136812052036689613144052702714235048445885975569412739649048527286265778736014733032280618706603763498313183892836602885968809452377837644949292205624009414720319386290636496759083430061584382881459557140238027411825345007009003923039548149526309365238123689152077957422377866269930628532354674958400410141210832755812315656273566043854609122805327207871205086374660983846556994263814098960885552862058661156167678075413629771506743858982079116373989536441651125075455134279020060725754929241724582264669050736187138735049362727450044334140762746867595735920463587610894618208494958553381103772655815317260956613873082951841265890376898951911864604946846814235771800362286259005519403171111063021137235098437220704239877679204462457971439616751397868534369767398574359371577311089350582832267698469816575455822053281069266905544642965633776798058182675852467663863324605799132851961925671391720535079400513956835031720903627499274907008139672032686245129994012003042332320550052000338512565231097573225415278974548657567061334445976808295927882634977225866202335176237507916590388455841999262833081134449387591002359845789400281339745519391251491125149134911681833053208520468791110500535606627540462702395513927842266296947534063453835419392170665107895552617282675696477661289742453151348815823068217687102659271644682395630876637301243079326464584850665652047969189079511346550855081169301128038902231823539977826178727028627866124234769267698453287179636506393212851787017259488495210653564532585730712504465790793840696446815835043937080838879336561866670986695295727252270112533023090922609412868784384102364929602618929778894803703827967964724707371472800893815737486228717466624690559206769196638810666981777900314244980674270536596355383419478278617716765188881821444136922861233024280311013347073147027725954228717657244154542724320889771932969921952855784501997273850639662750325373589806458046352789096041678389294363930165024130314914273719130349777441135627994959812930233545359540240032416704228903841797325697058154764958963307419622726844297742466640145520465430355808385140807352428536193003370511211626633322780876297733841249792204071888398207170226743216322607529874363851357105485712216971224344998654738102554108232771692218597809503910040634124653744676299126309544281135638331730690396971550371951067830303135240997198467028597474943459076003268903722544683490650707530566821620064807927166835604679582187299775981420619104314528789810772925131003273564135524599695679863650592642796493915441869148413869590372578165211187006622892022846923294760032953273371566252175403184544659631411219158491714207951063265010730613262919730508968984027612611765061780475579384587636448737998607145409006388609449536516819522982616943257890159590428417146231114697228632267719796354760460540784188043922753303640558246613141831049399256116116003047312378098996133523549701744133882772494607808904047059031568963406012864615166924022008164410123984140386301880742561071632734286201752638419326342692857644010198055561273213697894274494079850179628779982304692221192402122191986848037300134403597632526896776862550500400210676941302105679157966319573348482030301780705349229041259476175869646574950479844529547407439401235356828083786157426899891172198484312022478350879620041459798923421162605843272588961922906430635570382115947646859558674020236524390085165420332570785958202794347885194049148017860720802179328828487221761317157316964864416053859642451242645310868541209494189223477302279384761285439715864897504176508071237333816592676549822234388936827032690035857754473428814718826741209070184893056844866880515236685862283119937882626043365604557174370239868018809346976400156742587580155623005217792085247768944031631620414811838279009470602634970523023808516689884723713397069975115142180230894452778984699036708818574280396580610652030096507649998874669347248193252205418608357756586634284163648619256406068141029375534365106455457302847328334356186297616239580687898520181831072686443806195422700295923200484685354540439919371695863977301785920936649353032455280449091345295491586062036101881678536434101925786505048662550336720439673539510366829999049957393028589418567280854208717929168304896581079141192263089712479288206228547508744770220626294631254411781828547030695172116248468939980011742070614028965926508037596687107393920299416710177609261973846422951442016859189105139150902781224499465432419338258091117120177951484830591058799148589736917817645263774561266269939092950767253312942836636115523452795511028145753032748461802724834357213592297970845877166734657751644515864912555460229381684320237448774374802798013349014330210133821196412569061739656118825039531773936627246782730440884642286165920258432727696590150138271048202063079176552250821603916218041903668784610086865932632497612391108246573181354573136526639227437113036384895356328869296093465879201718123923386952198123829436947137724140860452931401515451310157371528314422744811659285015258651642439204737292272759891727850149954692344847051263492880283927860759790361472456944851636726494882747476353553818025525529248419435591797189985264686303529745142343222306821585311636333075280616303600005155063590524171353230450491818140182873528025659386645133899414866894187427808703574696832953933098580052523909296967269496120607871306613581758237092759789135011757692549200916176647023731964253556948207033784848748003183773454743127423305171571964488922093296590481383275670391719830245848828845139789647591504676079809647696873455683033826141714691863719112212933751841956089923147239724923075062687063851495148156628266101618947804633783370523094938389437983153757961340263602635314941773999704811029887827104139452100309865328065489550760921862373416483285336621502888208426027174340185124762988584263089332147244678250398790171096848576181489778001293322417367494928374951778074447556809859807272863491268049552990059694934475359229191318545507151798271449618918275100266888792302614905836025856783903735910017025816863347199125750616545770319359939994744040143757798531762389823263952761171927169698028445218840104068198910169728159743903218348942037123125789052409636821942619214899141884458439907122012878686140789396059989091764532117116324911822270710675015786716836326489002196331608550086602386605373469796219158966543732661656077085692746817467842027147017542986614842905143804588800340651402427694671493751484462077340007822877620055499873446075521479721522989013739014533618637348599460593109665123818234232999178142740247515785282829390191993008301075117170069113536201303778553889399988355858114282657656397630104100749718239926784976084823703871385252886500245334914453059468875685796973994322915264423310624708733041657192632246709360149558640640523186322137800176570421240514030790879741154698292633079967536846009920264123320278546277982925111289516903475317497088001642665902619392060270514335231068136063338101536916544814842917187146234719544221460624483888203016988389205483189853782422755072186329104368012537915484355293311308491630200774415769778930832764343761016129605502989316017830032642728312829720014587995142306571383441707796457583896983033942504084479478584630406617626619420300885814031274763129799459552607123325962536956441189163724513579659308788734832623848694045482902341145891725188870184104812372812913685602923650428010647822801049223195013944032736088020019864750579964978498166243987839095822667271327645199777603392474635919769993365108658182150142274230959480661919234995803822075320098251552802908309219521704271920423059467754966382847477969468506625542142300146263254253816436306289509968139675295120388341228682555364131594532757416702933514431257533513352419388596860334132273341081697663637243078973810876898064913620526886093193989229002685176056027255446401350477806489284358520777753174199772296600294742216791371111671657312694890500479531771901244364278869526018279526504650289411850711148676277187195764665929345058044709220046780809509870910318853037509493062199888599787299045185578533236765936277595744591991009274808987006611930337038537431903401829865348890518212863597128521836332742353645109892662399076236431290991034616481548281999137484416830817266560636115068759503301888790238762763139391872723522289780815402078196750274460651830196940845665976492897824236882405548699366222774255307543448512282169640676710916934393294761376369428056395998042544332933788441174016133791069823264335390874641263875972950114151129023154548558614245266342969716717291802457919982355424588779553228754300548212800863994219155294211800424029731461028213054031820048553111676382444216182429107213513503559130879295071682520829089504879693194962381543233821562088381661797597225554739276946744505474022218280588776388565806667836289605584965102020428793333672143384279067049541809916901521804777589319876548426141636287360345905231363906333588164811781420544315148409759400692853158749074551482333682086011147584600688304539917936097423446464951658177676701709957241366855845699080597382324700711164304855176544803692286604906641828738700664834275112998629419152468405440228117412865961168389346000160728970662593428345077346676803485527903510644996466975715723736962519612685194545187935121348205910890359639165443228183100908758615285207371118160519365316907908736115075899187174719982567805482067031101993464176556019086743654461706610838651141205276786286255267772521066029540575073518722294430661186987006482155067569384579622599707041415645572455534570147241160685859719881071790499714107645153235558656514819959069482172888022758098926395938665687878944488495254274158408321562612612232160287611671800829803662952781970050415578535191415564593025125126089477907818272540339216262646926309731163787296521792127418792851220599583694930064690775204952403202547994663686974363750692020714919454773979400342073313447746670659347217987131275175313669621751938491826478342153131751430624728171811635823430974809680395972099177177640141727569171092690499117649875377627917984878005809342144030190714799576541283168457825623653459964169345131054805287190414630051780976716999612509873301822826782080522163044319521655022623348019641006929400811891717179879541943384128534829909567966325081667466268253516017316234472126357374554901112090578475259940172078421694463777564953417276964085605066006157967275385982094566055297526379087717034792300389783091387833992695484403638531785074304553571982610012577142372628026990873359575565399736885745347551473338244120395086621727402555207742546009005158541232301301529917409758635163247556027798064297405349959767772462932715971985135907215023703566560359988009976303787994666455749727509765349376798074409562316271431181882691272080611245929952707330328653163610655423620443124200432688669579908183179727333303004241070776864049211086623269521828330954000229465486176279921779987733961033147378573515849380641467776346674969931312730766195814759936070207535627385939760305578429886202746102056799219007744743973840022314717242022831407905112164083249675405891908052704720163403892053720063897725591718499631834435044195813496505782167613345867875733133663911566271855730221794854291992772381914548786782314959027582459344137200591556918429841043981467423190622381049142838095600570869572076668570469768024364430183197999720796518901319610828774638689932398173727914506306458146110342210532967962373177849098345871579065437469944011146440877365331791497383488253974623557783755417714203426883005131069784306477464509710630924529366820144417568311305253863190586852185835573019780794099610885981494725700354259680279547633916215206233449325049704073907953058115879480362543026633561758594167156990141716366564736491763145670289219543292884718243201029110110720027848679127420317048292316765943571699174093546350926834574218997980171543205457207756750670244589225143189071635334413947687200650590808030306099009031926967575159835789091512635185178838207873761251630849983325790384586032541654896556598960322617429831275616559671995824460841721297788657952135093312361639918206041716445485581850365456855155744230810950314474822827139354238512339207565136769563304355643492393684345228635256561240911230365723802022132339719233479416266367219262140269778364649638717325640750957464860313299676253495593222626373591976021660903711716213477115471976191592035463314127530740191721488436054057915195529754898009675413470379814507919905431331985160918137683673157404850669131662999835994417085883079176721054329025347321698593181068942244788383463249411850875491935019630111537775113340774309016965544766034361449658516048311242773234103995005166428786330969558776294830971180814842978733765713435166956450275127687740492182246065531039477423333276036028556922789539430208352735889936254812769675558366594518840897045369990534876717496992321052617674860523198845112295547146157655448481825447826738943540054540074323827697786304414737310108032551917420159860359286545075792262388307279079201559945795344025074106427844684358581076272735893990902373805919619871598569884046802813995206695725175669657309463104423867034726325412797517974111834985056325805022948895183103758268024648502640753533851840955167364712077020513528637373902105384378206417679398438315698892194213421469977062061844815454810741266076287110458453028542177786961260873569980838330180077248324951314713739364377794623384527318947145382453739136535852550043708093147848869071909807529229324017299985916422870792182018777173530527604584281292454151900638045000038009729649639868583829744063023211736132647496316012378117138488475217623207933840285800799077601656313018111749735589594538103619232180314671884550374494360508909577528615987744109510846824537069057660864243501009993136430797437448162653926458575677016061882741442566835510118542236720039366925828353788637330311733217667706322979095027410796999587653933310464050959198642306003472104495548991049136833675025088195215313357298971313757909740746985518030487557862944220213404923272144164438064204039481120770744605135588277373791375072290267264053378357013028745624230479078914742868772546266808197529899516817538776857279393366565106989450831637841014415626503701627458545913452584037940736165533313381307241898397090957501888373488695623543227049181412343644980627179907204317090941324103574529778293516315597323816379975360391632894745793801086715016237643757830385915593000293917773319960233348464810978754792636462764615994906942637933620633518934479255090531499576681524431183467260240535211277757163822217121091245214095628971017432949292316408809079129781221122534531380978548044839927112807054330131982272456705974062096752825044261042177019360322905186636345697477200917034979694931821364501430217111955143158768599785924957844665100458202098948278439296634286781731510365439992161160119838985868687988144603799868841653303055335026543810737428283740337628429734980537379498363124650261988061231244635374529389383154653518986149661781234973317014154811872062048319385833682496949607605658079746730830662449581227563041023338096927433853293660767069361693180562149451945896926705704128090754948150764565199101307157486057912177179691212874768865388432326515770274808465051283504989895882325739201133088313978879870111419070814458221673175885596424830852331529396966525755870148860631701337561428129541487823527391020168891982869959234349296845285283418956961324046145304156954490174816878191048497337184099792262507541665182173105827609288747610874592035489346789805606212943491212081613566396480559364808026147511285612447288329895953648154954437682266631225177146655931775529334791739004519652551590888614891323762492601508052852697941111148772380760057855734813875638397661877694975559346754750927591629667757815146837679279321652279939435743687193564948848703851627871300297048168002290005127001408170338785332827038470572582923460235794359176176861559747920267875427533907712088745047929229190635452081460045870754269835895177128864649396745121999640664765434719483301740538754697970370175718302823282521432184653956464146115504198021612079661728450359469859321155757744713347016000454255882951044681697131396943207163958948098881863264869261411329925535615997603290003656530872644254221933759122086107727323424153329518490010997522567683008186347760343390161049773002896940333682171862367662655271077253762518657968530704034763283903713859846414030356632051084393778731359859198515304576975194890994066234162012041518141269007271715772392836148187009480753767005491693890529230903820542891141560495472100581129560294938518882886385294045093194436008990710802836086572640428835692702554875123697855297278320547904997297922793276019208478403947839642987629107327886485694360662373514894997772912983737928055754064028244352075660005881059154603852708609073328370157431257312366221988216372024686751448553363170662962963341891438093641757713856107394052611180825369616684315621898517231522254401591868663084050656281062040550653266923498619064060328415897291802134329072501629475330487337360207308846976367307387618546606923539562705001934762802637797670741892027605597007232702890290449539327639672430409107332034119058277028363401743908798825754219636464372806009841504016952604207315621434704823641021690737863956351048619928143371179330797272479647393811399974284024395162299036019939044477511112759674336123760335822154028717622612861891344769331580750292978785785685239653689654740943764225044571696245709399454353867802066817860837054931406785080581267806649606698320080545458129777750395786438360728410305729201608479053960280938379495782984604001690723785589550355645797540701122698950572602905610776769823106284933372853974851907086314770240603290016361739720653172590787405514535314327340611335619340336477018692838752257710672322092359815553026362880133309621870638455796812144822110022233624688863393059932272714058517325368299627338492644995916953426352246832661752328917847893984445586366079746417831272566035740596241863414124126350571743494246808099941303764127000894158385172571246870741875363226554983308300274429975025372176258281000938933019695035870772935778013088351833893805061525676263201390223005910044653032105281886015090934991179629027866452833975626742096511157353684168919887975429423250469155502291086184251060679997144971308354871714372205935336812781603545165468409162146656177735169360605134584041653396601898713025415486324245716957319699369410245420652457966172706784165644993599719057144635746104555107988077125405823304306498556129113694039753980915779249635214224217704048032200624740382445300473395345907966006310350321541587903051236091250551576389237280174221546466939397032610600161049341969850393704244577384194486088147959910326105272528838062462746640707114682910039365088897307011762536261086808298248003009869978298832406747978307535799870316924644708047281968987781738303408568170731886716097706392028757703502646531926271958558983380777832952348216162874947778408339625187069030305065632064335320796749596762899663060283132950435174375866578974142885582146455922084327797283358028072704056668973589520086084150259177200378780335037996991526976179959357369989450351704955701384188634154109210751136336867228810333417072536114113882591845469700871729681787992855782383189035424450959710907178853570838010289711682777220876208508103642472164621189357698825788055020018021144483809215115761838347715806820622195192711930213471267955634877052938629819070294324141356636785020781666577699042133733573312513952357873401232875543900811458965119673997258837665794634652929773163635652586240256645535948138617497294137610900311496038078345901674740729580762802751816158599306326634913629653704682170892642021426784695792446080423762351587238628046416387398022901696003088969685868860726970897735229432502274074996487573346679244890550336271087582946637392794423669713018388153558010154778104959618552387677015287927474896445258539139044667420885792751548371977559959489646164519145336279672563908924746289947823103009366872425027070187618593923899877374050413870746489301543510264694639187177739962551219831047011473797904557393319332637441551264523637339721066476695396146228036511885050237326027175258516033454740259040221473232810777404303206030257502690787477660985220018089350674594804470511240529763967317918391870974011686182682095490277726732848913114888931043425907748515502365618293534792943173883857648357724375189353248309694074216123739250755587329839463288626615729219588882583648620120754391441130524829599177007487897686284615312080582831738319821356711803998540493526482459929172609808744698318333788327473232748439889833395753061274087331998832202222438479629791865922124389406055433137838068581050453150246927324074330729719520481341369376755915942448914096075750338689490268332396425238796077327765050684879618086843719819233294236642126243845405694548998456893296152170982047425010541432126128276125680625095298473523763806776244023694288873131602917481457495417951271136910506722777395462301976389773111884929164934013092839245305692720482711819341230809096044505958609776915579127062887151069445288174211769541401017036938099298160485416315277230588097757501770356514461619271328250012347821811771121578300543179789625348823468059497047786019544700747541568371373829944687937501235148143001738538462120387693266950069022231810735771128131609765249505340105050221905183562337704451687695478234643289690055677432501633459987484762314476199315010714387685733943839442154193943021628228524331727600157633631721501729703266937413221511292439984371979150340028703559804219666551614592855825321289060973490908978906111334089369965476896204851480091238294021775877195346075794892269304720737560664420046850247142189714331226186400084133970660786931889120724711452079605168695910221976411096824813252453529762368168947620861208186271601730458782018214459568491653359955962249640395732013973721504963623020457680871449156820054748527570113610466389156039284086844194122633351207541022431426463623695850787902708567121585043510518802677701774080762256243571455429285373258119358832741739466584809152280551647897061427517729506597553820251732121646823423241649892194374079462890084954389419263587923322197551298282299551777146884721049524847123178653065017619196091472188979072928764816152630278808255264330224929691311178358391603465351916708308471115417725600559547980812770802335600198735603195703958320643951911212851898249591315746321290410597487215812872791446127330342403863303532234542978642219635936624477577996120741483939607251260435675153354587311463203970771794977129706816559689577236276182970528976918740562435769168298111576547557772652592899348711692160286485781937266706503029138864249259125099236634960722652162538141895518526298011622329236301428741503250677862450935347855627518484324873304798687431940274874318667868626411026156179596005394267440043409511466572894762918551405720290383242189221983029400300003230864413270367360056320940091422728287721806340907184960449744122187333699504165282057390679998035797601376035693477992418587466930299843912324449746801737127161640753048470027774237509066683644710893909212079338115209859179504261419275660510970315419661192669494873279262564469799411414604180759107053815300214610289816816863183280759620033119160994805987384640752528507736745584605630572143525066676586533276592343274646052544825025954205252940096972359818102117672620881282825483989363228497023394963430923433417740985101659383470961096321998166438822679512866072817753191280101949932456125601178462944159881731653596698100710721819604371758080398357620230767239344127401969210725989026584538979816427867488712728436653074222042030474586620337420993470478223022643912801513068889023458375962962733151433484677162988095597599252167492532795428149323999138328183822647245426305029229201307673201224858876441084998381594462865840042095079418324356785806387499422940925993954473361132929678967568377964329760135026064547133680690403025895039831959357630535688655736307488875238845296015164601252301113805462456592828086471710034602004664045396434154746867468241879182455577274807127077557393411175522908909218912216381331928492415745799309991310936282178323046658033342647309804613339941188919045910412964791084263055056478126143571256281954076183468072183459168459924316478200674849224849317849892296253572159847302292873272629360170226511241457554493285769551035095057049159692515481798578552557409481047684396134904016211489507091949708999568366757637213903909902663302590457931891638965207307598915898512562447106954261734316265005030014996806606063016508318280958038648976016122273343742038017683696144167933572675324543481463299593595348677311687578780507254164859283190646943186174610055169542002597114062876103385673162628532063787423475125278075489086468723455524772265192806417114982645192504623372580825542451455151771190659662097726753438703981571801457772359224712138710020230415490380313878624284493222181495251709706916058513811178026890048627011742200976809863194611650016515384450669403660487609415939472256592308197899410792107532083619577874179586230416327009747255410459204868221822575652907305485648861536586225604399953651369971400571850639205214792421575088406900197016278586678500070577672567847738216053942219402906953596829998090001058153719913487301355833064344873034665875417333101734413336589146230210600019957538067302767216523299047794821177603213305916146284637518673620114911568884900045950501827292391796949834133478762007384780599397774745688988736411308302734690063544376264142445678211371692288480796113552897861651012552899968718795372944745091366638365262577689406116400499344665630800349230257044628407932714413502178811129781924765021213939903827326463361320308825585618767830847898923733964677548633916986820517851812100717738342159415960453289053159978493034303079828649414330221391930053071906330935825076924121912793205187335657114315615841448778383991537111923552970748604384301836158947708352525604530511115089326223563514141695156448009152829075005392591308911267140395807537174842020021161132311298124650755511191792975990169016563051834297529865104390764216383119054178783676738461636024644363798247273372944988015205471842864940732804460878864471646662668906838096116700982405168603101719775811062930308329123298580632350921881065819272043771836269854218505171977108169933771449235659953640185388589469722246004106485581447315046478938111554967215094213075815742493263611479765951927348444742418506955012437801533582971306090859607737967248793250323157090318908105914348177778390311541534881262377835977816082387038027261283587581744952765641105563059502791597145152410347974595111569237126858639007824044744526629166047506813992487290123145548313644012532999282638381035730928603279077309458837680287329524685174487976248259955351778572000428418276280254851933107702046591219096393430851584893832018047163670478843224635302250395948762800928997941898116534467199554340342115413369511658146210383934543566896008548320800557377687736848197142954532308437832136504212357070077061349780163251280369303055402171505868694366412344062203732896324172756457404359093674453167991333460595331094476960328808039717595959207621610178518412233258679345831405513875914600385721413087186519445182090821897450671175073901618456996670963162779185344327695199653929821141261668772384187452307142636642781251378586704680388607194522377691412052319435206416253263045912406868697866563386678097691379293880951805096078376353947896838668830650612485946208258406433105943819100617241029932035044469322177036199850556962034855149715118694573832131870818664845347950393358491052641007131559510028569877620242976782089331617958708975722218331469121169873458550965052878660497039552740001940860234129639600019847635413040544723920242430277693342532645186939817600093327839209734239624053972355085302642426628485548400858844224435845558460157726442551758536284963170477072928425623080666208479646362889408000788729839864455105003836770113116310563760474368949610535291472489983824171663619167269666342800553339223542709980527250521170511371781075361884229229593152659446001847985736251361152601782777812603604864695154512822097611517786847486958761750068410915093723912219300145209548487661745471686807162267215403205655180936794148265015484917460682689806864074242464884661339093967576987508326453424858805452740213506389149441946920912296672630780754227480012582251511191861534439888287682335325781924961018936158548884303758263184224357496432968071782310849822092579547441415629924854198930119302076115744162083917094041400532510078661898481778777409283506196591471988484230183263531557895896453102905378642775418146361681303749502648635732916595365925998278717080663781993764704357112659169920778404988521484450406629684343293561035320590099000190401736527728824367958304117850613790954944497353209554379472378382360634525332698900247794824047545626955656187404488171263717975777757703698282393847893964875875890558847226354783458266800571655015054508680578975012754561952977951089228563674207897863203988011520795269848644234776896424279988827613412572458835347364642038367222013097553404188397716113803662913852505762492283695830115250825538876204237712327724399398709369747209793152379713916693250128762521942603436038918457150227262454474440033046886389824901281468398946077803564096707371645146211586580687060566766024053564612147437682365908343707238014936174721223417080046451190966574279780672261754949197178001443961507605255364638352423063811279320337781574291486559439735815398011305790639908104681771145671644103997689831146551413788937438425936158677098805953033488001928394310989528307935197317124447171256239284791039132639016878924914874690159766389795479137711916763466253170444403236449902683040776894358573987966258190479979956658026759544605965165262690098189552507442112983852408106895794314829183228621079058346369894927342862870438413722247928652098980024396213877499346271558997343999208387158991682719796925672170541433375571978771339448135012499870461899293892648227108172088467374923026705822301708170859768919920050275287353927438898756262259224673486583870844542628867585600416724309030357874390667598764797992843772858281292504287003359700466143957770567237254225642975232012835356786831385411717787434831272922013556549445206405549146601659718703368068260804352331849565073982931462094830316025374963769163789399276722447596468406532110050829702223973102616547541721564468420223953848632939192157993339378053422267368124049230262134687340728600319149517251044590506094678576039579765431695154287653375593539369513938113507741656623063084463429815794181792250851180917720946100515836930683431350242580429352139930391834480741549399014864465991233600323631524987054509034583857014005998310043761146180036422607169145419176982005614233892319234032016892096824594240877369791752616464929737204027542599928236461981530504548352882781762205773236770672412703417003353029500054966466322966915003409706143943040039132394813235948683404865771765935421260942807457953529156151160388774796623607028264806400909193141230164518192059823247585652612208153603992689846742328901249381760343247082640440777782235772013421046478156201279253252118091301587421292718208760081873685086843435861575629012326374969745301907029356871525368951524404004707911620616056979340827341189141047923757081665179421873826061605195525789424700002800458279713999645384577890056130692760491473840555238198440195470244400950453466916126998583717152144548620097804198271688713910826731844805290284362993749164814991757577071070945843789597470900269731305721492318032539501082564047152319921725859152109718787056122219215911443552767403884666156540687362757286387531140066397809710620675737969410256072894832114062516245240383848652336290185737149029520066018536252384883129042855077352027228206008333209631343524963930805949495938346456373706059284758073571157495828704564204919856966315654612050271001509502759498617814204711674609290395507022671223400451784432998328319905753879642173244925715388506425469728761196217726188221867468778379460808023680521221358704718629877300094496288263232354916447963673164842477175796001408293996628752743069391983646154194790776765750298792010475404642054145421146145129007554697289192314549472036910697679660655372427619241736922417950221305674522826197839128731816359152423237390214978390046002735706073766938436053662802900542551444273414037977639212917997105357122736985217727478897500588537480779362568025996846842755849238131852072130740936893707646534051071283626624174474289272035132345046268393292125011580950193874311331719361312043707223287211175225460025639207364117525606856864161470415326223683162023767667637168081887486784782308165669742903975349928365710521214192934477455856775145394255347916439585682789565576931433747463875356111703527335233584342943829229828559869914362255963739696913267437893322498447351285117461084851555049415665847898045523521562125898874324171777094412874691023518795570437297502566598984296810970473816968931433971832698430206072540062659795867582385519854973279957412661582093851107045393001456688099520443907184904051054998339645444666527133076177465819757622745439925526629197481062672937391964724683649194061422291381625300987547139616483013774290753821739250864911255855687484753899162578076432812739729181505770674094648725338591957198822966581230831207116803109274924396030581282305756822689833385857650830043868037814466117512092942202689873121991197062594147983823130112568834089787805954907888196787897809103164207359000519327916319517487287396482879683325748981469339443225492646251260753363924590255163797548258767565606264730766167679204176764535862900119002034030948681872328963551710328846249530056393903477967963952125701472276683965857432465429117629121245399892022300907744806630505931734578015841337075888546583058174741707147386429832891830850322745361105605683917141997428722496617746139360698854443663123203245888008783566521057012378192849992627510766338275213023054729935249878586760462806151936003711164125314146358640537235742478107107385297641865558152519091937603005217351797644563438800137909106482998829153812043097344273611853737724721795769506311664944145991979671217558212544893877214850162935529514422858243087863587728978091102611905515995813229006452930314626274094163077180638705993783217335004805511101292560112068407619094454476681173519629947569178415672540533348372502783829546903063469565669023094048822341613058482306692319495325722821960593282431278231013487531265828916010507090763594477754978903248271232055465858247411758915497299345811554173251225123416757422626376887562819965457093333607220918611123673884686320620698606760666055374217650431765899969883443142534185701382378328472997332048778871718274312464955261918222874421981470136353474303204144274495606275763904545950986168802868924069876441581343445885651103103272655922833053185274521654496161698614412505602131776587383594183156700278426737813869652200973782097690475315918652006092302801873587455101636037655727047067340561227028739153804773380051135052130243334081225178592384085882506355563802693208245815548265911454423330801181680669545391707934772999482910484109976239218440812528328917931508525919310124133763495590806445443287353743829159219571694109833311977804344487942311861294164588278886350002578502358215495299680794309496254173942727544090657891211758511113125167352791170794376254254489551827800783895107563973349716422933369825840818272736352173264289003517432740690289947917826157676410221418533227272856043857257655805559626391935283394098497016584845989736491356211302023076919177933353442198868416077147101636173278588395881343057583442077696537098362901629599032673370755503102648515942487678322605652753154928436611657997447777640316973062896643668481612415685320843598305712536434554021868470553978289705640856061338759804566003771330246721835482303611623587971632882124454698745675016480849838861425740380623532196103859179107951077303593378708814935797578277163384162672120914060965323058937630581923473791237458394504408139046126667029903426885084771584322243289168566681429185765185840450745268748839396846295166363524616397506236562267300821713441455463737452056515916661811634422364538908643618137584814959212672983328763250994910852299048097463480174441358932808842491820496231938263161716826993734590137517618665053321023773846874038089190021744971468288215455522482037007537504383407323575944499804196685731354388562166569238047964177845719742274414568475026489899931834113670725383744819106320217739036633491157077901604864293818074667554526311276731332805559870641099423017987001754658906920856898054466869828899669097433785989069048769087587109570365019258596276265859993459960417986911486280616395466149831597530443273781748155479683783952080674322916418525816685845040379706112042223469272781148938316297037958209211991249481695634158543263504323885328253141543702710188049505413670463461334052206824286798812659619916510783003064812988581852232364204123095562898610190133710543603032402367150860982811673378823584349308729590558719801878858857816053844373221292675399085590308406141531491135765379516389285250653584503268048866869706248704630227493717590825141441620473720592321889362761329641381976470145303510259462334735359415037161559239057369668317183046795060963192330226293859473294452423448209676388215213763470920060195885173176813792454162694474730233484418031174886984288920571148175034076757202947405592643916300432061183556657992603533714761314432875684339529172321183745554411384066801591964592618229006877561069318242217176581381938858723930699487589530136503997099779493403721109885594273816959825189257811547997604785366419400935555895031474884964386168946477914257176837941364224491028750700187798703728254016069666465998561270228725041687966937277525138540583498456940763339897338621774724614860410717284402292066305754569469217129266182492883343624200295472739838511911309575491679212636604631275940197376725681797985417030738016974783408852738842084128458143460090428260557065236055522924197893099136876926580320407684940905502763516664711432636529506249186745069794590055490876395873917320552097852105462938977754079386819160821828752113671121205440692161113777521983468876026600335232488823575040428544595955370044242393552876726825998350241191183571716230649866459296755367280053139525176681638779907416342735642755327918659962142470669377538499658413855727731106699012648719285974074121997720285680934035718866497440613723294984612155884871480258213249427612115037325805452552624309083203027249439089768191660782675297305215642461354572409627848640779933336743240741014678102489295034361097357508490875235979013577218175472943155984405777713724965760304762779610844685044511907079708604798260346656079157291951344175458444030996916290961256761988848367435459009182481310585106727792110743493959876759167556333837213229330276016182411097480663855057660875283651538215542805512954297319583654228375274446794195741440542239923514500426157826716863886945814026001938265439674094701519372836319965873468429104997361274994617912220295900801622440292435269014642365127360932269445813723575594916442437017555754907608779181935735347497330367195915990508583889188358757468096464490935447154999131090696904059472887836615103606523621974401198455624433642971920834085453554487275245005675429558372294731510874743739914455985579872996356772460780267938738934958660292607430812560271943635351808169867308633568500313778256956614822426918236284669294992317606248522266338027405522699670031282623364110075233474958327687190566842626604878191533234808669797638361025305632357744175381690088515830722155174288099568278459036109516491580621565264907742341995248472972354433995258057003030961235842114841540346196777817919357356457200243526703100553122874995367109441867034355189008465828063311754621713916713627352208529663872229275488929667022774457994983679317464567858278957207539857429183321924396064362021654352036147362124746754927375490584071457734188042483978707048027698462819818882502065214867163742849708190074520384057406358870119770893629692983880521834886848541214543229743323167762052930215601017235466125918191739556986075092664305380353139944837679604195626296989252936528074529483927631467361641640093664789911382657887144343819973722557940465801904368174167012830671838682036110971297680833348432065325959991001217236244045241593538769372386277452422506840145644659921853225570425980428197363485891162259837905645784766781933985102335622285215030681699738894892808951356034969817613703175050495594707925102593306604599816919922158467747782666500670480463203774414390154672919491250864498275946176662818029176102987364434586971698977302930010732972164637472839632653205491171217902139140686049965477198094431205224828510189343067754235700801564855550399461642868695738487919437601094349181018031233266742986842569145384729752299539949624959256004273512732754282620356627939344622652666180596819491378516795817775840514019224985709102997852160494429332624251194025878713640599567422021328981225628864959853749287444845256244913848189176540148335454199696904698435088204784821198776195549893748729077037141151912730669189600966338589067406689209916157740696019822442682075281753904352742421672267940750291072346717591712910936933542137908809383105777414314237570586739529735694527411477248071361124087309118960306239414325419013215692686300290821637386601187144722771642164468504817287415605607138539785885986628117722121903205193541376631216399033748813757274474322581661245557426810950612624180339810140510732722681054666158945287461641205522674872102967083249543749071119105458594011571556503898844400514137836904597462284099944712428159058659002582596320634743032402926885556929111611123224490064319774524213252005960762379834992473129469793711993287599414166892815893864021631533936027780559866303777981201205007007816834475951412587107909615978565429739273091654782527087066109060240799132760840964713903368649575817281504876781904301244086778875117011784621094039231441256371030344203853712078013882914849174744865476466817322622799453115405873906291666092168280932546884455969226672472554795401649761889368326922970114761799869842905396166018356728228922995522192767144354658653665420738324966173338359932824454958880210494443833024475119745926942342923667915314985341863287859452934571314457693837987505219532043050352971833327305356699927855175335168152793508125419777023206664889529562330994641906327131361534320591263012187278920978760536754099709458596291757661075211528939679933656343885719160903725737865666260734931685679119960774294218864391196484950806588331704149694858565358076873015617935634093697188589762366706805633084086853280525323816035531858447467538112772656120928814050086741610190618890801911034590629582144324413330491308422128912425175587301650819771804549932088560424998034340890710150362423327439613951362290054813628393625815599844923549726678837813267397983409581924436830799629419029487087211959775401880000493333491313779372215708856045715898782820804755051953613015997994950827679278355368964272169326054613088983760801147393027267334211695618712369542837945805165282954799200612072046527187121904742511130144371642462656000524768131674603162262266883075372799456397527542148156941343942758071820045246754764008116927056900232965336978334124967544794508916534180400989514360058678990640133552015663954468532806491421551586645620733109296442009775387073632561095696317284142719966123645355789613178332912894211731659105336783194850406063231012862920519159405630423890766622905538271420529324897737040367241410871676821205814184987354372812940332828235571607148690288248094227373983493667489175811094185495596683404700653546092595075664599215135705322721299686507360648054718121012345479183217373815241928041681566852619465622954784979277727275784914943249366167006985882041110395014201815409654718746368075852052285545504869947645631820976215189653854899583450846973321525278670029195596563804125918271534069850376164095580653054373932938132113621449466927731523915136720119970731955541163384848361876865902472226493093238447282654892584211287074425133027851344184727435142825178117246996470432401422225506563665898608896308752740442970154638499073024960598313445197558616829043207421815546712804618209759823305441407862879626220771117364690672897054447233119367893365932276911991053567062595257692792796464076278060875002401348688738498031028146362068170505260549308921322748971699753671506695801424589523352728922406064008773793550384674894372628795399604498561947772417330727551279836414664298402517961030248031517678148150281201412408098155699890473564430713833348518229504416590714974905267233724840824136317876191581192716104849639538264176012431130183935441445217987645356472889003140006474690826361106276130800776570045866642973916946486217126850858758650718070483042349478913928000213915871299388937794321077732130935791546933526234003647271229122798375496659443041099722825047810875636449122678157484289028491545007836743504764480216482423996130866286584277648632860693618138022475909737832047935064964500077746595914730270418365113050877740618008506428312515470055188139925146825294480107381126810288801978270654769830602987600954799508949459158668904415802564103778604793648078344561824247683318038857433603018576651174959299198655605005921550471114607162647273423591461767468632783336371560116504768000741887496920606797476517649729740245521390421089823514537837155276591703606586538062018792379950166437329864905818475303570553555030717718229126166125343352006338554099716000764982722390349457742163028144096537517368715219475008951833166297533124868073627002251611564899442033214135191294324867838435146041956986973455847852439233760782260966895358291888941705559423365323012014405126072260745896138598437176893296162157645826021526384677964939438595380111469760899872524859090105768619248511592898469649791708707398564876996749292881845826881654092513480542826143373152139125750492912251703437174816413483229133551963839908588293376999617691044194684978756394683817467334819010488755855129107877861127222780057537302093141095785384581728457201542110325384044594477872998490871929185580383665518892965952593794292688967343538667881059651096782069710763437406854976914612081477872272598203922312561329667488219578114529177681329359230653324532972066762145835145117281315042915982503815499267726527866270051727195902424604771681345443107297303768864301707962676779644486484344400453052488851855007891106623289009691138902469316629085999459859816463793019164281021743463341298793219087130509433199141506324643246418496627985892427588660141240028818048513691823653315853952050727938374313711955507319828440681161247847474961816521746037747310980015687587979619812768669956319118636904377137312939535885305415862232982940386625999635695461830543108112081082444104671840045696811724849040587783419175245212667280071277287428839834696147939697464173702822840613433256836037790627859480004880903070499366374612403711221633546255237325877633841156861560117137275073101872052025136842322010171278396527399832225041362432921514492153283183620782498052077091062623333440383284337257754714314961666688412461991493785928182974754851014409530831406588198813113185015781190051754723060334550186568841721737854350162418818119127171393897921377371612356930300835460926226037303056722590604264659837255156137150861391118670397366049436306410090056270264183313030065806622127291213413886557215310427583797959211405713501613998434637943314151801897390173196642799186891943247062576613528318122768656140456027282869223608009327785652190548504558897385684647233611797381904546308473560190340312726312615792641385038504286188200586599443000866178020322253059625127671543449214452940416180391951372429087153523098751051102605955547930196441211509342681458335656736345128515899939269146927278211122920915111123255720299671442529776733594503754499296715028368127095522211863851090765479817738500472971381172853291695650464650493274878683477896905363497623939403196795699225808830572776275262130802805093152498610650524451734388622237504734913881489247555114110389586735218190047918263616831997105746719354132423062203179289619224473974724246981271894395584478374519336278865624030707590647426266113858101853247617736881888238934784223553872469745463428809435080810538382380847644980886008249424508374648879793930324454625717948751761728720925829349734378758121752612556463046911554597873379848493105092236690654885248484320052257695406231655371838213848796043118484732772351505121506490435615301615580521767767249810194268809382108075815574183983760219096951697241405110706422709248806673586447878851425295016655698657677409389203825635626258729305638820902019294708321787155829248182899509820501108891136403472871515067415996850104779053688888515403307237888272777555067011083424684815096475156003461945920436076432157834515961300702557511441887471741596271051009356003190907934219145410989413190533391077486725615290894998851628460836961061694997026634371258726823747921716662546871302436869580856792639543554528631026169242608201992344170772111285359278392920880322905017684484532406467273502295967661310024137190508290906288545298303368460496458563308518863557132488735868293342092498783473201882802792599077281877837119554151778450716105569854772401546536565825109668661247795419473386490423213296666103110757045446370770621579708960333618946174693619811136327982509967349641391783462468357424385245285540279283537377127393221123275547565923197403343592990279390650887884941780287129482964632638710848652950901771159141753003291651826974140687713564239486765002021245046185019745599650265877899298468858801551141889824823892392318209935918470414239500551841154343921843808623026048889826387977313456710413940597353159843361296182135838207810167203535962883670637141746360556607574336236981462920194284364980826795478800892670469464315434758831898364531911031580682792989860277201455883328096774368489715767503603507035662146611987620330181231310268502547367725092850464948767028180817747235334318937493464238645050924381231385809140718896539100037080494832012781792342739700941335311125715170064385938437428322313837443702216622442665028066885757219146177853468645554557785311775506680766345643217239506874452177752092462329628214964479669182302201472732926314291507304625477006868662471785349548457404370612526914286103303368263994899316395483942631706634207011769705777584456083516477464756389951690382651682401764952773415666994249062722032651782287004556127632862122732654249806178345927437707450036199210709379616763684351367724127177946560095065101440943260309840865096525684877536394179835700048273025665491146763976795579145983382859839415183850547408922289341016202348889534670433619803939499316685335350937264949140082769889329305477881556133819056207503786564893286642745448313006760913716622102390353750737106425464996852791197139297089510903976132889986114496213761450910218010149236640533327758120983703636519095545046774846377146449333298303802873015676597291238712606680440194215290559638337276310422485354284123320289678296966791662520839980991636940653646994854247459712647262564402359083026780782277652578403547857324985593603232427562563899169445745313317826903690323017642525605526579181366219749421244502239373588751824973265092078057647991035798437038288341346206205103731674862515311373862763626728105408174208541774853478408886827457754079033532041588480864543129836964028475249693491562447346886090348065646582251399213880730050527791081671342754371709899443880491698299481745251996687217584899297388259841894372782481942482875711913318167616027166102774311018776748745740032789225805657583194739800461258818090843952539382869459126449902839777109397053687304902568247841060228552328044478196833064094193913109842793981892899051374358265004656089184453687654090719949527309117732266620943520500730534513407772308244555535098477445729019951210397080863737694323168940887695845678918512895417174836359844742096866705762801089490596290646679376122874216991164677961308878918930189369601378486597752607155541577899696511389691339156972016307410876771301353556551129828351663191673797791599859875649226606530017221077476426950326016097379771060058087942453896378579958272082413182335076129356668424909576188237925163443712460161373109104055500223153083599216015504846215033805532459815266471871178299235505956535337629855736945923143060068566843124852829939143679324766631123548896405046489703190186084205070650585733480785097523989637101492619990747754535298149473998099826863722847625604789358344255298544194729175447620965809149466363888536245691729644340569024097747050139769468202702221597646231383692744468369634013566198987082063744546225345129864384573345045075728182460331457510476184103730369840662418214540178087558796553142354488934503164046163227351739699419343113318867765669070822389412684642206260592621854834885344453887591678951959798372670435329301585069872565694825088736918859576408256199504912578071048707877119986752463044297968823889086788188847534200110637965288213592193435081471787509094784554924064253932989844122469963997209479195044860415578053273880847435047301047095203294738741322401431830384962849201277154342557857040897694811493166329006079444584230103761220807277975816523046128058919714123695777345629005849343899094680353587919858892716098796434656077792541006487204710257172049422629878002205054004894753912719520694294006042860449171969807329572781601318714653741975626057381685943516420940118913289267488865558523180616882556790819083173219800424551905842261105253926502748061578319298512472647262323620160565547211702904201569667604807364794520770370866149160600774385678896985742324269127225594699384988016541748054290040379145659947185924335921613163362569551775391416438381125611217344426739952346993417406305971335985638021786177009047133552422558777882145490912912085271325178500520228007722555093482151295543381627389621931374249218209156849528442652375630151431492571186020839041679567167349120677626363548086740795959491626121910272899355986023639382597729725324223254041250361029917981379580849164142062742513884985493624444882035817165267197762632898166044261831266247196343169847818274649755328110207605264772758153571176144917058430932100308903763393863842053396690213194084131685952709445994288752702252675574587636078721309013955444966628575963232628423573581538243242994300574209568104981937087112065738156955774569695087666824586197990321548451871231030087556309972675790184671608960629976354196867244060895674024629099139139086461115802906932731402078467637664340570699568275379931010326757273914352148658597974188916414918059701257321347590940882551357150080443938154840761899433316616986329791994516632353429078942322806256679777500899614384318097710244415418370992720893207129371445086302795151265056401566657495051740798181630336875999722427444264605887644836653933159445348135973980371749066532491805126599668174848546719772381836916374163467093326748767161626217865064258296239489666699943100729275934800302648378858210479210726245455802771514334100056612416855446127540995281660714899124662178136529535012708575816788613656433509050892525104885535204737374576362965978243422958072877915837835231908167072832011641660456892912760005971948129448928133465405775389958009478387442821312580723802304534217295644622718634210007865790328479745038282930761599009926628169835784780985770762305237652800626171737686870493598718740313879310568532295481198953254617733955660220697426024296944555378182832150059816161911444698210112266926791201194219729393040360314652367814149393725459950573120937851019792594935544318416986118794806152627525204581796890031205121341564010428516071740677300929723168985508039825875078649859472705020408214160227701509991792653829551646935318151370363637801522969191264725520811267633495787075403145879724456755112406812780122789356164121645543445987604286157861887090115851548269376479238030960840747007939516026035404554324296438043198186963661834060805411083104506117369024815944794542018565909479825846536856802098621287982845955176857452478653885789490289743312000236155870056311694217273723210811194272872383759057183251529873361810828216029570251986624191135205957525285439419013315466356059044205737877309041429198429511325696472579140438686227192178558561569502414034622407223267448557631344402801380941470576253295082239727652854950033516674025793970856754194684775824194876418963909877643039582423191741967354247207676607061881469196406726127368025054063268938815014003981681051635925985144343345744114607679268733365694762991567119352225047003520611297146285027526574219061817080535791347240094483275711821833826895062066843682685550214871116368370682626698917301820628518949489752331750320197549426799293304046434760384898933688407641290733556110708824575666201079697106074616150096047686165650279564282364449449760589890768869107146948473639574687015816108610890770181004513270780820569838852239941382957724214155203829786390443070221083766946633585948157469387607087044412827647038496957429682723929053479983130123385938627162831653952688383882091174856727597228012620636346839065487059902871359599721964288557060456497421353768901503033429842600728704240408045155350154115082164867508365123294040802299857224308992030149928124696882937542438868574916793684854299489730497135552698282891945089074536471749289550730224233344558925049422430734497990128633180229148611341495672343346477585472575268208873942979657494709380900543671321470928861679866884847953907491860974332345049714259925727616055988462007394536351559878802909704736508774725668405688851049798064370195078436558846897522604087944859501272398788294564899000035457152660939558471014628177205533259050729979994327431107903227648506369536688822125945537744074081259515606513831052219059255198086758576225482916487813300425464763208797184989373186418140174720176056108308332438301798103527563629865905609954017914117500398053450928270081565857521887731193549676922467295716261082207694461878348024157197139644053404847534046655452527142346218610989017109530105689133087811832197048433340841852361141361441923549005923110153891355193368620222372148336802988781943967858024109056002865486634900107973178963949817120537555632122310962594494659989582174106015423207573431166028652574368665929148507071228189596969679892858584614735853612382602791865978578138404347211979311674998643610848824366201457782196817886866843747967057123975431084574522480672228816477548549877380080770263697820926608217083034812870378964631920059242161588194652526769910309674738246230447491000911088864169897335976059505461343161346047638161186715622150960219362052227773438150831263233179077512346572019313083456154694257598956492262266223470708161018165838801816077248350121339041368822154123593474432735255972904633297234896817285467694353378729384046481741895881141390569685613551184850421706468778921044102184109380663075577439805281963979052694659622000967173806522468616410080391116340448158416169413411660218457756591947062323846134509581672583208504406337133552065262767533314077833571021537631075534169961847221258085763459203214159511136400357869378633624549868664248118040327117366901447514905370375070418637173582681816143585588584670863425000849165464424958045414179928083206455921119536930531163543391398536294156025660728248109678692237187725901757418724977518949317203923912062955525616998438517977138102544288116721609721683661313542159918978343748549471950238204523640121003489571099564494872266038900243145307123735077481009756659981517139123553531499056367179076775342125762996615058690841294147240977467229137914024817060516389210756971823623978676147156866723785030454152672341417574629302683642959514999668882479071285947850631045141665567375362675584983665063245030057927710914355983831101787417084202865001021701321560236786716546812312496834501618654034844822321554428107835385901798487048393540242973531776749728608043354656435357653998185769817013441760173352867959084127624342784704527331003700098848916500459216309869789367674845753473497879720640472075552766113641340640816508354209701262522402307547878075956521714910615719976297940755481575886188130611069665463150185230282000979209181143476941870133035602765412702477404830045396461275616304321167851324929315189233532782440108741713671641691801231700867307302106420966555061711548986447554831201435157977741527161612430100372483383365407065321391834610715139649892039561821726901481820477879181313725274261862623354323271273117252497639568069252934985333040974491757176261634254827553837705304696968283887048229938383419491850915476910860314417052876841843060216090870876209039457748433066930048079523046065137344080402995223554358183122899678715344390956167618577200621101016991328723574019983525318896627098260835058584187094175190509840469549070479069465930775585715401718972782211569309295240630961840701112768570445872740706915363295646174258849656505871382997314044060735027196920004881867622644036501624096380087383964196292616488365947110686673523453874712175937736670585359618591496398374924394104676596147343178166835989879609087577407803829171816511887353575835771630058645574933442834295439340854417966544065433041604794671726254739641155230951531766766891430880794597662883450617002902317591847686095679450398188381665921457478112744089590520255131949536503805906080238615922985125550219243624257749947268110344140157201421053592908975845789898464386495058808114099647782989633861035951138367560724302775341862547947339662329992206880445290131172660001338965691644584733787035050280139769113668531891084192802170365942888279909750689186275453219288766980363400675028620077245881079332898591767947936833741419492732228920195051709102595544148479028207676089295699571715842412471185940334719927102150197068761246206753483047709824158476568220798078962198285618984734459683232482066000465719086948331196878377531379450383280780814542666992092100751758361611718008751944898088919668000153860085167022924656866823092379188815372301013268308276324894422767836413644112201509473979030195713477182942197317251259398915901908411238766974352293832911197774775428231760633923643601327618048765680706781349996369264937490902581670425574817490016042622068883627899386717818897284955827782133871898054347232276382371738451000225499463534324324329661471316029542733089816407858957239699488222959558175360912393566715407166956258342506267188601621177446868027901944685951976660025358880345693837303717844662101292351513949073797604970637658533868634833583610370550546357297295581686777207624800522267404888179917474318728296106564086723479352100501351904688273093627837320269204212961958354379818574904488865767903558582335715778535849148549364314622912728485332994945208421782119375761157645650721245292084106298114785651997392752849967668066302550423729854887713140543481412890045539433110321894964626817484771915194496090931923675555324608282397715988000103730499636934612572791113054975822318255363836191759363722505217839335906921028706920570559594694231253984852573996879402021441358347615609406520616167738206567135945225240557904851055066817686136648460677016574834350397083474181157264963531029392927619071070928859214800000826020080452693616434463746656859324929176865366415289749856622403946654799138889273418186532795255332430090652062204423663796195851687288493783292784454813135407412477383975142103832755817621203192199274205543284371881380290398644625831708324715515505031301244595448087769174185403214052724448663898645544663357745968104992885571355352332286495438992576057441140320705617068386146221044188607459934288577473643095724103187947840073402930535450354918354298454903419157511620537864708550904211720322762002823241702029332133640844297301476372951180601035641448311975102742397442205593197499322524875125575710841991078643341547980085594180843663219030002168925336415085292843841202238074384066242341608210109811655097148421037916695993418456063919946168728021476823743034165994706464382701696395347801925664643593785291211959748429873542793811300834344464049932706235788351071996491457183719523625814358938973778264087570144396904029778333499340177123986543614490360980205685559803116261229078474378229344966732064266084549936498677363232731356107096162642727602505437661975164447941765928343001631739898338697929946892911646959773052320165689360486642767244798861262910676946089687447016362893609220941619155065328630128545137522093762484523724821728452872102729840826700803291186688952511504334540935891925726503923958195495439912912888293756428295174187492836297142293739536322735619354259304376938363536843776069819130203540504888555615145537405084256114222825491948316325041405163120203915617396513789199832140329102088476519490491151272407067970754025685202484785954051265207584700346966785145631664433743237789032772448580758908676800742897432924036580333147329238983382890738676054886897174103703137060685879309307915421801649740459964266337052782198315781409021005262362889412795134199791774937758344962301702806322148736407128410670148860127905911000537549910387805448669168162740982720778576162995829692179796693206080317169926016687856001402293105523495417664730174167661343287571835732317621459197542602910046073160551584076141774265349603528595314779325168928584373594613585582720618159080393869369891964095505918568214742555378316906273708740579568214731499527153862915439723702946933398362575663690513487022286588230696620606799871428991830001921827723380484521434084382315031307318101112412714066238165882533383472954199818783445826157070643507532191747186774910542998417223403872343868599214343159026600391888407435329413005443885963225794906069033906488331372798082475660204963163294234679364590450448976795344029539516413371630292112665315715148208317666179449102210450616038008339562991382810109632085868010913056370150845736674810236170554254489615339162645988492790681611760941873414754150158951302855180684062778785209011728342929075301978780705751680864648176311117507332492229527395569878146088773129729158538426756466802896921358317443022029485599741354448792781462225053155779442711523373904444595685514216463497545898920843114093253752475700557102635613403248939375703225829085171668112128644778092977078546067834124052552220832731813504410753224294214379803608600183935222608545641026198439945376410940435576503857914540680305271514525195510664923517012707450387197561499319569567215179773991383961431841420036836049404511462148791676072816367129920128637938653722573240053062837060877645534682328866122471838459578670266934183619309232898476316329085288958731167958537629181549967724618896156660323172602774801528969290156433754306116217035110481819129433297820042579209142653729554255655279692079255566211594911249754379053525771622102487761344648924884462616513843343407220855070442278003088832050896557760012996081288067172919312799767130668547897284841706982774137733493227413788424832881327842181312664422596593261489105454463961577371175982461766628352036365742450476784969256454687905723498891584486084844157794568937320366565954722054487142795588946632613140305081380935465372671021018121390334205015893795583666889321623269335968357469291218350070452818779969671670538434946438974898395409595499707434343541267356393930269638505351008428124748996198163464967130017914890220892262903346378985542099436328495041048642808482612460132769588621428238672047691177462870911343065129362425850881505771129741277306844421268116092671773107658047609095483028496962653178550033481211769915108020900911603875778883932512544056859633875980767223732491469531541394704113863638152702249435487287652588882822817187229310243174774404448743176332874203069048054740070541993347296066975616657176391002857615803442364465492090858864146980448794801417436678071948860573484410657746007171242968355936552611258712600485393953234770752684364209126389042348245439134883377559692191401747724155065165802880283172323779338308836479470550723150739793347945046764663365805002855614581489906133738603664246627670027475739935062167541653321975212383124343059428923140918067592353372494173202498732744464926306969825776204331439657190917464232931516138020684895976240028807620606908108112671466140572910249619805682953173828834445282148404401038632880802113293688304988571173361258299310006282348811919622479667029437778089304001475408025376618538153770466626214996761857325253229846727586131203759903608844588521004341047873823134883262984967725766575178849953526597277128921189182258534160463712956290790685337412479587842426717760435828460933543945885276395896265870555780578885163475918261862633852051149926488401160040438701321071906205427357501771070099417249280913395335446077450888679282488722470379283466465365436080298895698581290988628939716294142550945698894603067872979113891398995940568373187328608877534855790660258398096301240912914995286118619879688227566466914970099855636497412177166554201120208114615625210608910827754317289685062652821622426425113042581748683914154900108353235538371521087107978739421818755283542975962908220230579949195952323171393954380189718838275522620365540084859961045158105511383124108015632006848812558358865824822415944540185850509414045916426195849687488346422518001084762435345950726811003562539417945737616999893838636373710847943076868215029719310036350855491566706974714511126449895883254312808568849297733045837105841390390958397909244923247807797707135514444688101951937135508221163180193545260141401095633540096341142646277491824024049414376827239738256973445487703337755874019689841979071817082999608201393758963557807909150507010935527478619965639705983187236866546055661855656970980706479508270849935382935686877954286769932873886127318107958359719865922551781832471583604811061155521659283717859847256288256749821341830988288641450221629323902507973253103566589803097123663712134284364134150000209931359511089193766753643295648930267650793461231052883785181462882303324499816881266647301188468113125750959728634607120826554488500444762007811940444433547702160908724084671023435430542339008655541897858692941019872242311764072914825909836873070365004062567561108482364749512443133223875852987627950249154076041617354791355156138024182320524577756681812906200228496850051922452023767015129492976259818881087424293541915186918789964220676250014642212541178430269077425230631927337977221804505890167450882067594013453672996514132066290707853111381773740088870588352766982457381013760508736301940053027881355178814720350666437254549552186589157282567736073617662816627721001733783015254971772950870574565119524668971657348271129452747331943302772996047652808176554068296013992175530688559378441347363769417695944988507064817983635104430254768490098997996814458935657116567329907390330236594674348480543166154416833708463547645437163915517948374079848188835982939976832354991071346162305700847097587661157255630885171096052608755717831173235175417580518793654641993002942136160269807790505649218659759450013251412653645671105373978115939746105082875458092230156032141565674783539227831814818182608142785197576146909988252027640823239868856885526234184421902846089234503552868208008193995813610304926417935789488761282440090096701461810202509529579947139422375299233424852477554257506687151597731405786153936152678241480773865964989001222622458926298008592400177297741523449532886745806737306187202065572946336975661088642437894525577536777973607431979259702246705930728803261461860777493513336774434109359111939865899233843637986440158328563952362646573364764290997424231978098894671211551292254538757026977968276600309718571600495985106985443288243868646950642741534213724252567504183986535023673596030931956459706677253659432606442099680368750041426102177910440638765526027903177766015871323397148212915242955563683972127914792208228513760933006106701738642116884625719256913540293394063855758965481796194151030038652763823802950712987734605528706871360583107801674362494719470108296262399887699033025225163579842945823766080474955342261515671961903011660486960808963341345598460702452576339008969882386942868882487504107512122921160096778586000971286168934237011069845815419088545138642197171139450183384279045765109191806172586472441120034794180947610892448623847087422051956674121178696826153909750818723949413847843561001031715965731710702495904440356470517515418037995601272395475699366079280160728392345779863488177961560998380317292807734223526425703142101953514886702372488985003178840220792483841381247893988762230224311301810231325765653549334081651837434403497515965420533990642813392754526899840430196410027360263313567418339970150664496557973551416149403781586593499294366255421197853966298135105205971387986681387407314194130703372449800228278953542367154717422035647541594946527878008565645960153251065402607128918222784769701929026194533126154570051939022188873525000471378513592815286960372115142507532276491382047291772514606344660686623217370141442758245511119341249778234282831359123098882996291782003394299229409750689512793929170580890567089367241033813072623213779779015777504085489681391804431639899431456361021441815340528742737035099037801728786886086094830059456020969121429583401513737552349631517872732445094883519469872457531424821107783604845212685553139692367011098688161697072237999796466468588593115996109403321591717405741951786431588874572225026688287778125689146713385884962271271275081418397288982867589466866114452705964712211562672714806826239433440199789002408630546454147106877498837800332135555599855973667409320776870366169277945808760598521260455690345862440439527656021408185276628162781763574406274715014563067129299781571987422288347044183052591511306361479193657878517327593021172637475529033625265058113342866409352454537317337354471397327706800545000518358500522830523063126407399404690104606059990835561116073179387564794456914883412746290508202661046731496382063444491575361401568957348125044988540098840452839247474936545127941845386882760242069297956451339848961118472376425259271489790661052626615920566175916528733672838124107710809949147879229118810011339212612742255134450231062909114950546307813186147215347180254093851412551918888805255585797572223185123259699978595690857859104044687776910570424791497006953169767637732629687988649539989150738066574117341487621762923699093958693750629088429066570397655623918829642670265293666618179831540553654079788853404024098766059526837378993103645613580035223921820701730215969767153789795645322038677787390492572969776083727202241709664192969841133067286460060437561574681919968004051092979381464097980462167442191262637321472966985836014319189765910261947019830434540176512467411379364226102750908251160133839834128145562366403132482387730214303688640961862711525140572086021071562008116563527033600323937290452604373393865228499568700393680220887792735221009038034586677912716365297388005470180132350864593050279618328356383672703213573883875937830668077827096786436327018987100202964750184976106676375154188837457347262093520267082538802710005530193514125441900129722405885102237689660977904247746579510773238685156483696420806486597653854560138100734587270968058606204544636422906923380492401588616372512184695408321558106251336059494803606130316136028375657420250685109744631496020256097601605398833779792310985669039184808947925998651372852366225855356973428086054576751575564323748905230986649981846484324155636805563657253107557005222756760045529900611461526123326079775270138448876829806853676342588104005653879236077489295977476012537774038065394043137906852673310598281099210996050762679493979236192026733938201146114257265819927501796814486093819559516202803851156582393792470325909428795300652250085259782598632863317052863564682947513183546126780889231348279206127274427547969771413928172128723698478517281334906810291888335351711206206516868771691149346826683536633574479770890411060952743327749702307787944501905990182274826040511549295887385637717369577373683383031332211513870239065938697389519843012042752866777774643099038314891018829691171844588717210476767802849738408571286832810849103669452626559176370634268438193718808304801619645591046748495113309308088290229888187589242250879143622761480853414769431333642996556380249042859830642256137391846318360583897281461078924089253744600652612982385664104266656859825163538147096936295177003742574639564365628782782674748355370956257336486378643236304358780039274207460647518097012483139425714376871591027937571990680056682176833822793701606032982816736204463381427275321609314112737785368467817333404117095469109543881810553948250510494498566298289886366558419193855932911112657000355854655127060848238454169332830370612108012605182743879670245705171350816626870667812736557931822377620848068070421575779357850284834022119043762150582722636568894883106764809728511427707203857961835101696792306394007564839070160007478346847111746711200455830088286786263924801374043135666452030984692200357716220598349017467780748532963216692133957508569750458259511992575242182014812951856680991543515522334926386932464926584573848919986124309310508932656466423942509713631066745009259406613258309365177530853231120818985817504148727204558935608522076992257463074184316902560595101831464753128268588643872752977910949294160788259915298109055720890882766484919464269540167748545586171310473321423373864075445410834376136964069215527015951392501167609944802267238192427092585126586073841356612577360820643258049204182262143466441070168639036614367450388990556424449540060216219957982854691144925563272857351304761186649925491437530922658207959562241778496485850122246610473306088811785659743630203624409808374685252151654341669232240838256525130043289139122302028521149107339392294693492894249701897913265068457973483943729805247426314328369463268818274574046268205715507511392982708832041294457542637185132621282712468534024136334168087676863026936333451509678061554456653176772044252195466849691151123641021182892938935992742312279843433574733323844449841185726158194940419176439179032682478790521832811425402277557660697911482197150402750842309926803213808383596217363046602622920997799618015435545810098969394052170764614820063121366879404804000021223439508451164449816352048686376732890179033207102912939458178028115997723362019538084348416500203307491836539429779017724659292646569208563922643604663814208586021291027807257941037036604716558233936498873575629726353872874466376318913703361855231045387462619605263656496195043534517976716541471873579452112339730649830664459258706986518244488834879626613031840642008948666982617649035148617805528540163763448764236980232729773380647516593043185518338323193735930547585126056762025366389269698594571737308875505887722099975861507843593794108915995435626166583149075905073572690048295624914131006998756760389641660813968471538178275779736060902592652943890578463482059614671822512518972023453237007527117894955402608493042043297928350251637908658476014913287962066590700220462688963205344997778952108485519451669829401082259320798922235034450284664888080728588852109773647611531886444208015428456655910375418849485157661982035252906076543037890602549150843317969212713312873063293665863337689900613669047927927943195336472641848669746574857703179789897214280461987812099433600149567548911819553556340391232002998038885624188825704279993232875488193364441852623537891972574505531047820327572626957402718555792417011217018285855819682432490301342904170661901867417456847800983968502714075602906127241623247198194196520307853312980434906940668544644116660741532426108174061493030456115842808721684873749818247049239540349453117225328484630573015379549220308647102155941738481844228038077459945008604870138825582081418864934967775260235594086413024096282178938474843507757163058616269333674538739801718733218284595359190412548352407851315449590450902164574457881251215340331607225010236011328289839389287294262189964885509662879226161301421869038397950146885501102634134271930297921810525051019616098285159192981190145071730454447989926452344730588614957303705621807405370741599190797340718302164411625599480208543346390469538361295175007254041520576854328777879631737601847032519951998849496330908179629117030676459606507678454576925254975604763271138073331746003657835918034885893731200405764158812588348822073586868699055827085345038698163165292351296982578426631009153713881207961969183488034094190928294739483568283008963109267231520193372919827884451517583098831513033765882520738199208331338577374351168822910119499890536266474725544042078362805706710580618258679834291904975768506311565868827898053820721774774814549798722491309691442408423225715878630362723198070980684690574631825291873190049546737270645524720914934400953846114940413807172973414277819080599195352796940284764197387728174867139886377803512461061121583796428755282760974047555822906059987803941442962076841656771733831715890549000410792579371978789070918340375983939668532422321568168196473620817500320831132445731182593069891759966836758730877591621299160745045375799743250443605957142568869590440964868030194694405768627404570113475403361625038940826372242741464765867088746612390752256037636604129400068121425808018713646894484546554987813946528067961739015549028330631163209105932242072913645782648980568499680386273267151046092340687813254527694515991635244050259018270057308029745246427655962241962338618720854735155548186969790751236123856023958086615248457284891710236646539236927945535062232741331592298114423230074599929871510390596149960428585537033541568102650035086696951913487823068632263311300779458852908749488845623446422661225599354598161874066138756958767895397005728694566557504609002625783828547991690825390177701888815982317979276859742980278340794950956058125472540481324016340239292184190952349652330609639048227525324804986620729818700081533399533569627301456239142822739400035025092571539887023017039823581546313115425201252601578392599271628000083756657593856454654560439188803461987015121927137655431866127484227553569818580115446753410336040393475867762759441187212239710721652751296855568893725197115357232682773362596427642761057095252380972144547642491665866008446892613723788484785603967993778484969313223616350509853698884143821287415318780209331881592752590958537490476832864285627221404521322466824460068580964401747618429265185488124946963939107679083721759949071535463797085409682015585045740856053815239500144679914259252856980242231164560508026669902642163421278939369512836016394570450738548322310804459614870962695471888545539685012680895665918276355449159033520015147397942406485240570258689014558244224610102831783650232212570647801213345299991229120157397080378498983709356077473949018278521701267522663683026569735368645389248581631167449185666367951245049294406207706434340001145976717136476649483089035426427403911365638949746477783738065720302882488438068268074072026269478173297028122463538587596495120151980341734542495866552326358731777167307681269658992058683292630288935335115718939809964302320946323123463535218974544835213218249599276675598310254023639262361650365990312109897099506440118784877410123595146737903516409387443736858353900202924959806331601972448697390045168058898503462701235348562874361771806703667497309642042406915059630629643117569073662316805680241454780120210768038195442842909877767731736422025569017602939642305521849619514547449216486609030960263187893337519530183161263517378768469233846796012470916542102324946633727669175561879852144069734752398619868287754875569506544411496640594294910212711311270466412440492888447125122202104194042420254727293400718648545847097476354007581111896979408645818070394816385062775797241336395977033858745529621687421309103533713524352041495574113686919899421473349708314539067264572886987336779121918880389009264418142652835274412200967909441191317329292519227173771245182069536069681865573926226349734349410293021572446884621021371037835881539418430236972707677913848733603498437461282250316252675609249674242343484566521880968030414067194366040090580132062112324448556592151053976514820945372297489653621275316648669922197606272651461434313938419730123386341528097969346102957105890369564763362150968522643773366503855184267789350895179821950634873152658412177998313968486571702569573927675845140313463804241998400868508652166381382223450704955027483916608871449983193676820086642346756612131770875188475546732585450058237077335868076766407372565117987518985982658422982034690781641205171235140194016924067010573237613869909512648314210684132042950868165657397727314359952165774093618691633008529385965428838841960779829844073163039244140277168047457128661973521213067842423319324812318476696094390056552998758078216329402888644817021496883191598877601406980964490875057695847172968449274838920939366454490653027757852069814309929530099417457263181975732609147995037341017575866492255022362817189486778079963968514712162883329831745923228265408268888250668159462593663009160004341879948082222673744498369815209920326754648542843543396875297271175387529228827015332438307337618189711385050477420598610795280808173721515376164452845161357617685261033174565963727662578721022981713210036450911126307406548227956420170295745992201894308967802225825552421361645813950080585669159683039444931230539190924903947715804097543437447198704394672914871118501106618283857657754671723255772663524870690294597125272426550541493578362745719947139056318532225988270144849738770505870375996546357451621099447110915515585958708858082486822551119577963299785401562349315152693405351643712134487735824356986227378754748638271149577555996285068087218239733003643739190569035262191406430587920121830435173132638479371636429976563985959119726432999529370385174961772120767542809336979710498265800706812118626937083018293309608776620102549905796922033558783963810737274047192053834599364741265252780383526094430028261016715606624598223391119496311605238726666926301593645536114880291871579089636187332112964166790763149189973276549575344810462208616625336702805965943693037845622081421314778737819323097278801151329096744006986927763769895959969949213362843994177380633326170086251213558197990394885745507221252320651112306565419192355377561009502642867456559987818233855593568779088868253769846937207614487354715461779898883378902598846182775173127424690298397053702942063391754203666834214421077774193916508178887358471571421154652097248280608134057395811869105726266100999814786471161435942050631779629219560532911992060110069318645241765048443021789669841961284380683283086522265188944496664009368532486893451988329297643964132508544146574933887899343937921100370619046095393877866917872492572789433923366226100725110706148961123884499849051680659762125295680861684048651894862740493870859102858308653237659591340196689467627370359089417248430015946190190882479734240875995471026359182261743759891735301321961237145559031438980283316501240568511339359246593686144607062344747619027550070584981185262168778245664068311082379758594646472846892699919182045924118011903396699397285922605130703470736804947595035477926865839755794188907413009434045584286155944922434714572852302784293714700725337386024291195982610982995189525886056948963384721048289205238180015083291774317659162070241339137321147851774658803197939056760361304917947684865282899240037087945478578313723023205072449100663486148128338952453063027263940770119168053488334339141251871018002319131602798883512788569837198431788039793088073346780826920366310795085265336074159698172336710806058791699902795119832389061292249955224945354550115182588337825869519637029455705472581773088680903416284559321484704634571028036845026578481030624907418166053124357800528091118975426310843265238651222254113614209984513331324086648513939130784664369348720662669449561475853700143912641552267221884799955991969511018324498103515844016549299324461656265979550887921922198197625721662478787919142837756051157715904891368030890339981276335026043154442989799357554275224705483303267112658053062162106969372736582201086661369579240687785681977193741455370149603690033485574002323646068034845671059975557717786021412289149494729359593812757240215519567753662709484609914012704442315710159815382521876203997690858366280715766314533079376809475880240211136005571769129952892880588171582136265646139806697017475392991167052987144578297444882895516139485041776409305713028352274281927220858163261946247576682236709033969771862816597961203529482125352277127988755848026075062363912044174664816975241665576931594580232908819162610056159492724292686424239944999838253707181933187579056793368891167184521797533518846547338158954077896936867392132276700276552624111236317415016709603253204128111056372119286925165105109072329310550305619741889863923257044972243544280249000177405065951089700595425126042951872490717215747453122999001814325529981808302317397536655144134478929822347492506340727073442598221935199387344445714130338414315727023997936090943420603854906915729738633019806848226888066840407776671671438207760247617958433505503382965832377915048307570407464466090380531846880811936484023131821102050375648955682929716114134209956718856027366370889557412176275937088186846558145907333010517901199061104638889313059615297640402015629127826188161153881152614922441347199869289341053727066839264663910321084945439279666994486419714817314365354146984982983913686328211947963381161636906066505169486426909254562592851354846283623818873750809929397292498651520096881983011625401746409873710649676393228003829125845376355525864461147450777906209305913556207295266085178967935012381813547647489185983508333464188824427346218171517846908268473217325213319849408074136553653335867954542192559562508869181890291174648625926816513744147469560522497870640854181269435834656424856781717860651111947733770597698437760157169368298329986851145391035658594070377339754428105163919852279774968551361461545586213803590907427763618447178104595921987809641045969329229028518305627888352444028045814146780195341859797656068233501053574980892953953985957765474376210255381010812078672461879776968987730723272459951089330607649032505715577938593515668010575671217847733821364858135553607319420904404744231705633446655988644300122870107721316951517059517998781457662768088983094102549729568860258374943806498327641165385341692749592907368728083890387784146843772294092472778158996802242935378378613605405220009863483093045210820144275013338344186714129704219379247320950787641057320748137737903991327155665730153813485119896760683614054676611942453462153325589838206000160387806753715858809101473842939104439389848785089621292624984061487982089760507352017792419066303461097878511402246218344559297225693135790333845331000957627386925209006968626252644105211105789319040823208145210289644232025826595795016200974473497783403858683909156823970076272419610378614870945739129937207476867140159893173154972122665675809927477745051554808425594631015474741755437553484095472226309599211464766356374254727470025527091009208079589130948116335979774074252287277171050885249975894351624925454568977486182621195043658939461232224471797202835006164155226796735458308068844239680440929253360621318732307274517383168806936842262353075578317079117986559401915556116695806454182323667391391914931285055949656213792880720704099835387679856838255936063656339266961940010035292189778509678938627850323104852165694937429713712367999657763892360146813029411164173054986926573933536489927314311190604740930392108871560974881172077169705103358521236607807557689845312086181632898105357143841211135635416601326598598325151347890981574646474395821550558794266758550431501951922292705650412978723550464772836671224880817010748514867586688558068066595611279603713955157480732968273351312144049251496446517493639907006357713782433295594753926228260703395640666631204629115937290945931320258501418944401569643094177825675725180311061549730836932116924632403098699532401026338617537684890816555506387394135291288729301578521695505240369324118476970372973906379922633330219614953630313114585205535333899053667715433037673140003249339990540399801398804003808265080959583296202880877611424904962385593057271483411561626126614663224353307729289401486111131875942714562388158195504712584449355744410809646157939579725100724811367220294657718173075131619590769696837151690709398303978235170483631353132697165781102002541520335104111183451916682473428099649809175259951322340252809718078545243512557558272414922471834325115472843374432540904310298170065376723575644395786085288357380451634185774970430901713343084490758457172440492797280784588080742167672866929688095107528296378320305340311126212239624722698096074782041783502274707731045695333049604526810290690767028844985370545588745327370990625920436855865346193857549264368299867427388195019737021477396021564119585002985552015417167337690450062768397211958533148746578151820569458629076439618092771867755666137860826264268226139770780063917100383788095493637969091493599882597535096344080861770924306052272214320722545859125260040692147845940129973563089245739841377038610543651826797242131539048768805618415997915908310708923137918081062367500843598122325529790977448683065328457159209027164060750566968003364160081808587200290926647810688183924922846234989200970198396408610409017423010210633040489108157240608723684673621606060070488029350198284732847327142067136276829772436062608369625408088891015434508917300919737739412340703828638121688226668693733207655012849888380350326546335662432038477207275873498870496375401169147233606423866244137680686882780046778540346129846107694033073162634739293978532365063863076930065375816419557137774259906934941803255655353270844873968800808787253881895220047772101624539858388126113717444607145969346032956508204070855161669837826471565306811052099610306283927736279437465033716807281976968231202609056961483503211880728525765869245458593820147513999842300601730809432333407982207148408123680232417356197838191028365319531814619701367764678101258434794209777372116603542472234985602060599905546322553198702954402752027045852717086830114844949541410109637956229963740768081248319599634829162808325381095883880998905909852240482780142424593616118751894798036566329093803764945794637633750631268270348349992272851646935140752699491498495008083488878995130310065427788069804043070676388319508783938241836432193738865150408559715880309748509909601589886097640574627437245290477582635407828872129366282498910271021890859363303524067732952625312205583106290085526665601271998468305333516623471769234919762863545905115388722701481475371062248036361487768347282284179630582087339439288714831529794320372663714348007926916869757207722833256930720924358767039217204244107963753200545122244660374096851374548124337797748895604327598238842459352212922902330697012036264225396891863936873358198448856559678867197272283429958340730085253762327450347168423173717780542447526210209018961425764137981588049434433785968352906947673583771026930547901630437243639517774485685188899299206339706482118490287230369299952944487097349044068654466679256579905004970181495359149876482090247289023509543835531580106766746306708843270897744274546597682624184228407605263150318793326689741607806839320907174894326048939382270744716701186481953793969337431419750899330010790247251008821834439101983848126568257598496618794667661392591097250140135744704025343782710630401973004072467414695379515335254694574519558220028644324836029514418747569506950472288383593641571174017787236816338311495583828987012067220814938409764101002719371151237514399989042930836886345513504849165133012254795346174772379696875297699926183554979197777476672660480330399545203978904149337344781057674209817650121230362732146853677180177786674550139348555338803546372780249782281515500670548790039111499181645729973730458667763966031442911355435394067178300735842881479074818767889519894385973520884013137564519889093394637249060865972166884665896277645365966502516446922591745537129851335861099251147135471508279765804223549729795359898069642623774011753456691373337457571341092674868964002491119120959170776456678938988949748986434264490870833657194755682368838289557414356769029286495790373032988465424484467192112844692900449583334022577317391498099130289410487035172301819854723581409000501681728106093259250717822798563072081207108200596516406534321696545045601051329851893424800487838427290941834129929114763578297637528633521471981741246766061694239603473956719598791359017841643258637712552505174881597138382984419496867408972484992309940326659697126797345024499900940882807172237709068634428359900635399672616117599619000062820750538159860253645787172279901025589601321516827787393950728302903972404740706112515321657248475890935358197756340562958312281886802741537868549856915855780001962557304961650840593510794053240407929795175525355018044748432609662866885712347468743795650170646552123905478423947488465758652258801643968160089300096090443791296442526560890001669914553178411317216829041791228882164299040065223540019873186283604125162410049276786237095297189693202381943386154632997529081814729766638628826807267790230211460949924474585395631336548170210267569420774472813285849438065488579140246204396353684355539477780797304197455852890282319557962952036724305719659361819861350436259256846361788426589823091063218604296886276762850098532700518827458186546911759474710575292567615769701785224519972559542873814464468059792070231750777729138503222137631064357967556939651513436100537498427195057563423073975489557065475643506378535695888595688184889660085717761322730227538467555748798247821925843093530034450637251643071154637915686729253363188541642202380530313164421929872810265960551938671507505971187911364637794585755144258783647628270973487403730507237366171334849991263873725118939002604189549619786660388412417268058523572609745045671266770115159237445650032442926540950832959403989333089050815369063177181971021304684834247046984827138544213566033239386725073289926202437297141145081158558017038482407159880953484546702210836930733210153181926616443357947606791208245786793833923968406273636120953013116244881859475660236610301477522090297538412851606691857908157760601775855055056364713162900165192025259431316376798144937108392705697867197700394653952937485089160171619764696908831208322981766967059141758415081907899160917132761729790270186589157795450144762809906065087575208324600724243987023237719467075581638708531223180125998494733345749502457943959464971432250142826172824621868601131185164080151655476232092034735875778154880488407773346824152619672102939002872345047838628125537297349217638013155540501866861505589358756128223390157999316370313995662767576799244754246370035471134438315683863178465436784612806981935808412905933663996879814358667448750793661086268613633078419904586700973959740857956593302198007796941754504572128228091338586909494156236218452283467339728376618835029768431992476281714264062347681930055401738303725342986734150404341101206293604601278572105554318186034759015331917940468514400999143083438157221363449975117449027727672992954760395627275559389585009824130150714620434315285748924262740174415753999429338601569520966512005852976645034723162187993757077841135960482406301443776061381980046474043045354748587268005543556170684564274274012540828577866649551707225040806350436958794346627680772828509124325228733811471432024461811827848585089054860052086944210043458802147075227821952113380562631996732490899058172174526147870925050362976147416876241518871769867383812330108992571771469406182905604292366549360102969689857042628763382047596032195238819577967057349666433716380028067553450149450504798182567071142736593994970403264953546950808463306420750619318979621630033213034094059818709247311961754735178033298835593040416606461251279116806694645325420803460741603210111311519930925929596557502395233027571389101455242221638715209099832713718775350077575959492761644070654531207784341215897415582129629474199223052410468928135742411716367167524774356427755938391709091368616463158008713129352054391047975904617456322253978170817695407951529872918227196363350302237406160852434271446466168903803524096698893200118250372869189542211257941822476135748764760670517517594265979068424164332368603484232306435251224980488210307532324523926932510160434105065393750566213132522629309617435636539094890518621501423258282800976905343869839899079026067854300802126583852863049434593892943982425425300886115436595804031802647951034367760273988099320468370167938705619092508356255928028841186404430904446934316215626522519542091082247758852039781265833710502091015763849237556452307307120475564890631803027339412726834874686683052299426582401372658675694560597199684905767617406750605542494903121229257659256738654704977871671168245285822715530951341729182913838335728909454592806401786865569792471240319661749200912912124377926129276977814677585588379861964593030292914665670944187062042758494443664674662026469818930991451659032732806884853504995601418383876616752152469200452751065544404823154488199508687744463959157640090254087801679957606682256947586953546912601314146492276489351520904872580464543709310579291608719041691370106804873098975935868163004156964573056403214712056426553999915729156259179017908251001766919742708331030312363184593881452304668529504816495265172781190505695332017831850753773446601914483698435036746218441086957603435926785664202013309324797006725742104063669276888615851354411670075390832869770943383769586619662333482126411273408255414753129821606092035347485653708136938127315786994237531976038135793700779061236377509302479979502602288578097403182163725535139202485775208566198407742607880025674133494257438762275075311576166209508077255961210252546495789586723861446570161242797064416693192860304355087626544218367574270555405860722007595219669808372970703654519328278315839782573876250722215722852091391607864756018869676668179446015177809428175245849877832627505127604375503750746471071841502084689022273731969100644040598820644458604103432425689769949630193759236330262925944900779793780379483627893045835599369588612884764596632908382008907219457686736406962356611634326264515288811380565150481855260427289635569457913753693555245748027964879453630978418476469099800397254412494789714497547379781582320349082148816025046942538931542119821405386147964916351230893636082271313654292912232070144087393720353302254784907403169973508810110136273125721335179459215540041644828086191041070299541039441919919649359366752475356841029225167295004352882199688966748807105225671233990845982526551299891692482434155322619687885580833253585797920679855958589538032579014723567982771489313785003204309937764082141564496927211517500747719715483112291097566963380080452789641155665581308470876587058098287832251971557191295058122712775820731356090700092954601784808654986470713113179694005116571387626494837540741308667470960089755597083051619647984786011437333846854307661867714939978118952976454808463029058877878684349018393986989247755728687831790080068748029526153085109246695396730947012801996301243537812253712972278735918446578593260427034288705877249132427606203435548965760659903457299200981797038324804526219511703072525197118823524083258130837562084935084583225546763584571885311918489650821927173001317555576602143240219819723910773702906255735495530531968037325709471981660494945041097216677592374875405372519257003773882201925105447307645497412096856218517251823180969938015425683965136195969610298348882068005535512428241297552059198575952266830800114018954390738261121960962260958458733590303441771396381350789496562387157989462876400051234196225867994693945584622897230306016929836931234259104860434894519165545333641405122105751467320519743717791087405440610823874363295912997673235762496567559922795183671977590960075536283766758200578787065690652187040531435242632042269156384982638900028819133492221853440944043608389799819081287334902243723459592197121906228564305788443110540482785672107864846308804047123884496045831993699726965304154871190323744974348657026808157565473605753754214427850604583399822267299808788919082201295592988159546984320147561653893308637154915456139390957472055285617881312143571615505384118909212756303757220416445221916866719973146191439422986424549178965434797252338501686453094238789741237109092233533142356171825127350324753762942375256672680897759048321786575167203073061733445685673766806437230650867388101726505902412657477392880526452791460474855176344709254714765032599266420816378935761718558097838065445528067997638149832597474193135183080519342502565807128029067102593537399629640604425772766322220305046749112925850323472228366963824120119786075081516323512274677958950126535283692773809344644924194741533501475576597808824136637035215815009809744326127428483505574095622488871113972609322799903625522839376686970248902502332448111230802236677180246948008347744280895082850932973693912700014197775966326405714807895106307337374958785816094384278584618256777641126952024099100110724090022387597851940734555419648871955251762214283056603895515352917033196303970958577866064445307131439985942787975261517290106147682084119370379616482495205591910323938716535695356696323072961375401877507859256691479697500296417746997355242475735220752529429664284020355354080176001301291711197979706139962293192610001816041735123828347321079862522674357519151730364038284300217390199253087421859655586151285330783010092786102389723337474164471819014598000771476157452355553918774780045808898689755501560026057886787056167541716288043818391066661525558229080601159239423040066669458866996226352980215081218844632314084705864202639111879370477548123374723474915219365979562459336069825811680069857186379078938040445332730534924288350885956497358802534130729771303377263038606915620489502154717196880793224972734783590434924828531257490721817083102998407244861893159130666196452961810372982579710758460925652992736335803431845352325897470644033545743547610961957792517468239998128080868000849075037999089336288576369398852738834616682005404531337369261065701971697915935477583303708270997592107370205621568037522746812169916779944740765199306521508708770108183093930817862117647024051666104275259145374445951334115940327406850612516682178182048978578400735367482747891638129573450508209585775239612189143390208004953851211368105516808085208140770943306293205498303494080611960768456056048408908451962802876800121494029755773117273118931518045360146726049194011016546529328640775662856521884905811707467204309828134351919856807616662105744060934062721690685890328005557238722351082666685936811351992462315149777753776938805331091822261100987971933425120327276118017252269307766873009712802683184155269724172977692075920829019232224504209853742274923947387376035239259260371812009000343917073295803776608777070570070567455620101340751655175864856345777534305815900976825358024150990069483237175818867924504090303796041450004642787749725483569500542952482996395185637146848228627779319655855176114201341132175616577240103348651978866599417845854616728520266311116507251838009054420575762389119139026911475750935426131891597385393648244274004002269699144927791353305890333331903271941736976999491169794958732707822519712790312843087307439019334181180794827115694045445253892983894989941139055564966602776069073993234691900952936657543063144876283350655798466259443081100971684203595478036819200618304138015895902984786959332378001611605949152516904425574249398786151304618633108745725195747425449839072536020411931819692347360380088131176132383497976623160207548462050218474317555246987188962203796589867898585290636786819666415111480386111870726397801935244795648511413207275939474068869748228758608527542550513650307627809048663216117740078827059654811432976116303669868625140397000357075134888362476178588079348426894251022720592585228577029599466603020079756607006224950625502556289147402548976204108567198367226071508859444222173570896881760534500975200223075098047949361515527423650135956353100517133420923315112461629425186976701907385067581786749219412499045770916012508618931497218114171487129830573167409532309646446813142137655778790310923312835424288116775034240708541323142460210981510153361478397082031936079302196946283520915784177661021120131801510589832326575279404837802785979444046862464672908052272669480614705253664253951373200293319258674325975458864616526626883465659774888891025174596559138482899037453316222521665992419072544603490868838317458112697691152180096801902133059373193684315289815899090513480903229210355742007517033807290033452014126220074057162541194783538101439636922492421316380578204242738113450827027926654324366497244491475572315576389905014778202696860426396629439399555789713897640283787917420693242908907782129077620363607597240439243548888376601704978215012969778220908411817610981471118688144668669365704264043306731109570751335465089521534779945845490325991994438523796881335638160478555129778562551766827492291330302440843696042024339328823987025861840775501562664131810798376127387246161268181035804761355194937688038473240613455877872684622717005495019376955822755010568024456139402831512659565804090167776034508210238726345275760285415211906758826501967124635271387976364500399564024821019971664480422682505845983963652044047941650405357767960159398772041702502126229383074054801142341324203678606159092544492442823039147936973806581842537749888170132990656487502866353575660896230531506353675383613600165855334064053489828182824232010472525570610443062632508631538566148274321761099291915398120919752724127912612842382939659421869106287807922508309461633718570636783753737519750957748630040366501382531638911685199715041230202628666960514641232847541222754074938943075793192321677795884075980406951695007133946872337789452681782715168173663989566703877615380319157682503621467869988397703403164705383552766554696946504104138006283818786667572346899413236981022062731531815340156903564978009554867129441457412806049034865348787070474364904263694454614274688733643466381396724513472362544414186841682389536297404028126701015537164102926237049252354813663346421935154121557743730792658805281524927343169128564176243731631146840960920964801882719195738625808270205974488430801238440842900671627931604221682418718223832690812671904455315320749790915293670519482369200776653261209008156211142898733175930828142822144860498331000779820800547537948867892592442424227035606814554329375758471117089640295287066720936386700511946996754341955677203231964705508663227178461349893095639098194509256760543145079086701358366452090949536446807010318061372815514287930000267588462999923534806788248643400518825429554308162711070397217659351074844055142953557691268892370281398236776110863017544555125045113085132504130838022595221378577153730736422686685557387573086541575342518912680944183523301402207348941327568855990475308803972087594585880316415950423784127003092472522851662905815459266583385589811617241010573482771245817054104728285482894262888942874083042358550567644643357757390845040087284936410710665230530625910038325036777738642058818234112165968134359927781112167948454031764069126737934181191135463652098526290556980538384103346527781699981803813491235234982239458449937921697718788625166649596821277780912111814081999351777159965826345483887359709908869965875307987864303521534988695235030412743608399705736527933661379005401232977885855326440544949271921108819115599709392902667088019410972389773389860011441153420188955363955360538338728634552901353716293341781234863804507498579344562430187613217196400655853120751222912217941123563162240697308530487165605496588560433323851558288794967484361620209805499000467152988584426712852229901108344578040721809447035466022035288344635795846450434435186540707438533048836897535424553423515300981551455816355532187143936780471761051686369664969003293967018030451166605883356895531018152232828279468518752316010065838075712334359920858739730417516188529915347344490501252039382060359205231070608541931044472407953480304910781634091515526925118583716403454398552699941937211452308054742223262487285270246319602146316396519953828849932376811892725592607415775874335762248571716585968942205872394594084574966502315933662484479046800368330388473353211879783722222854376885050257381011396795306849217516935851494072695379161633232147767710222905735467035564066531425541775837208990645836369483321319003097446471938470242656001378835134275507783324176949901072482923100672084338849531690622950920544946432163040732308507969492281410876401494668770161131610806958241030819688091096872688032474926879470528979820531439494611699935599461342916509274143026315291100436581439251977793294333787781148806105087538624627977028496865587564813988391581459901158309502415141564167138706948765748306495875854111189937490323828231567258359293992426576639830599409664733782573803409827333145941010589454468774204747623106815891233263736625709711008506335841938560450943737603321121477044545429554724825056320645332804340493884191977016518836162989935385184802168856634763823595481744102397419886646598053371711914787292118912997387873380354474886384818371912233047843056519472882763511847963612264190773399306602372203284199938954518012682652202349778358437944711086775226345410043065849830365792140119507802573123222840118637657125646778564170406447093139218178232691063078697296282364885265914056559657120500078378393008718817910873155261332174472561274596603225791224181407441203587991316251326956770392199123027609782386044689439579552623295836661343692108387806644922149202692732439182297911972706726755002662557993226102967831870417461844047234055252289322470699358073352225127495331611593332062601983405827112000879397651376976497202803089574603415934058393579194408658491443032677362733809557256831262745385537706934145224866890111280188661584456849530379854518335022968582298753390358161954248986102416934026297819478431384162456456898744842832299495249734994045274362731534181914213735353137880360054362541436726724215050751320089710026132442686999035750290706997401841481096628497500364589155889199047940137815975522016627194756182411207676802431769271935770111372934294289559198691857807660703711877463673735225865428935331637486106689422065197150148522555821334950205574307655356710166864807410903167004321493436997449273004402807890057399329693028110511875651612679132577466823807852207577241410530652634282409173525491869045630815951990197986346920270901678692509547485497768520621397408253102264321688151959924982614717011225269595813267719383099291870575958194075674090621122863487045986926878705614118202103879039836384827444752134229779660438194424219840810843596486551592754953619494525806025051643247630592156373939628902433375413318397254027131096383331138360399798333880401833342643090414139050746930404697500645750714850037355156888724220258159494831011810974293103567755755806397331924981117173194838835282861946827389970432657869286844392358149623798657461162972799680328598305031930992318952701113639679608594048583751237521398149176542174205095570348144317100863875057496098821611408239108711002186866263023424821868184648662070611737088391850281389178820685464490670972705622408802335017206677018053839803654907822154173388030082174281709617728189320865471529998728370734304827121298157834113616281734520188360151949287984711951777756242935954074487347952259464992482933086764842455926118327793749103527232381642361499742831264661773500591888956736733299534467598280674576291474234831958853487903619794414077052227340444955952174508904157573709862668699703391371016868200230931411358211172006829353474689712484037871204897361674356935427833715433521262519776346493202584468397135798582418223593338427347572564932103550711518385588511862362675713044226220819949077165201339708905311991190052917276172428950502501294010590982669077091191519117189065241719704788843170952991984262157892761239921198783550997225620564374502104191540124493774058116846884513019072920424561577721462211062747212998953697423345390647379916312557765718948147010114677785821989353359321065003283283683909156030942746260747791046251991405196194899564253139492504702301144477710425010131015703809613421525653330100925400158947941683637229368488719044783141160680891602088003414081647834914272362068686297451025308561118497417154467775363660856450707870350813478137883308793882491651721223323796521136957750660076894854959541062636094135792518236887075831331396066383465890448070888880271817042114225123651875122096563415041411647031540721242181575638893666603286549873881763336108580635844537151125468797641659658490048621992228686608886121099714483758198593603617930078173933521516766990101124238650214320810292561931392717975125098445309324472339810192787605224279308024626900881506475809678228737031406167156460527854545414227624828207016178669905193257047842826750042316201270328932450106498753583864410032865475666250586574572966187120266364798897871395432204830451272674479987307137497192448491422354820574834280233001281776381596309164541034161883304098668757416729603216916407995921040304663394987405269860291438086360424204756289776167516401558715339318711900063138280926629369829091993110181488288699318898268608948079457262648329785138471856451196452844436899368720510259558318030479971856268639140900232100150371992072065762798898224813988556325716918850676045876344209949712242938768766654503335194664786684374869634666909323694404312587167301545708344446065819338970700088185129710938643363370541523772333224730570023392713988194292703603825075189607269755119689584914799165770095498919587984745270897599110998190003359804120554365755049370907073239449519335152662516645945891345805762800733787953638615601079288028007625856905198989504667553732484456045981113953567347786190507370569728678631897538284066870332732811453079956833765236831891018799407256882596688498453147610458274336569346236880711302140664335177671281546143269007850374564645092484162413654315921372453693633521746121208041774802833325563111064069938273652321864707792558219387308039629325582085567349606255065564755008976420142187165589004276669940253669486856278325619271648152970912405569740714410510483675551863286916731810093235699863145543755379338355804521154595313584483538792769001213426907837153373440600333914565725621151446392862825799214633435721189147572938007797051991955531189856027886434252929652209063642667131893992700999525790320026703434883985230209204904993942182278868071531253319500539909027590366198613167360558732999424704307624286318167913395164477438000462693363279306635277436812844900055236924965481080782242801769158067016526871865905636442181843642645209144578343874387466738890800308600459491246498172880263517237451563687561826361585461635221556102015916416783839176630275739671765351586304620794323949730186119977831979909712782545232861033966457234355563906405067189193772921426348132290679184807145147247587082500344744044278895094490302423640138198310290335023744086262163496124213452100750698115652416303828926967225953853507870458086668376835226939520958439089728545590311268167462668773602588622702174484434410827356902759617727845559114532506307031994840323207461073018232211192893591256111811897911950004268777334968223638042435094742623620784551953020819743157631190888586919419526869511786446335225042915640967256651779119064562448277642448365916643086985544032543120628245544087243422458030870201497152648941209904464159959894882779621749894401767526046982974671617286669744092570594608848385498864761789630830685773433814277091337282560709894094783676740861565244077721360356202941135561157170889753978867378661812781044021075232718264780795706840110886489766283235311158290938277455583046635274225314733629676002094948589951123830451898991206274624311837733482238964164086786844738765655178228842213562476556289378812367584857389559073495031982220890524181824624056633566231544937614217848003590317693678510875470195718120485732827868598006702333180001534433264155441262051543388356218545945836637476427273359972447074621807408563990942946552713697540567275180973377322536084501917225102455185912659412904535915392553310794228987902538171541133778200331858681436866310552787517749510950174142390051491857800733575684793472038477088865091159184959172926318229072090192437543739163613132029967018625134103200910755547223308881058901892134196087947454901643637094026762637618961439774952564911203590298708353406059654817821526732728867279482340195472695715227334184232465434223513769028480434692548024868628315696307892980803522522378910726630564279870554264737303989582967298322505390102238269006078416364672499225409927428207494454584151342781050055687095766683561320887915223505644356752549684481345664878166042006103099812585793128803703128949814439558787721746456613859535857488986132300743959809264453417434720636479609426608068744727034224980149206992601047130904154031063992143519846191369484693072249513045346450786548947278393264092219836365968075842809720022199576596823020757838993156100589364484413905869126453850451346984684408485014394540294201697875293097205348010182010009726146249591856352087620919511168951895550565391512633520707427366424371422655790140750358453041427880055724079403508393835736328284184946443154849593068238663982177196841704619809379762882040798956149854829745353464740608138482781258311347202439368527742974172425085672659963482163436548661950773137422576059133404533330904019535568348465356423500464182515674531393416209697294160332450846423531583998178693770938602824151104909608243544685237500213268201169416726080999818375177886586875016491169267045305102435489526694255255972596758576553537279935993442435118913476790443801170422653144854477775733585064204386174032905212348414546201165464958200623123523775757051236217511801654892997834252432071394135326727270410349732856425723324918561044840920694029089473902846548534947062553630165944687411795728829612226608088829697190134381745468475405041118171877952776103325957078788527411301517766280914197767909926337245585721497484334166574332932796582049348963504434917118147406452906493278915646170414873599071284584895706443583348604378135145375534623004717929076916271588454757870895758443057179010738760244598886007803472387475363828230123270224323611010672692875714189592440161780014142931012066436321588275397575746523518938811824474134833534675968174227450965845423182267981629513175133969318866018060991754648348543499761560882694303620744719285069809863495194828631242748402856552765920554959146653149194809527671721402873625536816142415487136904619938835336944291071435632029018341392701115961121428241487808388095594237605988475982202039640606548656926226170917987985927293633797355042153764161180130377256674824569417323634220213855179265498209797739805410783324198573244767540318797912150436431100500498590325232639145441069452784012566729243429905742039486437287072539481233906046101834210973001615569981546901288751090781702311295091517203221330523288701266494263307143939698984557813371561382981400263286909426545872876166117245722090990372654237371487798650928055284620660043780540448642244830609153738916813738686911306341672746559394957499953999707876469363538634258156613244739449118593111397736494066021538341953261200162700026793956620257295651979377687449625183349290033871861939225693688633092083857665722042575107141062562689323838204135839460559723951321178242146359045180019100235893230264147109329793942995594233159403051563438298056015235931790524757590783167445499553639040857363665456758608918701830395527946650099535214959811922652193302492521320717080193735252126724801175448184644266570577570724376903144458105555612903648409475338493043673111661215445855435453237330539245562515344971602354994897865300733761102461181138101342234179499745440410279643039942726243933810981846839259686039848691925693548111487783322373962361305218155596422999018806687665788186897289267538129395845706208794655909522873928122389573949624894791634267795632721961421230928859871430996625289346420964874939787923006835610597174516867030787502438676724253115082711170806003125092123468227424816939670714200693720248926081853325956699336768313740499135275810965999043727407960318920668606473734387679438918006809562610590326296289700923695962659184441919687267531612208943146010257125922731563255528273968147188721062401955290888493258327921275811029666340660622799572130205669739712765561593652739556289219899567435322407810615001506192354007862060614601414614726570305355144524418637261794011529604531540452697420235863425117341379884902552120004837040268792496928501070846281932861536574614429478718556406236272727930733270334657014746499434790516246274862965175883308026991644891216598464063464143653985971069673897225016183532307146770558466199343771986256670965248158446506570812591650097717803267736863212861321801933527387065452829068656324117882262250522284227157341583935412939772252406412035104324404856983909483672398807127756475795705163854756897358137067265980472759330589794081022375873942553171660704431982298940780862568899829818050893582518371012065037008685540632152242748260215561859067290403342405410314334864926086202395266923576168361261226591428487518485153240858600931501010991141091595872499917911315041075117725041697808877897798494539560951438639060518486116708348607258010927825664000688711448546666499113135351722757346712135497993200448944936230482358224265284829509146111341579220072803503063382345458999096190967438284792169668833941684505572997670328755482926842582359204080887544612669271232954912617555591579944448368121369946053447875663516095557738885440170494330378253609827264018175084902654896996369653520939086342795244856149305677338375214988223578075248607140905072986844842398886974271981281301756975370050725614770196913833165450147477445244554594101616278635707578881068706837099602482455918890623206746115553222240302172407572399472800741570616063620952947743248080485904195879096343511533560879612754039994519036124097253723052869655080690676075929217195912784689980025398451633592475038099446922149892868648132934131064210164801643559059712728009422965637527776148170829786444392962609739841330563347004000071919528064065766043759719699286373185880189306498051093111778929582704609556068111562394428665614529611259295812216997524017652820011630333066004800670959845324463884610710968333895711727150819752149827409743561603754457709298522196840214232504511461939514544114442435564716109761875118533887121586905835517628532782777860893522372986677312609961775755773048873738796171312605791990681739002747161594533105973566974097977104126790874600361850283404030684048427972651899358766759166765428617551284704145973444733520251112771417176645901684930946781937952331969978241285077863103117364464575535589248817024110889468820077646348155253537640666498715209882032428861453513712693736056038910511485354750160989291117505732846787950183509799259667641411799660824500576086887117295412289721177029562245268210244888797804053116232564158995491185035124681561102639397360317106288541521893654797378926946907120099293319995467977682890890277929905438072428550446664984161875343537642184651375397637030404833397519908019319277798900800392810649699743244518178658942585624858844725340486815339052027169379479653926469551889880614219251787331064824103573449940512682119008796927697818044993455382445895123589556035192647736886986301140084461728937457752099321780957680040418396665411967808815816758405697707822898637781796866462860497200164000438846894430610754699291174693664807909609663613192175777301833090859243904974645800543220164574333373504680502441200051765691855380006562557472784719326913533789708128113009435662089444355148380234225235952785934842743719987135882350957745592375430841646951735153758585032362094253895169073967648198893140512588386429002032305139881977002750250375985533251831493922134628484721279566058624101757057637911488581002298194865726289901571026010363919352562955255364116993097042230712544425840157879798709613571019800892631855501803968091284066988323044965563379932199082296617103813801551252134759955262117868884992255551087272676593785765330699988492699457629095702242661758991734633564112471181574801663480506648160581391353849831189695068888486839143999011229629061683105249105677757251579402571139183947218619957486560452910463500425796764656540110734630480635565311360330154157841484033848340585947968814984743973737808965889243387538664273302016542205576814403844646209143347055320715392323288726838005942958450767516088093941326467375664862695296326432562952463858243518829717606166253094499234621889710566315563983630450540044434678233283306933341003964250045657317942083470989017091636218569324196697915956646651044955116420996984846315473530847825250308152988238652522970853859265378083915858524058087099905929943469927893527352157053588596710300041547103800478901833159642777373246784510183420399932496990202975416518382590135753388364994639500997841923076089175606655974021018317644288646537252439457417969527918211759556553079907645951874283849755737553656687330849783907897492468778057972425610097051533816944035991316187049380982300268675016187598802809011567351360547280579784945087241349597107360275695527286012365953191578495540841312351228332498677484898979742361872128444046481612074224375598488633949629541363162647891686430588914708271829593582226285621976917630774486702376227881897018763028050050946673316738253699592176110194639338349211703843221275811686038313287765318858369043212271159783747661924792434015584927393331047744074746793328569074844451715480210504514148645659288694254239121675169163749800380646177032189500081830496865114552181124694545594967318948198465019704993575285425949277516855909372393836171428617014571125313124763269017809239375003704479608146774398747623885693168416991399746653501709847560080253102268632320804082982260590653038874300398963634711724615581834621443261964606073102985893128466457308606324432105246517974414926345005725039042256389912975995821241305653559548759704424770820727849070163982197736485046821286544457987863137000293475021901966542409133785882091549909586322926550657486941811861095220930486997743301335654851071863633557312639396173273570314028627188127984585006222552925336588923681203893850861471257026522579318801073336855827368015937495401474998211499718061501346323799519832452018979113902847796318052192068496621750724600640061198214615582758577616365831644533760438138868178145580060292407373086518438460821988174867352477360803985864690892418256966875284106128547565753337698929391147271475806190103384240239250044966033372205006900774785485405704723835991554280364331040946511272327977770271804476472539222351115962139762472246248102949169557092212323265522964396035925582639531407882394750296842847424938296307477699774493518939007350896766518227908183026613802699814782574862026324233511338530455501063740134528336768559390643953362105139014868115597698968303784655514216835937260428765780012279283484771593187824346348681806485000653719343726015377919276647047820547354836000706170519481699726559513805490830621520652846705381391406614915974036737144514054879548354897644805095472608209945889053331453778752322901880559241381206538185774517752105709804422985581739190417800903708714435537797032684096082906141781711191840745623522521837885574715578334136497502652084988128241344268863318980886388984708224049489586616736337774276969491127789460033894433877224253341720132098486607069568257051922592143019012260965424202118052401266567197455042344358652933324997848485636327953377742707033352712746438763101606139227263412292122620045382569128541370276068894355979801587862193819667486446319696939694615615997156863998163386557427087221615288612456018878786280315497239447308462681181300040966976379684146938873152736273793005875137318184281717090268550391533324007018792952783531779605538844116576746715658627482355115485938717879037081376815341005504443467703397521496697622179032000415163326254770998374350368330431479612098932783448848498106238176647496785288452337593830126212097756514539113096742926345539790762465316021139010955385126433685972657733662116214108989545900425762773973437988251183607654953755235818016578046073819041509191464832444530153725273733309645850481532392702365066601195184060289087518606931019741786047964520695232389296872017283539790371433696187708734724217950480666146178642141087773474224890878039216686215712481029669939840247088939308523009966925981350238311621870226536449320371304670642759380162852424210294431846527652042226189989636052434626332307978079792699596255769357098325210265073879800284879101799362315506392611493252991758040944563410035644477598765775588644205920970398026114859604171999314634817949916699221889150889245773085510646548272420050208689704059073549834500951040235995429982976481424435884234029948919469284911053390488682650324002595014745003167700553992314226940469653822473552276878792186506490434600616840476771680170269085865950367411240345417380505069056121854509035923217236331058915746676520573619681311862315506939422380713584218498304664120291260809833189089057003798285216194860449040208292846122221883012416703462989943002100387021584403817287756945305579954745965996494080673426413554351189243451692162641864866071462516477257949122569455493618169857389595007927798809303852004926768311416766782494403996292857281463676597036583698694485998682610186900805775931376906608537225405274661898642798691559407517396859511936635750725822463365036226439272783931522505447938201945551624397946686492777572476325158332212769802375546160262233037964248980909863426013890550815871357005024812115196783196884427818800602400232260947593695200412534524030889098097008598232020707007989398832491869758749053613013570210360090973297559390854734333659455709633782264083858589570809614357385238067217311304966984047724308237655749775501700109076901983530256525261164854746752156486931707318157771936304133554624015455580570653699818557212428334169982411679796486803703251418681054408646934390559791534245933628037790815085855849096537127328231548296014667477232811136966184453270053551724332593072975129049307852351684130341509472273828535888995898408278513512546778546325762621633153145809779458831562026307749363438919685556128969004107300602303692187772184416953025736433306449351928300829901551289460223271303340285218877738114631307110013753684778367719347116308504876477056428438363406444791841217824866703789060997787210149716641311456306095586806527410086727557862407374958525386203058054589111427180278062650294066718055458857326763552783894787769790035185253714903321777475340419255112467479966031611608185009422888392645600502906785981694479337999374895090925486424225676813327019290006140106570227801992254563732680659282886273761433666535941064997880832363996931023413854172878968564002974525311626501529027725684065852810757708681663483869246852216171601600993063224467280688637572400527922619358015346767036737251943972687774294030169927554705809482519310585163014981555610530225491697434641346993019601597992709354333785945756894389349585569294295680807643945169196720031403214057240447434499386974488165760013672392040841069881370218312498608255919350849294647298467329026885657954364761397777054054392668670680769673747785325161056193938405310114381857599093687629459758010442808945132055097322589748649365598417392595484670639604736352724099812514600724364402364111652191024443548010556309733484289596703776450108568104657343430236149225116859688478479915470453922931273264617249157027861241665269791537843153985335724911912907514159909771063644819409741364353664262314570668029425612317850252243312287987976164013685151552026530874452310353856971423791113116267035524348308757296081677847826148710756225627891406670529171879051890053967250506058268639242522702944956858916721995428822177474610039352258298520714130004448371976465435877552586729766422818519948928539598785045610505765255352848451016716377952944917254680015486931145678536438556971209470731445726859630667547121301629373409349789458077031768750709527136206582162012150862955156428191920426945537888489442098542262266357267818889644823199326958833584419632537588993105942574239084894673188812682888895005125215868452281089287279489459229778061466085340760192977475266912470527909185596435773506623688598566156889714946204205163188234053615967059663725493072620704267303290924849515618857486647523139238533091072407535208876502936929160430862982448950047295927631117724483072316727327195126022694205175890316933165359826399639598620428236807742213016171311934742764067504388459662231262791856560967401653821803273117103515932399491606691977717550873025043534931728094210943596641497814984324667903420635612774574127378718195377774363501936635614846297734571214214129954011002041222713091569130563553422185203465277166167958236767355011500949352494473384332668083827433936830777680159321929899024366209522324937629044892921035756951403480203097732729849470690194390068255925077995658279939960261528722153487613465053463294914974229164364040191611329229274595933749248735041706730918167773390684845637409518652751598045894049679478951386502610177497857200836951836604712827518070345410696512809227297313095602425866174852728188859142885956636325462788585890033104335297020775718895088438191274722528325902761649701163282993916542585120036409782449594632283444705344610935884279505647345408570118161890247276231350101960550573375273044303482452154146861245521489226731539701798231252876030391717487821471390527002437732704170222793089315237332733213894450764080668601165413756959242641661010938238024524168783035066360712688388659239283361309722080018322061266689006295273884059055708583662722050853803235510461940566959233135878590124015078538146159822516570168593972559309284387430801231795770090302770967883046213609418739343610687429238818070584371574078156361889125668583732446405913192536353233353644719957826455862570194229677274297044770860074041172550352393814955355651022506807283862094818924922993409687702785622394209648061068792923899093208460820345049564287329787174355573705412355017887615312008962575279899330340642576095813233352444550470403833027473160924352183488394977200076365472884827059860943596771006231937240734490743041112516349926144778008119854447566707643596573410398317369524545714123325463657580009132889439267591044952758374367982293272269702947967252950027375810961440382334206292982169653122908242373045763617871984846321487760914479952684160410928435052323521462579007461409692509834809410115800182792081798479372898547195294927607523024860108843710343999758250130945400166604429071759063078597419358547889283116870456888987964819818629752793351763000117957756255595071806143345979753506148562917121627314434776516212757329872291492479236277570660376792210143968658936915085222446350920290402976514353477657975799116064201817195959576385341628865580019641787046783710140330451683328177466923004735865822431500659464048361641104341777052625742582994580852935966293619112845407075866617024946376068857069391446100593831232442183416564705314408037840611184296157759595499175326630469838135139520584222477025083884120174205659750273030673228841449543213625405487907799510791245309796795272694976497548883092051781015646124989981321694413093527001487793405196246903680724819799973814435556530735285248038627403438271327674170872785489017686590985398922616571263345194449191442315581815810832877907537472239116077595313595266174752025065315824574803254799026549183649483521835798239573670837364642418776514284684146503272797785215366821445777286403223744038471048429953200629353576369271171032874569325456196133950682737152373628503609990939308787601050216391177757554627028421199151607913538454128889574481490397024819189537329502103434069453054174294537153877393921186370291750226840361216352748363185062773472028015617511012447079054355442022365730128494979232925080593367829315127428035682744058607078219767661888313457462208462370437845662832698186195189607184258020573890921547423468598062558954458111537965112291423876453152527138665587711070640211740250887152854058084346862319971726156495682889680864139721851204707415548751021241183666454724730591634752615004507842018839698921953639714311456395791871585774866100213966831258949441697331732596585590696142066422768934835079613268777775876439460835351431402878494178265816098334858092528507649097701078942009229920084365428704934481155886616525269485419275533232413141672928431608741750425366851382574193864672808747329283319507998742601422398026258297201439798032605418359801311542476720024118456786982179408969417331379323884109795633111957609543414716571792167895967658239534700991165764204340293819116005144504022684430449567435610165008509329155491935013730207423235371980077119254404627926805378510311186394040125302843353917677472113894070034502567329981640024840322486183413629278790816036311284708656983987689755736163181250365083430301201982784989106476956796546343554439385453042917966430881612210831736438523097535399142645803624537277665987296306029569801568696484905460247282702524699203466766445538040654465165017725371008261937391082081302158581303388468452435844488853197336903343757351900591931355361792520873506687009947168441328269650540840730558051578968048229318199199139712243991006691492943312607281764947264877602049142843967498522217250397393177872658065820579091505488205874925002565408284318264588576991987288998731232108126922282581225429092121639859035714892303891088331468636526821455266475637576120328707805719552777736966516018330624483847061341054819536915128842657646778162953324805144689327006931491447918159946016655368427536554883505478650948072146549755747365679424456725968638111966745278755397559776059215786572213552176807167576116751250333348787786542346708408976398419655679762246037449225015314074803123786683705123048278909231787082989647717407233877730605257692724439887959558789971820204756542030567045348892016811868889092686096479449637008758924704155685614478952497976156816926954461478736246095382415003799313415856432323330861237716574625555729439222402801117962246334399780857965559046369347380137274372678043146288839767933703461055123325312414973306452320560682382382021693186473876477782845630512461441800803576101278671654687023587495512964302102499281810259209945041032497982016327188348641333875581877609785423878436576533592558614420752941730139221203535129833107390828749214175814397022059776486506205778979093840295007185490298970481464793549599623515751502885205078654333631133140761041587409107704757156635330434308181529862942308088888262158243542554850129094779488917336054587958067097986255680769340422665970456063773144721899052125845010034614448989913885908148251438825346376890945990126230701304039598953459728643635110701575257498991056030451061270370434786981816531786305685493179792109633226010323157040285463603055680594084210498512257241005162094243987418572254396249414196401778337855587608601460811504676725735570372997790529200740693846741313961766344837035010895003823343901179577914147739002981480942868816913535723185578377244420405394152428578656855631042820686903828325740093715601630252513360157784743703517800523419217057905760545047021104199629538297100246726982144696986843218780023615767786651380083289075797917290303933195536274831626509322421015657650671290747293298779768889932117976042839811926265288238074677314179068541245818018012854573505834409662626250539769035156560197364153954303687744139433334137064327764173319365519078427050551416432717191738260562876596983572398286697422795874961276224285999719669377055154075406171601142807657981548557177889070958469528498451353117142971110579891247902673690214237321899036407146717421557249996648955650273070796873462721863634395737845521187079848967568026031048975746522231982439267109468251678627272126121461586249194640702879113352509018645583624899020214972410583971858018677918822450050847225630767650986671569603358479539220953508532450023861651663065743052587020670055176228716341345896477481912873167400278010964353567824311997093229393431753684132503518426033962871144154104385168656720771710872913871018161420963376595652471962494669114403086504381741751696459709382432129414258587241217917509425599368822532291769188703894623558195911198299071815829420340322705164949876165417430448052856455586832044486374511449178839254582785317318777537856418611370613525127579370611523966450470300300950835584819002644571261918463226307312732017403984647987446689090092797313105630394872523211096178165363289099423877546336666464525434933866061277683691331813330036577016623669499639344258899418138492822935228296523885681404189405098019443945252935909534493793571690870940509627511673837170084276377329862717777924954297273351175149990707042703986800837131793075703066943516796736959265250318468152837931785935407209795886504286995668848068410373307436253706867725520144866012551234427495406646213866632099766903010665536521041324509351964171769257731009528371592846931232151513240102754553642601254985473977312799381721810633183200336018951348374546388156865269989049834333196735665203122282359284798364742056055254386472880017244432515117488652716509848402860398152000352995898779535883671469570240537591191564464072545972696300646603865063588345628235126015486957470415180348501697707257796722889988979323392050103291889342060016424893083208768811199537611639098450514833277254278706966384463804695160183765265377038450956370097337997724799439629673316767933183784080420514660631010807513891836571952435203515828501602553208432207444034099030815442888779867524722065667381100928925635690465244564054627903811350800138599365403784495925529349627999606717027166356338160510541876063044611347859509576400235833965312320287220576025081321494692957719862377406100744078711237417184814012804059169795487185905364978341169701600217704382078559980026049166790023783098548874731238345802396274259135814918916094197024400895836180353054987264622866541424697747668178215790088906524232330490530306189684912021134129817162981463185155909104145414404609507110175687555057874510335460768413265556340767716696138554237010973929749550830909782661856984112644987003436229798923653839544046255835640166200952563281573377482837473101896390534872017985611899924286320650292691422271959649201742366266254864211223620828836997498942858623136447487534775164524197138438015107722573669019543410580610945502535148246401046554624447119264576413600861656099376818596901964885643398317430205933403731123767328487647083532368449774819927072079355902785837597611500547075569843854781758586836410327807098091046414078616902616115928846718167147173771079512558617428015958336138404134986392446432600392383127308219190358888873893750438759126651222721858524479660343290169162589788708893699030682925073847221982843924345338195210899505012653843982613586741761891309076115433382099966277533006917917282549393843686491661674928220719491893837688288947357285751985418056444106882397570490646672378073271678952434513697806748197669481704981632516433399342210307022655279776776539452288422790167697159557115311799243455151338550999117230999611118763530335740727342758858060156558601000794692536447026147749666381093102700001381297900152066869909016239779315652796431172402066949622547743532523686294998476833995030189598031101931914403761919546520030698117293887110230408603766600594030143531910414471749858652621629942038646525587631943430314112986932518014889322740242723719185168294613384955295245700436687942158450092460959791988133991068700145050051200817456048966370967471102057875866463232065190185725658745072460542446627781673336878554275960958899018123883987035069393605138467754906384628511285204677588520000178582881203767457788090891685025813015342805436545418335263376412021011474953530590637825899201172071538212411194822613886264164400228953420982230645061857936585250704203831870147511592301694726916825442217277848905006530114368257799964643596239146245767390338011918825436274636545260642287479481628732612898903103275748907929530384174683020732273140168325165151698205873245433293527160389090693570003982167923538062633699126199201924815619571148115024487228833177206977171340624654692401875570272576695573609355491528012815470133499919499760301234191166989541277253005939184474571474361896227680375450532975862057591676296130002988454571457305711358201039372449413087822591506359602080419847233683377511106421161464321401812492399294462440270686450518375592550333369488204865542157577216725038720235542009182382675413640155780279637198776877199482458171668272248197341668925253536560631135956553624011682948908629800357476279811925870838092326058549137005413501144459479638680524853954833012820403767038680891526941474639384225708052637442744317266672632674987110752760379993000083725682658890726079867855396664024862273883299887880833025879648450089809917916556866980203148795119150554900767561821090782583693761927945168904573254391985794625791832607853730365628596858302073305640119008139990447362033405318663465929588583034208784747951198540456860521392687382347504296994880038395254551417639755445744024011048024540916342563656181164978572272732783186023268416458864894978766201042136016912482348594383990980339962498987457154997596761044761081891130091718695609221099726895540724998551981912766989628470386773916212071476550991417905583392015207966287536266991051161444997369787033659075155991801365263715511142300600386556048943074739993735388101171735880498687863362828527603775724644731679781862308196958980113652998301169493630539197853424236289421386913095936777428747944437675138141700905205244102716566745307470099199230514041867562182460280774894009736017977827142795208967080192627044788565707831056187336410753766068750114885132483296113611623954430750612858711507596348303813651259776715394161396856231134553049937002132687543219386041385982559388639507924133214485073824018444776416275764293494560168874340526769177175251016213767362539383636218326315298197494687365446010487748100100649460138206678043354847593584398184416403949056770145424217958110156525874881838868887830087449691269003513237423692718036066840206244061734489281302037566245212930784752758518199155877344070077121898332220062021471331662939668164911982676385814775781201568197370035282734963263396073961775688934406035523641353864342923280544261307934627325963223745155542667285040285243540768054054933169858820776780910719752499514841428650112368826102404515192644290566767013458260467101209363491137324065437288498714020818478225454194131308395424728255503875046369090632063786616666608585699305516328148192595620977904678180166281857259041680480244697369497241317311853048145949163003518161507492966384284328710949048944732583780203374686901847979206141625327126717891831133136713899012827856444126727209173215731774757656039224709824527332996068757140910128411591859705416425701670605635289341748598411100635592521728451729328133266714413451337645729936712762583045274019500209569699869631795182487839731171999093827878176942150345388108584803139234674382715470514492607457378783161435344421013472417908578537861462645118499519737758861489402728270535226077237729038357569072650552172556924830470831030661028564701887775918432972094847104586146634688972266554489271831155847728005603516786808864617879463708824765849282991063249002922462366376590611627077258408260715649659665590197885221786886514511570042154033064261783591910083444273631888962546453288393544196016378415720154495425377921494680567242286015074503888642653997920446623304958384522668602040529934275358450552086534179604258208418422132696134647775327183196284959201314707978225757941041571196302144431376189534967695700655887198121820330115498991075239105194556778932672546629632511457180790524810322616841546158922729135387033194109953431318754158537302268815673119172513062662422654375072117098702063420690013261543329250831280041725004500413566422767133810521168059101224934723184171497479815184657913901735869672783079259791562119311579241730731501207290616784520240867725333739050793115805899505238593009904463419008725576417717858592428258497856134492361620171521823047486898416823537353449722883941114332000729876683827685173486676540575501517745777442587978400472720387781681580848415562186804365264615217549197555537321708572113959433901862010159011430871000496186274038671765484722818373448088260685502298532539400485173699494923724839653685871682711262752923189081043251058333664928597619786760762496572839174127517697967511035749988059775387107421870779962842644682440626922974598399806636729763854958969735512257315034760428469242516200250530865228477126184503142302812249137163058122222643238793486874505093439863615238138581717120920597543695784392150636696264477215569383911416154174981229108678801345002626472274532611417365031723678636389156366806288566469235506636062589452751125337586206180169968220143099054822541393243812950771366993270039553294768610501109209703425571523674858432150990869080516444480897031647402940136260036081468521583545644786956167630052755200086861884886681699268387732341746868170995807574078455620144335802311742940511888107488720784714183126228537508247805769288880494803893314318923666033330396178578453223151981727016681117258806851096386467476042253022044151644312429082608014181857789378196658551339772229878115816628715604888155766168853481279854766877892866229095612140606044446617844624057371947837420052332213135405765616576009409603568871640914245886379637542296375535538925933816159806913766525851218319933681983446613252915651632409687578634279934260476131270632990289719332672004080181342296281650495274154476730768848409232343585161970473175248618515012827472400906143639079266604564520615179137276733275385742892098727117194038988022159509532507452617649746227452180814869013083445555660830543172012389524298080225767195327492491005019139977413690967279923122416115513961557063546146628927203392030470726890235691052180129363123614355530768721012541788061020251964848027413776332765077135672657675525676548524838952733849747028916316221765440333193524975927101310381710623272273438940432062568613216290092529007897614673224405429648543641768397177488787226604383725187296235204226647530685657462061729414583691004789008130988921522813883396985960181328852496013307302256106768711356134556786044800732051106563002429558435951479090544005853702519566085269583539960974776966389117316429764219819145701100716494023794507437934851648123589404738756962357224668603452323457018767651035141568826929758850169965192231420770849025227855404960360646048831386448789449110141643255602861023113998064142551385596645898720259384988264748689930114390679710556604803068478349447662871149465887854991549307373470596809039139118821860882132327937461596631084293628374674966308148652765502465377932141530138311550778507645543153242503041694943433496192719512653557049610830907986555948202515269534758994995695945607460277850778943860043541328282337218827234589726864861804492976377439676011054844155401930885080487830185618011071761027955905493716227826665314022113418296182210279148932649200130242018552276905506818329425858795517792099873058087265841769334724950966026501164288333088763502908843064121913907530562157262536302407315514217193738162989809478076515200443814882983485680156911529858503306993077181830458541150360967100504284419706880546737077649313226529512690682123245983975175403491938215239564605132746347650614777735128030757580816385555994896909854452145050244522780102048415524923740787182817387648626785791569233569621400995783538299943023628803119719842907395912181889639361371929717471028451310785634398751313260777411822428150605219651010398496778472356524130743727609346761112476791300733753301946565219924660559941201998411136619335207679422588624647698228627211859859607403584316157388963743465307315281382663184632016013658812150593994443535112952950306032081047335315516311781180169513740697631470136794959757342992403899565099208396517870237329749147619757103734274600749954833631560310640856352193018502445696456105635846960348306657865656697350587454994122105176123179793571720001744335568869746615734388518680583733576520632307902749064708982308871966227004331344111234392450207155479200603166654637663296021559093898295073316722537743810494078091843247460692483671767004525840846694675462743768931145959261107039310727959854887170937646129429826822260400756232561740328587103060785725485326044847397163782153100428660681028200874350178798061728487804191909967803092566333829066887317145775430959467848348504041803966598117145313026582391052881793146010937329349294213855381924084210004887473647535718840355673119382087994672412270749885877502630202338826751974741305040457817586351184889296995919179457706256670987965475267981538250318888990875833445594182077543526943451445417466003262352481724848419289281943961469236319508270240422611367349331557362343887886284045282150436642931100878784129866899638855921783217751590328110043807891208997534053340327589663739480288186676247707548616674711444097404325856127753038852566327391010941664249639081632027577208955810876523229185844223783985636336226419860357300526058064867854438497674052587122971672316509007327928525707836438961703884529923238373274599515796569427544011146190649076693249120691061824369658818703640963350598453791479216093874701372912866483912812302986279554518341891304029664023173950232645947141840664483714018215698289785610730771624876877610057619241383922963383500678814257804101595898350982571824462809811723351280628930479529901953614035681830160933420770447004448528270658076452376879299769772562137248133759981031815555645059767534452328553482523512368445314149232544160213280694931393028278736692293916133225736421807368574120936753589666778297854538061129827096275956303138641773041890611279044821567908788040326789777781952215934512971253913018869208769672295978654538323968820244442457890194750086796433688996362219369707810838718546143535276051687548549516508261958839112015229984249401727389693511161052802134528587138941623046013668139335284398703894240602094318142081678434508846837189092268904409187011974582643490124396164516503488036858954422697063201567047185348263579564175134271929847234402579134788985271929200525667221542227097927823301904732920350983584109485695491627277912205511344709098151982201777665333580607532337134775801653760456498291746678965764068813292857993600820264337496654405986944366810058550995840392032423378590564965092683601594616266087082036462585990130971207761243492653094829222350222624077029101210301435486322275517422617176873841097249678965271749946123944986705312849592381498716399374557513259902585750443289987814789697088072206975043402603404673946350338190951055465398868047853559747537148930804580553302899492402822945664197274196024438233276026854431347682650728415142197653627824199928828172637297244401786973071654548731585383007610427544669137957314459345044050419000983087343905164250576221343526476156139111724786380101354329782741226589196745555472222662626619716049446784531539112670244119748601147252750794639802685453945751833251043653925432993496337032206365101696957705274894568860769663356333999009223031756634667020690194195952031966673337034292218476434494214833737401828490203036024069862738050731784474472582277616188674134330069527908100826596366813247266671595226651798254588910119259027857097768684970329474521121887916725284229482532958543392399235629312744387486740814243908827805653554987165914073029043233597183504787971552231450070839423920322250410461390155538684246682629439673185819424679507376543254442218538358737127985809416259474717392302099903684130021570432396539015601552180805395468979662035888851490792365099038399810367861820150193917376527699035840255780162700473997698678154981005027778481264893993021719349522738577581419096231079249819331362150216841235767141474591930106922160782031366164380636830860195625839921128816841864042513368361705480778587025987465340886790413411776119094726738191938740962421266789409265920347924539465954096514072630484714759967631706089067003077203172937875757955520851156752067197485997534471041486127211692942323466766277253924237180925821959003316580274921038774801720359356437712491571765412008055648384538133608100150194403611442435580108198333408910020539901501111280288470763855282828820694200283159965033648835839374596305569383874494530166904232394414458492419388354606053456777415558538640267277084750800578869352601837221449050969376309252633478006028610477391484000832854187231822127624877764695201087555167764791512463500388202482072764108536918737881684502353731466778169459133417113889070715353946334322710525025537846031749525397025256721998724230902590536588712411662497272786495146157572496065982535407800675568531788744059789599796050686047918881493471023005911733991046197459944007566127992848289614101628598213521636529330618137347041944157114613567463425032170430104228727457004656290450462745881050513221924101113656302388380135078960351840040181799486500634862165916782911860179131443680741538168032141422890725817380130050405869189473036567059129661371110399303972344526626853765881535014983498271841313386414894375435105174306914973858821769113089599472715837500140602049916606019818678373921553750839535912276771347091153142347068176092947839883511917268193754478898166109784161446833681693157283992040503550521321664037951144171570524111191534113700687222151263668365803976554883420223625166377975073850621825322405698896180445455014959687761504151701131128503571181523961469710884254103816965879132650294506390544495550591101996063226285822399734917841612395523182699100540352770313729426224928489794854687194307452158980746420798081690586403356087053604118128522282869200723322442710574403177624383682110514426896528346718841201358479428069799947212833150951040213150996958935575460456101129903273613116987074700304876750946820760732897363487133604312751499513088738820311066355777149411751285118739138765937044028145596201025790223961640889090230688870690798633756761431554693751346418037773130369595891456522817805530055500698358833714535226215372235847491611413981974079830507853679402191217629109557679485004836654650693082953227725917139741773070475808086457921238598968135203466998521686040728928829453909829862417348081288434956894488277086626445810248046590715618190387212409311266393434332659479465782374909576034359356349097752188879150369830023760934115419317215897947687107286593920124847763418551800070436766508330057953988310012277990193087776724207894939854861480315140252082487965362898770626117974653253280716472255947373622956773276559353049918381149199488287422067015675620343736359932219714240787675449217323398759437409343452246627852579668746227970304964308183908386071991135036695453763590544973712947013087747660083468179157924265429443174305042370717577124899461566153550230014093242975329266525744742188596192038084385312518710898183794951996394770981035205098145924436298151576725609467181323190273963313749543919360478277120771810709330627534303603889702186563103192990735378994126080536285942519782102157884170464480487977913516270757558379076093640381510684770705151560684537760677213616756912989483158662113850167335285414459010170116543268659206858511487387738748661659098716471568857210457634381629086908630901611752149941927589038080975545363229442379525099584385456145390099548754497455388369621873814622363712098543953227885503892484046050013181154790855150580204129741435277857575571050193407884749257359623151547212177266443325646289149785512954378503510592170935074635396135651728240578999271061266953592900031997336420337565346830807960447670470183986729530770723833092149470943852186510908419723871841941771121895785002101733802172485647647404156427619930755048139187804704403320136234487678775298234180198499054023342466073243639168160301313313846694807815808628282515790530895236509239502713428083718499321444179177877844534541328165171909576076452735784765643311573811860771824725329750761354995804025846655562364571949553138559936458678121733279324157597364916072343245486624546962482310408461260320620473075920994643168462583319568877834203538207201606524618640574525331047825461526101355672365752651722105953586369016743419415696637873767429292744289488615540420969099799037149928210173356435246353260605165175130892952678736299475894160989601664840683444143673894311027249015694890607825355682651105818746088240160063135053469777859743710813396388797311583916176356551419019828960703452045289183597384896368467511043692733433933801832917557407027381192909147865214484959973739185089795429562126511125021759819987122623348623159190710631207346996483516290220007376785108679002531379884534376098918236069191245253840928807979392637220136788984761522947395159820476573119182536009803483477495695476406455663633541325298142072570459790225389081588542752939331764248678999858230196680644379589422144819342757316677456978991727564941926511791970609977244717872551039601779898399902746775417050731028566211863646709928444846010964617232995359222880412025982250767769718132868901259918950492973812624050561405196566632583803631801851784260818185459428069428890612038528922100089949845632198489809576258365691195500021412369930535855605745634005101494347376515503889385804233656902668219429934166859350775257165843009706881189053107148576409598740301323376300509834250294271183673598859605130037114825674647839840656479522596797489114939422881521379144023046118587835475047224301602349721500298718359327500840856432549602169377808683452373685924540717538359978143925184521836995276959930429021636797371388918365124626509994237263709684652428412048077158917976689476822049046035665741369429446629131985511573823273281832265036170648885051185095872449463717461413166104687774665452823675439069125641009243913649932188636624478296270033303432031877854395416921435613703428359943996334662058362337508295928590079385693784156544425434061524489873927858570171864811431508925046157069077384735844076585938091514969974147279168581642126890540792437984455347107298951594921517870205676426215152178644670884874036149465068884843518302943544296187241195513789395166532274419975095639858532437355560401950969179652007467962401056195368938987194423622043576497590210868179687333305772529459153927236289884367366089496683016037125205681605559037704404331369934362229134939512758938084287144306276650002397026538956287238536477604863283026537914850194465748227858917780871744812105614411516196606089276180049387217552453485832343182759508613071954068918682459000096944450655303630326018574050242899864131455755144005192198666220699133238862118016428438626194535279217820306546166407449318658169433862814850319105035655562794998440827451182124566141307927631860078779154711683172726099698057119984439931476279306191482679756089303713396717587488713695633469262432263510828488198664273329242711912334864460166362914891121175688186270354538503667551070603366504759649095795611766511533999596898443680579176940318432440756644357245241229636318777307252365674447305320863674125046323284592838047669024213886492543710819396108905507619694127805376189525447196605730682362849802887844662005319954494536464762492701571928707333653351800065784954912999120900881779411245111941877820088795820429912248233641090615976849675026108005865442876896386160941336347688348950874866325665455245733463364165702740375489947742482614592517262972048580568177697920973914111422113090399071398951390183260224705776309065269711832202757816127412478081971963366326509025136064256822077340922704164250816470592099691086060706576871159227837884409140605583872341291925812027056476859863313375723081137339081310983104996896202412977298662115439450062284119293670401631928486855910238133800859420043764046286723572673251318614920235234498289734678273103285569605096363390890378011687455138112748558296568514861193540231998722922844872910231233314145296829281620163075806914150502631562560501412727458914919621185752436976404365544074297020368053505547535551751464575107949520089545193965937487042796433609900307595198573809360810963953619427161749501781598064919335717762251339095504273202872634462670995665858234713813080016797428880851203171620152138234928462363100101889545411250163731371273810909320623963686751024853659757257843792147633586909013861120995438340726899072971972363718512987518643907731125138741002775579874229102017807510997795694002724240925740938033446418542487359425263049944128496821914144756946676147685938294289962884682180168827356250800038845859935916281520772750572791469330107664120808190880967097080827842824924452735390493799820501153891626334611731274112522138922115672298477666027611050291067387260623270866833187243419536226665946923380484497784099159698795223632820938214278253125508741279566650510859407354067618948348456493384586754778221795265514771283637366303084544604783973097630880602386701513611364719128390315309013115851737431597816073278415104280094801541135926111781029043819001785961655212404724439798648466296353609626342287916256382983743370011779767821510708649728535382643814237976537645551121662376642524860126370743378519197557717885536832515431407053761663619680467657470112187649655630341230979810922440910697007132278916219527642078234193406405607612257796645204004480666791544925884761039388922137854729552261730635452642732408260553774536753367079109297797841301845925005578830033147283005935568824222606653275449975211116382377728038307364683921526930075389572804228524702757911147776722392495709035561236240976910165320707114079044305720054499775643082703236288449363710079417113071973375709180361986207020770225906568537707825410744597010839825751301898930166470310368385781872219118564146173037234752183687479482002805548793919012492970989808140032825179651791175846778287791091136221132079623710825451012478140163109361288355092949759921287243721892674279524104302396994661277100991957242992213564366103249845195295908811946761820393274690220921783849607031432405718239243403400675192220680776908939381684326265603128560834842169255548862699183493970413296562598256243190006996638949056415106936614268172066328038182413409236571952745540845060050292008162805415125503511615250987918863776870046725225107747555720293606257932978413314178946197057859008601258096923908748173970900764285937439210974534353600302538480574617420158056076142963957730082509320890073816575496245402859689841340918934868650326762606426837960869702993172083181424338274087872026326505517312065722786629501711925209623276760955244469259993876067520409611322972929042397723239385685337600881728475816984950636259153698820188991769685032782812233437492955082347856417580392231352558414736181846288565085455509121941905272448195565317837755693715815562585777342531197426746282583201376602796281819406872067999744262364180267116159778730428760883469365001621506433625632538058380072936905233742058873332174132392074088230069610669149645181490221038936182434850339529016997602096593027716255523655595207199715677631755157838148653824975552175198248261593094085917224851680972870666960123791284346395190445471978283458056743540748354672728690426328513153883606088895103890676374834503551157020467324467279644785367891400443153038638254242973053783537795353050388947022097471723072399623276739221500150838310182622773580280015593060657566106357973740238784919476463631213170201171980025582485896673546177325504831207555048886256170771201504396758241051964696214750281636621340506169961415832994142497514013181069918427473446048666706084279509497695125599346253816378118157349319722755584531355970149838667220470013546325950789755437793880130673108657299538400224455704307135893975370897121086873482315142938134597170535213200750237097238223329391140134432464245856668495994532701334811585913595243721645793828321069846675654899634632740831742676784018451230005766178706699162604864671022414922964678884993659183318791246975068577756713924597153985656438524692155366223043024596780590598006522243501638325083310396361854419170300702672834690425005459065879867328244707136880240376536012932186868424870438505151327608146145355119042143290556902997289822378386686873295376706917344669799635150288631122115597425044710157791273370395066633229988893748475136396705234059297649492967778899924907279789965199320187179934621477405786588626159047427460392227243177307305016382737119903053998816599612728424700032835785023533537702422194098211898896602292892561106548301557598524957529833176477538069402946591321945781729987759108958721487411415214529963663207358741835483716040138044262765470377908503064611902903246158082337158591689587489291142222036792505703847018990222997586993156282343979053535604664887265209895446545810491838572129121344510312444823461667368724040757550020216809167050366626054144136908503127681587823841704450348209610728191693812727750703286043061692518673994853535797117494513190968921788878881699229197963228535594105392173127916143705877907330144424048960566509451373525596442785452365745955633166334338954252286833495256008492089209565945860170163007947838334056511812826931537489174282826787996171771181771411386404765796462099412448054150425960183915760617439606840995718442940549178839114497101425300756096415252411666682755105928964929514771951241996240079201242008838020214213178203016574796115756543447766009638466586220864842348201084350245661110494228585391125702589160191432740478081728824295077525495918161286036063631623253294593888325327786264663500672989591285746245919876830708909331923917084380667012085197345305814490196968219482633113486596505121987405255516637130594133110176430342927528834570198424760510346801219231974851978659094038608379953304990047176476357383564524466810534644727233977790836047804420352347208818485674933863190974005092017540678078407379432658046923751235230376282911704596245702772627593408379678422906739374239347015791486415302946254025065518630780494908918178702586518117893396437308445968313364574374692568332850809112059300163625187051438945666653120442373430828241947293954071415931954520991299279612894693367402457041927055654833321905365351780759550699597166776125774007844879044918111328640306753503498517148853023296760874028566871062270164889307935662238671016526740531746553036696563334665594504833673151632467664129654659698123519637850788538045744462264867722812119882567983222575823122134443042881109860196658250448405607993731433101357535964889965529726830442099468127457150524832330764472877581174496120841872909826177244199349577230555830042060899366511849640854982245070046065558016268959438018345108314506815181236942317983421917663821660195467000869626141879470770150743614582800562965216200527356199865083129907386015980724585441795580467625480221597015414808060708331032491728761191841681097239713305225930047841778842445825379754353312551816761717788441611633783455074264364895088919853633395715217746988500658363113748233794359651979882125117756008530072540360015381820551524100826398258538518847488397529088029940713314617201196747148106541713466005335935403695499838263371705580687896367485151775745730949703033676497395138560034387016011575549802246702956903339632289971437568479540240880268937422893136557662567048460581509672460117076833701709159982910649802928345677232393968668651313142600867881585794360979835067721032572555961657919936081000170044150492158413994246804797171411221872445604767335521627324151066564286305784837387745136913578339302180258129226409558238438241117158225246415263078079414677063083046211047699884706113608427462543264242589671390114908550790189852775851587498996064646986072006777094505681549489652759708005854979547017127864245924014044104491821586733625601776667498618638721691137090757797700516355348890377455431761801675055070127832559246720980627994761195096753299088379530656491575317267669434181185411327872383915300051621765968587975881797702413118369245558046999798664960227604077737572323310586255141877527682672861653227749109214868039827819531282816872429147394934189830714891030627740088172874335451545606518959479193986061286490233259314496297469079749146424833653789585410693603270780081580600301082079616109507833490493099415368639180812144297837951378569885188057723844407166900267120187216594507139330431352213693040961700662483808929078340983862736769646436189818586427538022013479539146121646920363107331632736976411034297199963061198754733916742891150137392171786798812280544734320442221666927917329798538271480510509444552050053351327788945746492282998895416377469752806027099329639773947248440188757669645060449459647768734103904504374250385871497164424095268806753060746479704295523883390174074451368870679885134567133821206047358487145621802658542237745949845050811395331716532118245029771802654295508555944260428368790219527696662943360437959599456765232504250467082123408333452362592592212847712464530128112153802628578056082735503143938598182059103920299515705679689288977591948221941917190235711664091884318468767029597544085805774874370212753335074692801800321747510650525257071554135711463122085011662130909696987168393216764786476206238189349441039243188673616872789717466500592133503623370763556301293108940113199083067203840316772858408542027060425304012015544614791552275568188459580431072944006119702637913663999649118260610735802809569693793499629000355826007641409547110347916971949928819518522432102241946169362321852843597834836998582704979467332809550917495225497276185971677223352669847135320626036569482485060150788941629035737728427965975083695917588954259392951118594069075359881329572026692411913821378013479514669628995049139027250320643085082940782617448365955262301808629888332254142524018758706625803181344967509250381830916644004266709910945799550861665240161463684816823879482149228779905204789890478051349481382980150226010830845387333376243652202774356098979790214561630172667266395826289115709368011082043515269604189361790924230895884391534702554597713559690735067780648150876883343072039515856402193260236342563526700674745203030746693328069579831753629254850639863912489562230587663751443241333451253909128164864404893569462061918904928316103577598770154545325216103880016613350957825458505436689671013582445088572961287835869026700332219908824430236114453685943060779602049781340667524950802057282187932495001517909664932696598861461543444346978546296678399522498662059952170781754656265922077681716069198028961507070716486189528298334905022531171534944333749245856948426324097025610041884833206598291550702894953734403940748012544983568760441061214617717972808886633437925125025211497128489333961010580287184139655463290063951128017753200683449057066854174828166783985552366302747952416143036355894348124890371592265446541460874336729029299639181501950194870136746679661013087364557849413618200039487554364704289352229432742229883661492885385855444402728084934157061261318885178981894731110384409609583072089928135701684033785063086663617225302643297867975406752239744643792769543892908457003848472530281104166871628766697335194876637174708891687236546704788915352664210636263351943814572151209345672444085656749301346877828071456782324341497321089880081306735347668625962470067373683998685653581126535922815100191163597246924213658369981312955613026667754940651605317146054004424734185706448168669148584446028037194999894667396672621705911002658510117001827295228991930360364121909559297545228040753271687301247607181489083824926394675997258393466134991943057335924286381632475580648274976819767889422193550347349931433493123226281652546838798338182210739977540444292380284362758041998913557507787972282448632210032060957460132698129189023750075767072328620965486434119877158253875398746783574018653719245687111197002524151692413699151034978510650676331390744901890854042143151571582685394069648284135521202945867534803295038722238885631987391787003306077075850939687860119371754704184841743542517836947206778744645005202622213880917474583493775383007163953248368550507188346720541768876557116749627563758270568150524138964986748250203668877735300678940062178525591875369367883880284350285905896719896530345784238787489178201575852173550767368832721814743683526741254110010419079761031318477624386627883702502219563780729030564804616144395057986236977480592579572438784974199433163591435551501384846468464614370877599924203610355916622761270616056470661394031556710449627225277665543466630433257518695401678010730503808335106352329064213844146025006960990693283756353118731189703909653528651555692210727335093500789650778503679505007552127064403287585430642060620627959625523960899403587539970947056796858000553856962865699587125796186311513731855735729576872497677046530475036104509658607460789704187780964809384084530855834078954974352597593091503048562534843687575385991991809193025852659128636044982954678898446606610723164231496258857762808105214897314616570119459605169694394903352262141629877679981637463491775238953033484097275671648900408017394168255019237747931413849488223504609048899639433592045351421464335233683701808487561655443591319966584001536914855068193467171795392793508947812714569840931002832236145870262634330947200390344773353656139891846932401225372440719202215478385314094047696262281591028228820333177241162879729675996733708366522394217822318336214542152680621004863628026976076082227801005347387263864743163510964820098439812464542559294312617352753626394979957426948031717259078729718783613576081665263346499728301634331505550586389493499196681888772524929800159829627476045846289980980833589159633827454172911557584201039130979745075180997604165563195224876214535607472935457393145173741898209407569949967660116213291300330482354611186094998409101601525547479928339083194632060521655736892164457494108246789009676093223688262957481021876603506065336836379854529428308049873074058589391249133675394964819294650926460968159313198632997889388750621469105021721653815197151684111669694714880805527367859926270117131722538777887956778272673846306573027177337255119283353522166034976717247009437811948360770250119213040764101882147777388276494165471882683383717524552770523286461262481540457410349960838740167490769971273959711721202879025670938782060595749906627495857177695707828577697583825468961712987565211909366537287396924015069799683716112831288236697272734699051028900215510845557343860043354882317451541210561352107430057555836356463362663063426130607438302975699354732362560651601437213662862676037748953550559365576260830023308890419571837502770538999218528960743231041833341039672468401500013179289455970271426099785153538289388218359937474502529710992063420153159438208835459005509858785677103776046184019186660930378200775496255849764942222782073370020127109444988226288889860380213664659760259775966880104547247331335583668662163212918010036527732856341675917347951014598914616650310610416751146657201926755200660424695512638862190047979483471075674264472451404465522435165760094595782695526081581055766009787099059598427349650686050038693845004867472831586571846545445903127445191081016690168207823259755384989315577622363069208572310397501578531951857492539888447612988226277910342193145767315940821603505902418974409215064491786656815433703940553110507513717753558104048860425918706052477026132109343685864199962127120552763714667360740822274217619819930129638886472380332917630303328105652116771194928017439228552985028210550188461662752977332466327154695246677055897315424786862281404459951273149936565555907309121974194578037866103458354861933846343184284829706250067163520447854024737119655419287595137856660291639237591569942926965168899141744401897394006641981915896910207552831997004052130324296859376481475514698958244291491934029586691290735814656925592170741239734709272415331066851195367096870050410202374705902379301668312103242307742706502331331354478197289851875154678953987881003213170078319702350972896509583789740671856572056031336351206565704944268928362984516101185331802417555266301289097851672551402019460521242924673911416956911827161014498336714514224502893522220520722775409980351690611593333959552548165003122708244612328096386781477016034756467710033913864460221467094680497183869806555893035537892943519367510542327870945231691729936671046163078791641090688793983087253517492877744916630070098709622698778918343261040094345313772064717537668434550690018035051668550078233229130553127355527144490666907403723015089032647238750515173413407705707655346898865841340325226605143367623578848687739047549420525147456312329287158469374426351462034606117904708060442890243833451922422459811005177360920384229269925278055546431784828550994145103831886965719090289272411569212910225913177273287335171435372902018238059210962297291031179727169187555333545567186519803630486127100868566019662477909100437569632074301004362569909464195191569302711008841274160714564007485186310379033887989831413961908215303368643551669038624215722134138382068312370867999310360970247021728720564423246272819774812941268814011625122216078957939691226806521432801880701558470876268180299400378348055928407709842670327177641236088228204888785087433857808313545977987587071256296799855149185034372814566551210777879092974353140604585563366413940959129400899674666914999420418864468049138428454988757336518814737826947344450934250452937413418446963840565366212190993222984425762915604078902112670587201267950436404073728643464791319672104946608951350146898707943651756467306976484520260755274837734801749961284707168292760227906958929277923328167762953608091980765267419927549216704895105992332594721418991253169134569825788216493525892428546949159930887321487676239925067297713804998734478415297126888136824835278030725454777281581070292964752857218277858418876705941207933420036461288260520233141313230627283814352622081949694132901675046674299446649107046110903776544120066640087303839568334518781961287182090194020991293758333709185974310393342171781996543156739075574442511586008842263843691804675462855923375362260084901468260414935140854333036337981139831680023333534829557414887313099581514156800018846499114905800850579668947623370460397431639266831577193941209920957758246906833250181465053608729841640583269759139118971926450825102664797425945115474843180237814755994062995758065719142646419151579822692466844054481618205791000799628557374294286392739256400641919615338072500078916902567803405395402646071017237798138233478331655116452188017179592262459681193734747310375161255188285169505813698691649490506107295508125014194242867107655980318137750158086232563240403255737600546651271776016207813256729078603043573292398911924116794097326378871718647535501364320901726993471727879656723073991676175250273048824429438741560400964992688762382406592565371243216252346865519580867565110237961731149056614288209228779371154244316158586324539581636224993564769593582621949177874614126810259075820878426162673951937154323617046161430634965535270909262276256184495192104580771597268018037184253270842667895742458412758184663179634434218499061418789653676192771251321901279226533442133148962876550934140271397982569304890996533994548698786119648601733984530638500525382351326839344216803774737406505412164339258653781332199362911738359808373153467655642802972115466473741895334604067071732928295946217621461181197423222958930445635072880254334802421589768929768720115152204176617200344082093792560211156319921149404770096113383591206118379047460976114512132614231477320806123283435392453146785045492885825602141382581206193909967329415256960267927357829640669596557140472311083295559588939990036946126588709026881705524786201604530708051800084401472651487580337845734858479664422813341307900876042474796298298869060964682442776142313474108758666439640515223744230014484580176153275181008942589841009738266105733796552949112826169360796824512280555973682934492053092571887904316061623633378626851681779914373999793239010917099365790100673579613697921252506576962978611585911218704242302354112578335925507311099521095569620254780865335783369647875241307529066865353475844643765823401643924608786093297178257099740274930363700586273502163242620552643973172379107553603413106519723647079032363521934552315913550470061591906685363298873098178727241416806547904596882042661623907066487270046089637808013943642885701087043699879358454927626557840148137287821885098861548033854183291660580872646734676468661803778632050905229093976404786752360863638953306564946171837483993483988714656643437488602599197678710400276126929791336714666562469889779089948208789011243386207607781787714822765005206055850813432905664534742996132151886749277213182562310205782901205081488363257390530805781290385229399744845766031940747903078888369733970271847101694615189541220782403862910747887300011340794957847088428383642071283424485863385198666313625393538958038044299366071019276282920851527511814439877743278157382107909818982792910246732728995102868811142129903321386336628602169540114124751680180506007181454646669038509295426374566400762262560249506003895834801537955735774651577863124885809339717526428167618103591919913227196005091117459736790671493944765656298667046704319001330528091935208890278372595207784333988455186442689294731702316054390441584640353463860301417809521445617121767183694900432818161961306044087218396270836895895015252462306639843828774645769222186255875806495807888635069305153571333265369059493231072578545506052718544463742413456961548509813284214263709050693649996034943177440057571441134555720759814517729315262801565727381657091602924325562402401062135967746840418675445400434133201677014773831302363297859757315718829633495562974479142760140412573875884621511492231557030118470942005585438005968179987961015908677391970043787869431195662327646182983858631947880889037290822588526408948565928680724187308285338336400299418885053433680769523565651006668698630308837511711240390251654996275511326787687185312583839940264288227243695763353865329830644121251666558792171806131956295981050438704427843663981435516392180331820642659453519050874464333050744708603810678234796700945900407660323316892529098026112693264963863877000236173739475803328176854979071211552463908169220391188357563921101320372019394338629183783595859041047715453538055402616040652621981833167687118013588570713934320693030532941654394012863707358040515131048786516931122150064357708244631276923523896658414326161223191397176603457557962398494567843450699155704605736408676203436071061058729361284182141458584190175553083191827841503240133596047709054919916255439398831792353194283919753628329100744781488833670766027642757065168700839722962497133667710868219434645606291565215795981627269504801505084205938621028594839494185110862853844006152065681368890114775658682836157745448063669974104923443288702715907694520047404059409456829345200031485198597699771087153478272094098987197284870380993063511204708253960093797182255203149430168760945232442347009919692447897904557214034958867604026859691356439173838595008456272734673682702654914767636916992917019957777538012092220995252205925803816562748884297990021940625577803117884887567241894793593448687480678007570538242478298932995223346234935297632195592225795190524948730770049592484681084841645164676000221414363272282105681015743589027906704224567247835374767515777844850048892264806924091507066924038967771372434900404775617602975119648433317779267523415163261406438256552834928678613171693176895123690504216601103011200022328703252050385987387383105067454852438061928305575785259943285128786361366581350338320772222960578706567765427162763537565204166832577451146980346412277160009549970592984909488382796049445233115093371998629807124052395297475631836674312358161098976050593938136346491805253794630474616732633976189161069554891211212000258801772217448584164740724192091979969833373321357469418856773815974030292568984065153260740550500235652642103988483168489644244710314162456693891077656997140629233005544932260319166363903624755014194827961942926727647548254006180110219229544594226139724354048687230216543902029664241808503415399122718138883657492063183890838291158783414747434981168769245361277835929945118306507657698912197962678891321409338614453641024081365168660179922545803061601021674676060758883690895737222992846639564144780436140503342825634998486365473198485567526220999245793740186369778726807159835119435609986461732392512978986423410139115962301355526827557908637213444776021323622358109947956679450836009307025202161939729449644618309298494166621765597718243038065567568039631502254185086025272403133919012730008777444074068620965657753779131287867127906387991616953612137103952644814781522885183379237692387983680343879671236689543142288511886877928147121754214258417467124524540522916212840802696851370908507812165892739731929456750233501500240164469334379653722891426335775072583224878035280887632729830337005226514309799059351843500146743463874487405748734282614737812873261791781907816512197830152448270637485637443102156569282708167858627066207388111653854639789969936421492938646856672672365248315279619564367824499967144432212280823988467206521553016050659912607633070781352901373773417674295174724863232506467968297843237095330050816137101683857996305219269736480145007365561161263041560651674581023417283428281939586422366534342624859926502487583285889899310335460628653661741017263164677927963157281450797456406631894496687786493954068253431507652585798043766138677084871672521378082630727013216431475910669091087487821135222367302656010476529297448081464801615580162797339545320879964201905413498602932525320563938811545388469726074962180994649568154254405044465537406316488048216611254144009561550773232734923755825304502179389357354286263104795866361324448361261662754465257344670257545322901340305167881825125375448145562008018231076459569412768792304863073531712687988712412586625310111143572287794772081357750420725885369187119104430314483532476431347859775526185019424663944234154860130717421130114092299512277551368111319417711551881837508732226534158817456746973799784112759973420328187189650694976704076658274884693488571149815266051209895314811394166106331465972650343548201052235295270767338892178803402429591508179738543725441204286224516751462215096335525151988194124478989359695965032593435511057680280277701732954856394028654913489476754067804251190660617964343795985179794804657199064277729793066839380246081575982675447344936644246180380110996337703166842140279930835953877668270591092473888797772747088906843896972242963445320494340682627007951064394792147847931485681225925026181243070333307608875834496961697324381385591218455909312528082060779792386543192031854354691719911672986139476273436617937934769115497537543677085234908193322948284550796517587497743511223020130101343963900613422882616184614623917721588757320132300712318875984923073249541028864591178151480160994707840216736739172364179651578555790480476606632138822992770016771705359594334448168454609914619515020984518223198530637213155846689363183772979279030884307329249095582122891457489932913795630032239922618257658360425082145589259304812143630034496378533708850478833888554435787501103742242296726346462795924099792204193254491767366687636486271811370760755801783439482360700992039876778534668688788075454781940740681844213589709871705578382406925302569514220913000624372009323165096063973826730820471548188799958861623663654107805142380163730659794475241270696913297021257522947158093320742467448346208184823270860189189002183018415470939302545844726645747570769636798271063750816452189961222721103787961434047335267990882057298055158725850223088341280645576920091125022043548389076412135394921590743250977011693357728592962656637122295579534386623083425097014330514785700964774828364891185108807264533443652470393993190317946145063755487929673860513765012082531879666651988510228806227959380182622468131537243895122535970961502462294262867169309120601298590186938808565855069232617689944692900062695743343919271384281588558413575860204048191360039907973988678988500433771642747606705906867236040641289061608932046092436672290030936265568569340369334665217785108784076009040092786912524687102121775080418077583100325350136053304830046465891895304088136954787651110633305613532610647601710133504308514180410355655617007889126943804937244475522349414660551974308928209242926361057646396946265736561430760080533757886552625755549503164191465359867825920198572907901832611224288547807605465267853769454075198071104117008415850322011353508459134528478331339610341744332627576523306209752197280367935349655123821323254529601899415788434244949624710131429565812950185938485804631454334602328512905415131977917579931252934825911205421944298832669632163787796417225706213998157694749361456011635261136963330061680480666546674407101183657789423474654896162722234695226583974825570884382187265542915304418187154099345324416121603836555091408770266802199031234665507540615954071788319863157909445083500628821752160992171000334441797220177933781201103456598154205237382107320326892814708776077426685024480192803402424623145905144341219442238442368333828887891105508550182288469268571977761787343468530450474018364153311390206219604787574339484278351234456868012137069311220512214657871212572517085320672475863530429475989811041219753220419670161264793922017574057180310660575130611400015449294297639867175012527841199273307889725612175412926248802844983958188074523874045329898169835873111724032898981946952359544365923993735313761092107777313827804882763830695507146426202549500089020208962699226388301585267348159269851008103683810748863573953545747622480442616223440764028139806108168667188741090656539214501615474376478958559509143672063251063447764637822582222480703416152397949454104686727169964763718962791445770077120403647475058169232143400462904418675279928028365675549099809033080866747930724050137066530811091315523887062899327038473991002459026791627506443636464184262619749131227056720436989383777142147107641480845985337459422676222048937868266305859203726541558014729479475766881435393228160567478368991050174414663830211256179413455592093836714496852600032598671840633546830329821482074642014594130025510321983928915740177256884338260543321605157248243711410963802733933585605788499098216617162651738665836875808195667932313342115976133344092934274123090951234715266411444537214378254527792818007857613141268560271888147987442765265357121406830908983600507447497298865988987947758760094908712909511022859908271069838066965354003739551121694363214782993674663149616163580862403887016971509588713433632943303339746488556078849574820828136535082978091216392505072714844727879498509251132481412226721686916815445421386436492788178311351028674295353301398220346820245787539170984982276402765821097107802595128961418396341683576204703307554236301749834833342947146871091945117026120348577528173528512824565684066899569128500591131035346676169415495299308506037271878300456551633664785926842944824565027594935406835862154311791837131556282956888165550628586853188233169956157033997054091925430409121448385537074389650373672278684726152473754707602961337047776039664827012752998746682566689882771846953863500183229330140084269680117522220960044173179020031862383083505843476348962754433760177422517972216371642360010244879169260553244557114041968850647716209825828875218461986418185132428781497209219553664459237605119707815667409894734973479070519393260908776226836585497923803727985039325492122873189228754865408100706453987545145574830183752591791985830847921296213591313165245419679519162317217021007413296181982485508809494506738053623768061246566322846873082757949109994893673412471309717304645441979780111871076226599592689049069759663235810878649696933063800356524183710005182971969298059783075953661493917609032407428224075615539924088516997785997035198208718281103987942546163288730522483149295540143911885931120300788137748654172096507021989784722056932209296783478421889703973711919439856711135649163003765995248506606243284593007982604331198124077482412028186053821307653081602498485135721314146128659790219111679412906285382375887393754358153967803046597407334659847685048565679006584065157937558461043440256913313880896798695727543322362066127833441986696619104150117853370325503309548627187113482960757253055951118283748610901609689833903814800327657610048007812186384112179803993138579862915640787686832362058416369058122520045125628865889464350198965971831245944821664323772903315286455342712431597954061480713661437991327797054762821846764673465330596179327992195537644548285876949909086347190773731375642467479498458902679162988804504545054303411131423996556675367999872543065236031666245300613034250824250044778964974471544559629535292884964983023475071208772552176489820349016702704779220093974846623854419676259690483008010682132693381484472401784875566652508638538755856530403640055946904284536078604951413148124293599327742120408496047392534733236377637851830643810639206930089176793616542309084497913480094003257397370741873565100714867249939060383936435137553170307542582711514615090413167266033407447499323383180745872009726881922450895478797625742679726594798103345767769814120059362317830911412671006196596398049999288460288090016497952276334246194692192422435548778464486981835484095566353741184778419841270338101706262185284155079778767304914195065580500905651067932860928895398927794843292022287639460704168044706751934670623620505134514965783239079149183479221062609310901360407466689450856684094436068195218666361577650346367170111530270342481918632408448785125596356757295613484063241604690563308275158971008758376736909124860697189938458674756562755052135553625281384645187595770020714904205371924191981754974333164665896260134342533070669698082453920047290224659774449809312104505830884699606150628759959676785250813797098260094609751817244508351670182325456243511093096351274518630988049513583129584145572081367889352493468384880399360755703083922878353235520381577306053066401046275024067158931112671519608616312228624996954408698353383045947756712903388706950965061949775339330969650439519476732431930011853435309053434628472635256503560251159528186485011130354540402032159746309114987040373504842261450859093779514208398575000113633340624994159892564703907459321021026671285667108371700586073821287142707534528846836909630505122479046470164874746544942360003108978923344175842402134634977943776177268691548974310058346402353692507720932807151830730359388956724381143540706005399600302751062109583060767445753461226267107071501805299626616834890556569345801040235480310754326088855693756676292330167933571181928398221361951259623420034489726532716759993636938927636924593419206772468997407555771079345621750098541374656350490473044108230786088817629140578923195190269663911117638093400662372573537811889331500657453729504929219604232753385183352034222612142719229244700097349758658339570543378460207237355129742262822100235817001408947516875454051124114300866736366803826664790037683368031354240868011787706957710688204659631415368383491196667944966641550799695010341902341778037831003472008925657236012936950053486247649265601058130416431873878842758512889678535360119915470672132949340768521162745114362795348456327925566709962105387885429827481875110216822418585731176699452206670780819818049068213307402875112252472101565232682773445568227608935711277932463886499170850802553005925010804437455792119364620400357822942291409919928857934691581279140034279377790917899955439602375857745540154617830080560759042771867708816806621008645009693065266564081882307155876605029571575872242410145203128829300799134097634040723950730234067362396201653234231909112206678722663504322259527296098608800606542156086398546526640812202036731317008951303697021983459282566229712827939943069346419334800665660068274927657383028905537200697871216675281659940699345204726098607055166545585393399253687625183929778267615120089179075056140363325339163958821684551960117814404506745117207568635312316250419165102355063520992438653227876685971235284170047042358818189179305876678602389816424032686714634385512177894921667617677831911222993233831136173863850765968659171919630586363661744426413177506632511529464029072197667432165827015921202678778841236299617314177584321156454699833094606206812831185059877172397709053986013788430473168396134731293382893004084789437522462099623817432804756112787343181710502565771399829511622754849726362228767622525592820270188346732879725977057531568360418543776434471128014913130960353265559891839423050474428081478751747074451366786007824735158315070530382342921606866857222574572709842070147633291877929522212820496981729581344993713299499299305754692513288523426964982313842515200377853953627134093715449419055770926028481556355743107899890793801795336564570180501275441343619566431258004790998512990188574924294094737613770015033148576819587276801615651959556263335998335706768206177189250674868798973037353039388923671815953730676417491978415707430263315421823453750728874888516034701486498597530802870277769891711112985507204032220159928942424744661284405383633459772813440117876724185517907740022625521280229753591221281863032834078379605454982138719883979053633268220088542159513996782598557368384597802847038267644580587981004592547626471671485470927860771740692984573769754587091577776913963712757214448243891412592943478953917394420862629522778521591340583412708848220977893007617958985797898019486288822453287714798718701970359370108736440768903694835456715478671359960313355647858299288893764490738111891710224497794159401329193822170856322339927239658438384666040716481471751927243387477602919802778720978563488330179300542051965860388542334564848410569590502475741331252149644733393536899037931279729663041483147866445512003875322544053681650964203395822544523969896681216010759069495141985181017062765314833281036582574477916224619293074973108566786405003569483302326751023269179853125028574804979953750285122907370860954600034148997600053319991186932080464053194410936073407331934729023814905429980961523804050294618877031900477474043360606388011351765087933838437935286065038765680347366130207204308680377823463726729301042776078151852646950137852935140782826832963524352996274492553397288604179369179566261712602861548656077244399002866717889808198467876324428862931111306856143091593245624042743764582522414701972159248058947610473352895784181352759082609953032711053909908048526553678696543245196830541123964189110761722817879647086865988440969526594572150321223853866163650426501684143721450952254076531569124349710367765485121455941560748017563130940726815534672233899734256065745575651062402878484801586802148114045042660925348490652945180165715075597905807418557591080024470112755261254903149066668524888653132908479224836851478920024514688054584648073057871685883202690783696470879775827467276018684835069104284869063348652701561597377445058108008327459660517910414629114065270428241426335591793805870103402066001629892719494371383616203764512895999028244194617643944949515800890295659533227227475093545341276054222360776167469690597604111902074213143730089798476586742972243280427687284412850886785334267424931586123067196475570954053628475052248137091818748661902949486498221936791737337417219143917335084092492646651625391172314317939353643802132277285092801016306548877677336887144372752672824382994511345807390721034904413399790757276275258667429723855337649202985514954000088180395977935485374613781624605241847476266900679179993634235118732443630663932150003532797075555159364643395556495084058062119639755811322352404312763334641330809421927756286208151925574818150109834710542226716490001043743561350964022677550696331983684174005322297345679936162772967658834968259293084426119024321309938220462461504296278497334529300648234145942635519970843756891814416402773725056114407993721304251954790310145322146364253149505828602666406482591405309834034835946522126792576118404987682018901438554053095684099669321363487498794974940905122566815056775769803629330706271474116811908242171293805742623412722758428062992207412060232084094637318061303660161258217201771742193831371261601894265399975674849797054327301410981843982058364833717970785292699289316164719214678606251172954453298594612379887328887603231913402593777812903892368092568768544753019625724122282137838157168330771341762149272107080791643812266402317649785741718501601252435103870832223988840938262374664951286882327968677398359181198185031006897003429275586550359545058844856210173104081040742796318710691858904051402259338734930542983286240445547935867356044411375104041805853361628926860230729293309722935207134958160753744053585201552325210231973584151552413675032037193699317584715113888896377267925357973039162018581576902863365662511160681142822243660047193651102375241660294702033327649895656199108093804685535059415040042877816185399087243135967993495668963370517935604763667424343282628592902435372526796329656613684807467680324304267918717840012263069953997458480960658863493843382909495864086782422480856356479457234029766600268593733168245703449018452931575928221929133023637460568385512195378049688282011654349079297149798518026845253620321755261861539715150278117281544381289994337124580744674696578818879133382914117901459547655770864015497054024179583780983545440155073409259854959275198883285105549530852111653436171569828205651911730055508866351619068976729574619534739938089128878246836274018661386980882123131335451890560239816057246844951946082368557551385854987488918367861905544712152050978864468108701651617706142472736136176317764104273764422285409171632889969416148266267624465760699419040070081558376417141976337475963116540356131421024412014854525450893305129709547014603493470369234554123421933792499308929687598382257775900317065296938712936533445394483572105327647843183362205126316281290020230356443952326595311839040480750262592509113876596324128389719511134167781214574363402673870624153311242180681872505708701175533990443456456033163265490645616600787460767697751929655517198875577174491851653413146772972399156957434525741862485328916448365561445332220238042414670797174035369519745936693879362289335826418680685612222040807549841694916320393066930115817752151961202542589259431157681350941283276359272204188764235818586719655138269479188683618370505795719978947978430326751875707654326238842884225607356387758169488891844689202674352659489641674343910866935002375796446539489224539346408065427458877896648265232284924672591524188899727333911012730842085506143825390505664103013900518891572713502513574868784790823893237832069086790796918511633356996737065360724011756930048015522497434569397921388584158298120290871552506624156799359345988264903956399873639000464135484351560247768199901811313735823437307953070170906267709868484333903323606519972919067821394629375723614154697520838843523369826774374078644654075298191114128322456436833586626649489954227812438752804899175852852078616556661352567519617916162966263538346031158285857290900749080727718821155428980389174947816798965711400742991312004754633038138292330984705849814535163723997241143953300022202863831794732866954297613614207786141036273573541755262051170371020079352414837169320218625217702339242196481812049260681762226655132303753576983313167912625025280061558211261998835133801566590156854952942131304553121021117991998307260798190326558050497115458086867349515587435951824895492612755072857671755469767419308642079670494299693328392380776839533447138533114589378556406189721420767335937062854499963303232636077390235588235035842492003619329254610165679134116052127299783081579264883734248856687105324315163431074381513117965258087113841716379947260074017523210537246451003788273742412373903251989897971019092898304887768463944516290727677056284915120822018004730417278290739368220843999117278618154358569829672223262965396758935380889209193538869074801671165179680207464939629437232575437691432627683507134605360763961449806545546325313092042909302595469245080640146481413030675580549724644998711102993347797978171785189686646675315930968718482195223528992775037879011968074553821805012840332739188946018936214191175366218915833210553634182286682096283492571619174747781953494357435630358447671002092123739971899771369803170939410959675054643378886621625061895268841731362560787440978662555648184449402226138948627523712165463465489407476971831010010277588907214010208229407845867682545707945858593697166945118319247371514915810067745293982729982140375067036862582998144919416327500218101179404891539758585121305260496003370955435813973710458743228313341628828893283740156295662435518744538652451231063242049586211983003607751234176326783953393510703374069883965723879959127643093842508092541174517924142025529875612957404275013871341717107423915051123693464007333073783108814413533043403193506991828248554614997611115946974384089642483566495479691597405827038442928125931239730818294372924573471476628369005269281871758915287339003521524806349050375282596984697481498321473285092610752795382263664129174872223272033970986523358039795271832201704035643025009707720535187684592765587818133939372691353719967318441124390728735974141595653024316543717776093529327198959649027905610347800475252182406178523984230567546878525006022163005563515495202674513993921252472495271150203327388440229237098213041495570581680048489877971806810052755609618273467086738573724871934656185724823115761134716565540517784616032366225028919171346593701201927842817872887230879000195047461384712381936279809345554115443330938491084376270101931611635638199894430617144490615244009624706522705857797434905742912361904322479455433133197991659726590049772126506885100368036383178509782283494820397195203117220328646681630129008390134858411374982038137622036279857940119296382652449265366295533711732816314143752535657421593813964154722130513221462949666308807460290250013196311153482221679921301738354216746841448152127330198193947031234442528054408798456477472484231918191175371894484638132613582929559681220257872759809477912161832595576515867998080706099305768520377660052299960202404895799517080197076730596806071601973454008879448677173511083277551784011231587972961533692260145045405971610796787816105848226947499369008662510186801892567058596027683992284964742723166137392562579077122896892803200634111677987328195013290028799413005556545969841931567843585754192691815900421152409375009646672622010272614289172509474533455316107583143853495362031422102687908986873151495718623345928971999913719898663046310777707687361179449125879526394004948694572825362458258800639067730579527424942827430691153081136067071323564035437653454015651791393078309957532920849608006951746817846362767663354307694309397278157753983424923813150358113380043333746094242994380641300390109696663349967516655730190058372126556932994668972769809088771068423631620291298445272054340839022138034685931883030586217102676000676657342378329471259595719219442609289958090871136910345786662323030014492824798402978504701066687601367038963339243032735855858931004925729990131265523847388846385639138231388008018476478335883296342245278045543381871798689794793633098285056100831154873284731752021901440778864878577154633635711770468895391821572748833926707523072937884002778726263542856619563684580777598918826861530422647855782018708259602211886269961917840485753346169633159963124155933722461891125581036276282634837344336158761172134643960471075630488008540640636667338423423919547448850066559948647373336880992032728103255402991107776234522511405432158471188818206494710224735820405753883057317230494721614161551575944555390025982229993669837658389744803594211045973577835094276020896316529890398979456829306910681863567575944491876270040331390621788926962611117394321875805575064358486773737434151589492564518564345307813381938535456471999949298447180428207797941574072550058210160002800932815712248618270133033243542095929890848272136617134472442171424165762875188400971460526788767571455263658039397228566432125359087712080998069640059297464324279567292967048090374892712881326419669611412758873865152365972100742101114998246023739221951655064092824217631176876990630990023054063580999765616173363397515311752064795749269891862346707386349424904202879245170379746582787582150399666232311269514738946933258842191548049962147574935378790662777586259036333089444890009144817354940707820321884796168268905865585829591488815244202660832330142106613428731739104073464618686978216836149658328416753590965852301439980377144402499804814013191417076762680521230288922510084246103568997572408060634322714734079689476657042608200241474615567724740272557841552616286426936877826398814566598784615760915243891532651218030221040978437218917839823128064105326894738632020099217311571702362241888645630013800702712234279774894863392392838761713205771672226358873150308049578115050303634645043888085857846206821123216718148128115800109148085839055672200828684462284743911505126163793844146404706859992787534597914237501207463653371414182088054629731666907993534385591525845547150741883653675903702338844423048508134523509322671106425166920844038264284101400505665451291961000199466396471182747507846073532723313638101069547722614358543802178144092685207393386837669190947249680066386898450616623763592077582523370561590495334289215594555764761571988032699888626150461551323277037939438019961601433760709821148799128965851984315980079560267725764833697968705218844848995606802582435471909717897616939591322079482026396805344155744216460163661113251544582434338734511055730855657655545684211214519662722786201685154873367702072799019075204193078859572169870136325680044153675654456731604703324780742505291902750608927312942030773102536928575285590400596997576033145553536155167932338741052659502257254836294365673170225157537507085253559168763333286283556289588803101603824998811180417868389280709841015033161676172003158802671922957677966270757984054891287727071118828381292431563400231208220188935818917471328395124211090244168260542312872999957670561927931656393655887280514569907800945753849813644101643302419221922089713415336815257725227234635280467491879730805724893765091669721657909286134535918188325268298782879351699369705755019863129399347531474298219390837848250135197047710356699645167735443179810101491053779174424854837876257494607310530911839058548755641874666939156899753552769123561044547442895036076428883598473983001785663192888396336366171766805553274612794810223708983956724629082208722273585636913295665902749160469948758392250371823484186326484671930086487589659719953658573987657887227882851546770314580529129134750312173932324309847979139507584651788402800438043335105252326735399277230858002671636526514296365080072932846117807338055896344520286727944999690836618281769236421776105470494849835220697968869886017652034466569540182343525221553181370688056831527929118037811947777755564012944052874656638928630279316252329073329427902632954855988271838871229182744622743600389581291749990240230437587295489460912305342306881625610361544910594759768412524746403176601685884428194073856659525607999361887526449152800568155260139614387493597431543946001550209615444183896862841008572874940537798150931545202823112043410948534045628451268309786590498538704180004321621729474982874135562860052821419027092637975322967119005894089089721777164031916156391883016121408668090743721773517056695252198726637143839347285608592309707837278187811663874259832981956324242200867935330890763121616141360323103632610156700731122416697939035023703516141060688016226059898973529112922387452805074704483175921653856997382255991178120288925343218885018998226082125644562642923855905701432258452587755417443529134467912832969806239114494374830107087913178789018648925236111340821167392502316309548852097590117761097327636891285071335825932549603262685643112222705018694438751657357935270551665095165979786528021644740843906641128984018109130840544215381888889922778853893836797953001225948959812746661110465994425796429637352857118673637751172787614001669566144734680689435558457144613176817966766315631097521961550345677014055570940399134855116398801795148302975604571987936749749277567377173989543061454618824176632757210672250246895361299286028597466198244692651161566950212860841339400958211055679972203938422259981106801462385014784684367758191087800213797205493828201911821177527081358553169135980706178272681000867680153126704377658898324933233273959278916688263003981706010011247251654418268233889715477716251397917246630305045091235088204089400821498743451732757187150915829782115050473926268741841576716407045567236118508643311876858188221413187953726063312681580002152464072581404700943228482899374430774925904944369307618818764396417721070587524568810517307196909249504651254282688300497186553149268824621119520845577819901241628629290876051032513782708998475403917834231114294278441818064694336416146276361727965051369439740016828618881814815721255167704315742870548455414962376096152498982180993229670809153310994229756460643961504082153599531416067439570865022099120182471735093638145070503782563269942285872179252764604956864081317920692593753585543500807927950627863918100534944058691327657940266789199270073232625251261036242470005347208412098030048173963637354220384903898995499095528828001009322604690974169352000446997346880935095430934370796819825956606183497645426297350762734617678244729055177137269970879490392340388409145065215310190255226036244655725831361868414580147859430430780288781617852293047547946121212538319581326150727499392630147432434119239676768392645737468799700305551598648791068456235406523718353547838495781716690149894935424771154710341311777831718454564891022450761028979242288397851329948748618866245721265944255552879820827917125677591518358542797091576884427751002955018303030225097858422408805999355289146246114211106959561134025675406960812383677697236824132760340069654988043940341525060915471008104848574639452213172254881066608916891761372742501671808196918723829939609457498365103793752765723854413460834575591939066440012856813053580670234331033684101688277325092393928917940237988296946700055697149494635743059172678539296639548591929557485970184281279369973510054974751425940419186111872039767112078062982796371468107588827040652016263081680375662842007748932242607350861207970508337432786861085163936164562759740043833009596166081497249731833346605733807893249087288500537870750929658505824769483645427012981378045135667689339706675987638251215775092504480432464186595497029984059311756737658518122832998289844946691392002502719710105900708493342207851863931212820814427698907057215258076825778325233116585712888624723386993185599439397843756127275085116795181687051563014084655463760229669110446699795429596078135332393034455987441020164861265431876927100018611594617741751486924976752239454011132948546505615873885893345397417382063939365037419041358176377401933859426716910962404010216399895863880817711440300350331361443442172386049902246913054487124139983451029016964127124670881413000947951246161289410157396385183451774192435559124736210896974751484392644942461423890634337349906598630292304189912902376937613423758082802953540489658140752452031394632740709505754339940206210845123312262064498628523528182557207744615278317779296696044958554890824968190798669087757052345993863035356212329799322938733129463452892025132856289209370990690746243619738058819705292510119553215892197342994799879317682531140186722633581883186440561461491676695711623236906094553951846304323580930221560939048488719024831008903825429302839356371856679716305847492790167423797436254552402271367627819813440171793153826776627074881528199877268710812186480319366692911166823623712183890742980654533564398378053274116632596452525662127013929299842871354258933549594103070807430672920793063236011106042083818646066722621556184407068472705989935653664057733391233560789230791587413231209390221995411139761400784477856425302034851121685722078460998751000904105711910740625538844500595338843580634090181954912297139435140116910657896753202661676260715717932134791905079850398009488817556553598313422796808909158362837109279574960548781395708619837143655831743177211037110535551199358017625783920058224190828282664069960759346660748301156537240374748797383569980252708254376257426081184523880767507219536843337842184512370316390640652282595593422496011368830876229296879324340773266297063141890875828513057626693724372763492660449247088204040088802204478589617257688353865913535403091569386999873267171271167187745707529542404979860917835650958558732159756808604313362775409308904718139667494732309788511973232252727190361957602433549266606149867506191608324965547540599554004977709702046767988977013684001778719094749234982275634688724964757542962754021664834027980274180131570497934728057697713889911535083866647340080266481048907077885060202500498599675156654269114684195454986431917228770312501558135382087327053241677022192384177430372093720166434521602155496028387502752276229212572361002835377131473981155572860117073758935726381255909753359077691565841829073330514658173207731630684123076247540399849541507430399777005629833552675417448596780387395119177333039598286464893873478513165535966638589084665417866132524708715819418140033595711193636961498438183033020572965769713883158156422452486584859159853148575794260516096963929107792759609732063380855490897585696170984937355527008488861584935057442862595212793263750890095177265622403777573237892387353554261899119037889446160231517215355431605165772530962055633182346619713267710434452869107946581819501978476598044496747228661900802135410271959517884179156956141253665575424794684532667109701026756542239451652600180652741795878766276212063883022289033316154278474317522738771671036685350220833021332475582909390253363025646368766751013903829057990656135916786399883608690738433664942408646530457802836093706482726467624078360611088289903545370974528803802863192363719770866729188208121025174167788875640143294707578568174387752455199025749806473954790499515611697655064852426179488669357440332765683153966303345488544215084482698699361853221522709327427837891523035202301478249004576115990070365586791391540885623257730851071504238046739690773324916601479798648461717891564129443271377413757416093876435582141332957151210188802204894511685964471311443956768120157779858735062384347855653112754704062290060026509504637740113167850792299272051762596930319168516453751660537773395850729021237225566207604338631421218173527423792312894956033079202391264226122669672756766640241259332779663672570370981044227180189407358620581981393121010834956921599961234190453344997049901473669562647744353537696546032452033563951014790811276034638337779947883534081467300317415655628257386997194911821592161698510028047694583733296634059929048860696864704070667070077977037088347828021366344693695783261347001716319559183733075962156819447587514278627593427990668700672780455654251365128561632182591841130970499328582753838726130480616866218091408328412432340413146221171791198765358764959119629288687944028594944597601632858939183256527832211937524063819616773902413256901620666229684785200742720735715410044560956970751556460678232813984931387554980690172578665399755013914004005802291905201513096860926067897643921888148109603241654484203148494384593210568568377425314137013320244049055966668832313067466686035043240674804134160948894999097134523388951606679040658930708969022950517136980793347468678641754810264846633544153476749100244276785944382527409222453531068648829915718942147336388341675049874397255995722207793135219265454754592173416102317426550051910524673019453777645187087485767942035212060612732641581673641551429757103290296136546338832795106033394669803905716642024630659494045267314319105162355634421081520219716284039594276298587363956006665813169527060585596088288511317206395108776566787894704780597739741856813917820807566916378055159082784560183066387773725826630278787285174677955648381881890178196752336596709639764981532569340161650165154881814265310139572567215133702283488882348938812091847623570448029997888812335593118805735143493724732191376091038367900774733793044390231454862663592820518471479373792908579656449489687725815522986774794380399281636706369994845942522741410512326847533595556501680849687863250856227493054395772770688392002030543817233074567070548107154951643657016778142871679651041054404798602015722995132430274293111224640706147259089529851294154650226815577787121428607513091414614963264468750377646201025351360928837861066284223506132254804023044220202257259380090771005634283172815105173422048594275374993284727685860454738944354419454201343016720862150212797134764143000999822478766557287923600522382423700241933739100447298464560628903930312915757857310672048176251443333157469927975190626650570714235911817915376529750016475091619533121029630831533341717212778201106147274019441482511256426403267943884095430977677550442718578436391126869250322550688633223188601908833046597907295598363928350463791019139338631918017565356487331542609101160833458852518659877236601421688163855423662656290919350240528993383229372239002793883879241511529689500429461880138315126075148223281410058505861885793459076188552899962691513619824819198145756071191928818842587063902240495771231034894241575807925565292962595767741098100272789170364213069610875094599672826217813640783398858185558604194557332377180717453249603266502042234681510595690371905815221049656119351393362914817412241419285043470754425493293382094576976197101804748166551450957899953569081174080714343716189067793485414039585313043805459701938414378160145609813256559492899964819069511728568608812176976591093347382314540535311999113722109231100812565051234032234438087843687356140540006476252740924002954752097403940413027463751878556600673339242119337963554874642714665757686108185832768986785682781648801531336969572161632936412264644297230945653508913839115084897340075973450316849669197691296832575791330945958487872519813678398168849459777843049607417853185957582786129813865039187070466605885104382548821052166627465844718601271159179591739668072304612908211548179755942622148074443341606795276321428481031421973232353053663336832685848040096754038839330753409207458305727266477124625990613216094135175848652867342411436685857980704399676898006760368402013302976964902721820866537128110279448558594947503968108024196893684718390802514881579510500132533454364274825451390680551915460816799778517261798604810327238279630619741164075700100969033629377758767266989269677729491334825617951877514471318403750325247337362149087472765162209227973981054490282023575985588704815887237759415274028327606705939156317517482962542793001457117561798947566346951311883292120971852711242955349033998752208084790913723830004448282570885103276480535556669306978797042882278906057797414205937684393225056618939082081726936090692283277288011688194025541957746927322545526814176390963570452522914276486746188903240224372076707051447045439620548428075542719195927885558411068651075905430504150207379812163346267108535844336068448781301169210315417468667389617701332244015667632040423993181325270318085596955255146757801879515674134795780668276366501974874744308965726674233082646111901705847939348720316932835273116105401543570954494675509485488540380311375604362778040443141529616418095683301192736387788073317941411805106029227029747906697531250884624802747256269029338949239188420945902877326495638306725490068577532437767724714173719065674976401345911920702971243345969765625430997893667412887563982887220290644723037331313704404048360672576286075007686818040447255860737080762552791823158784857154390685931795573014321268696722051451466490848089206660782691323266664570228647354866485148426023140342514082439323832925180069674988318742401050278469590135110866097599844057198082032842049913015454924981770338169981166039310978126602422161264950336693332172994350479669549896550795897672581136621127622824992609534708215140507116378992713007579015560650800253517074884773353372530492149115633856780459768303899121518800812891161103028008251229158759998709075051517694576153224341076362501555281968639046669856749752089591650537449245785882300807083480342718734631538531897328077060969701909897735716447085621149392648171565171902073731200610140026944587928267711250293719874858089434055843476053065756481259935562484744889820874524143946786893743343021778071584266944223107263480291796365296412191472181710054327590474574118355648375888928914507029523395981236883785794646210813979940953414244470009709332689578575980438482454359889578190823059841249849656414744587821484475108968714326650053308299717365722530054897173086200286984387348837147462490327839300938175038204119298155634676993047444054762657673579090180486278148480022826793254908138212768805942678926195267237102729379005307782938323797768740275910363945391732578787961365345376455755259542304971230095303685972742625692037977364716710427469231322676413646418170715231918019217059939168367436772556092047526964795365125832634245676601751592462648197741476321505999901712760688919759684768578240503142452323039980980699891205014660515691441563025674447520283722635001107116619737400169934235576452611901864260774411851829935410908258362990997667751955411425124592205744443559841581020452460598227726383432099207106445977698198703377226909342680644069923972796976924808260345713330212822813214610818115149344060732333730512606025282093717440409305737817988103039211579705235638037625088489625534450849501729678442786224089062904878277269501548430076604982959512691595191272030260876906727683399827680557525429196358584375251697180517976683251780783450168388802097292682071749918442804201319735049750942262847511233015407642318314659778317975027857895685659898476041101053362273734591932175270641300613999220414777352024240466016293332661907722308365731223384809861702808666069668430669627246794111523252543164803329309672362092841021556959041463504294725271945257170131003804756742809634578424272382518895258045880953304322278950614955649111897003377313369849502099063676263441505109434554246401604746785898110081234452992191098802148346723460142562484550594890715625614718205027363317215902857358240764169100872218100098353716659185712588653609400613515580573375149111812324097566394718740720863824307092723952234029732234755576018001961916336450431683092217702036759094654210750223487378895651354731858683149918314484208460369032445838633654194221794414103262626483649642687101849449416985764790555561699448334298253007721706865368144149228150388200237875856134444936951940823257030245162603188991409919973333236313900609453378237570825953557011442238688147647133918698428985634458671812233264480222231582380359377226776600010538034458858779209522940793821369173094551581915070627010972724463740360945511716905463677569504505094393612568114528323574209854820302437000109971615665193200405501313367146074545474543063129793031248722445171175034724065327502914680746107585723568889839151723960417281421622205340678642559450704208436091960599788637059403001212928511460919544587807156202245509575671410299376153999657768352057446693623457175367393951858765541520208133898275035851488794472451210213364172776162961479834454964429804057563069691714968842808271202875433111187734852190635103338643084098839112461419170916985167423603312255256974929112969057111233500055890548164992896477177515474464080337426518783088265192567533538865859387586860873798271842998908234148987610445879219586454017877364354821221771563803444823398690116227748338302824379692420879260381526346000062965542964547082309146324723089557831956501964093568183949784538911233248584914604125757028116504566971304836903877686271379018187497824858639240259897078271483739838900398750743235316801439565663530273631404741402598954055856799122022253496659862028435199652660393600721744827325731820490695944298616257204776813097769245448532078631958812281442834882655118459882441624646982820030344894013103073291813471514972780865745604972944646308158311724291008927120999561582403856379596871793860077486815329429429208781061835747415105422963800652187948763761591648715234229945419986444460187710023274341632767469287620804533457893560719643481335309511615236448447326207450631102232146087507714037223051149714805347173255247936512442762510762475378587932547273918168140091310393641662031907681376604185673785440984784496340166407726634634784321079467912982329769162273208697536352312049055366920202109444551743988145533501383720704440476263122786910974115235379508308164412813400539977414792659165149593822307225846218499256269622135301962329410983988196294989853471351390701863692083050411532217945290772245398613394443908934067013530903031450263080255605218613907765483560359821959206770122936720957550348239543412057481401794445846455730752009852865212430016375166073832373970279778199061674913038114830518250828935836052514716141214825022157837314499601811321921087209833141159461518106319387370751580524410439638049698880707136754121177264221768723987817593826796678483851960910622846741803661435675126512164061912704246298028199526317315577811211353445610887817726913776555585664482009563575275040821629178432500215870486927084691770203238911119030998289709159515047022461554074650907110880509603191618164325152995885192056247259325227908038904206103099921350985217003782749748837314298691246976314342372708254286819308162929665642602060456977393056867408575731228039598741468411183119290607288463566136984739428309061819047673381300489387213783455766261800191204744274125750252658409665174531638727718385340496116897608977519372943868890144174418441223152317398419230014064451190384905944700185961578744038722438061480736128105854952702621171880994845212213250572375110910656471764097899863300587815725609283073720305871606229630703403840534042730559646528410229155480135882596320823324001692023881432574943299774600884791300350214008492596400149875581672644357907837658542261772888431627975655205045341962015061626202060481285998599167157379285719978943511609975082774979967219609529340988209974268765455403007310457024177999235951018275238294838539014420308399869181479772648538932135229892713069662624208124881189222898627074430962990641333988747024069662331081794103951404870810715059479812021098150301056238260244868558518751598774810446373112264745349709153929944403023975261649968163625682980974734697875261472150976868804688511579879145239176061483376572218111591459511528726355519862833861421247301791551312946081687193367276097513164255748859669020261854706602699260833588119231565581874523193234735393076389107134348468446220187935099200250380257954222456745046061174846575639433293323046303515809046929193786283537264692594523138366586325041569320416612101698172369016068392930074766596876146105700254753250424426945422878395233316538337955097668103771052009450929046418279442592369358156149346506865490120187854456797064976141664148016507956640524404519666278193691860844693409454836227209771382811238654767504844882223112342741919291680511123931863242405563908425876107929415915008432471795343526758522207731154422513695016802210233476807157649541964824981977082193538665205789875369616121489051716158934050042418466677817492349514486808545842145149346515011361308028068387177129827737204439294958997131462803616115903291315979834437181698002433307627845628568590989156984614192268634412615734466864403351862755826655826706380720212321978264669552668316647598233370114304373839621593461648359662893958796766606644656351912674079605694019703094311705685634669079610278353933280752329783657137677768456039374001776705551168658259565912280577492939566686063954194653577872412672310867591514604613428417497831401222220879505203347743764705903399507880669802185707208176418186429959334947473935603253140833225321495863060193013329760095328148064944660927200372743682443430296245340017600531554597197343832424056254962974821509146274034702845975736892512983742647435363145514167758150334685551371895697056429448906731362418469553212291259476508095648176324667701864918107286554628621367263846209568834714136439656388595735699943739937738629275955489620058236864182804542955282109594524264984803902279899730481331043029182724286846086171606574093828302001211472329956487364725825308346055210089658060724813991104860971244555366920622233546824889536552278836451410260588690490598127181849326170880006716591158852222859098270728811999682295628803856932470189083230181937558806723938018099233555114415563046696664604700890702360698058201383752669945101595441234753056538352371534772174128598521829621113430488809916304202251431525453088961463342215068547137077075707992036744965002955639738504718573430644884034252901897190897891563098093772015312459937985686391408838000976306126942849208211538738915448974420710606016423688272366841451616308158431694753825640614795575033858980309737486653227030208105157257376327589220234999471159950246991541884480683626812018137946765269351273627034295881429995608637246260689046250071201971521817365975343533737639154041679678329813983495753957681146255844925901951373077832601309325355344440301398679805814051981104614687961083070006153586526512049900251860546380830322222261056236663888024632599997834010906154725691416634738196332659272740257951256107855783137439214844030545198006775270137743109293472730247749762213554463718558754280387350677895290322971133226399415125508980975525899291145081208305710894884496216891315260635647156688689729999146817891993714036702546007056201404153285261489124817379914236556111153379640315677919152089247873853319761262462134881228444769232070579178061851718262939385677950389983945651317876174793840548432818542237283340017000466974893764945092612597430349302099558575755720357804043727170067781875290014227783509136958187548413659511651963376572742518126982223832110188102892233464871236533938508654941775658513857885438756437105523341285607052846836869121715442799669450716786773181131396819845864245682887047962931665377024692235196712198540390093364722800420989313631611845129172842037324381854526160655625640323878708321821115704187546588725076974310686614296838785599220239712676901490142463201635645916004975692534558020216641911356170196166100994033794412336342393947274093928852305504132285207202190534229632687483089731564819664840101091657569938471479313466090228563039705883822671005728450418193667178922029305659747999784929893842215001645802414805275726304211700947894491643213923103495675460781517318787222014283895259711397868426123378614126162640675157339197988899609463468764943685796596928777079091813160040680263178415904524087289104475385006239892336590341287124518045642989597556156645865305848610070687722951396350165825848313472237225104134909042696885538850654633235426882140683836927405369967476562152861215268790405295876170273817776461307145410576281187442298724349997667365803444259358735813344724884860884552588937531288653089711792472414677693405692539767164378850546281494440120910408399623055980479263003068967773784433122954425109689756718590735077879660316326789536654101740550999181486174465422630447064531323802261424500674651588709186578461030975036288189705382020692102589203643850682718011283999455584815657897409174553009429813684917193778244764569841257446485692462635749069687967027973334849608491841202653536485431096431747473577155562444059125378248907429112137049360179635551542719321767294529735759157468312832321515412062822492551738035822667356761616237859054651782522253186377341905609979433196927765702882249911377222920697069546824504053130952906650771769457383696046490693494263785172800349389935165613338597472892344908902511379595385668338580824122466531008646473138624160355658515394143788059635745170745739155356937403931718932372721206061152947856831129583215567624302834887794663481182569875456312729371761339814657189748515201101961372966104251382048887478924945508711869518269469370525500654975926355430523737412951848044871855950504897177065640936772990869413368102259028528878944666383096390541327823881643411081625183596196703076637218921822437616608135490178695959695614449042756011597045536614451015096606381018754032443356952034305203858136765234837847362751897867788734837510195390578473017280152884502786833848627332714683463694407787662786348587603562959126526778440749166290206296985498980841603781187891411901751419254293517705547050036605065286519750789099791763586251702608878499089299392102432499541367752327023864760345802597744438539862561739179169309824033843423600649123924866187504573924094395743102910927339153942703456798903078417439595915806976437940976088292711159179005237523123080450587784778320990353091812325408154152699743403265362882528346876853293675745940135157370055372406697544784201220924661192334291371805357903054313753355335529979610762887645807108457036029153974505614593003481766224213438105037958026205597462321657900611256474312363313822133828785524446252134582731209863551006511376199474817420769283428812012013550921585887764909339156328901906369969492440690541925238233731468754711939792676491754359024055483681099686643465152467263516011133549750663380549637688025601513634409838027445939671427315796135400910509806227052202489850593244667005505486073102220094886671139803652940339001662366231148590168953508034630736651662834220596590820394675805529398373265160757774105942829020690344861001113110518679098273657607945174179385787503737366974890595901581384503257096300762571322625690483207310793288475826643497182418644158812000569328889759848264310370650757208902466634025283102241828217457867563618157869300713179810677972437456258007113167711612455584967187452228903626511750130984113356867328591993776494972677612610089828005465131662060550815758031376286889700432071824983394923585209843878509319209731366387145275946915283686024969169223267917057345884558865493965247374476883445595724230869934775121804562282177308993498153123690188469238912464887326210968011945635410592417533990506637657467841814556644872288389112794237568777005562036177404429934997710530406268403387527094181447297880115375377204003170837615848924649321795225507659418135110690874214791886110403941954564740362287349194603794086177281231656926028199043089453451622026987112316501715935157124693825444822130081739428725771843441980734145007251948361158203591890594928801893776955761794763450097256798746321552723507200044470943658149049589896342665796451097161119846906318609442232791631175239802578940988213749569659734866568029225084602225105569772726491631196283164799948922666554081269260191621540190493076017361882042387760451129106775189906787529847230042331576755683473249352292416992689371164786255351568206215213707968666708935359962719507675283452169992924993485792291378936360175565514646759415022305702982410479904368567264773036094848013799488786526369377914198762434852133695744602535791409935939564851900234177316214994656798503132247125728050259446977725138998512249485658929566849353856429625464498631814015474541946728955510028236109866813088937163483947048288441937631639353980302269382167045658249450124026494590178601826608203877409740278999418170921959859233698810771011241778585218057837203263851173996686123181778895080948650068915046217992701977769094117979227654631097540329362618051265628095905270082670791910461135654064129293039980075198586235304704834253085470899612775406060856263021118174184785382776565899561837742961923427139063427389639170439563423288069236399424030240822490123628964684842516590881739129895765205995196517762645303902734018952998101234273557107677103228453800438386812617906981176327323053816265225237700681703040228359024277483535194439006862329398075531990608921477829136391990946141238945556161962978750904141847479011365981183506402124403351241242687842305286696769548797067052944012522121498883744354688268879481181456674594256165628030541337366820730232590978480837044076560843810670567114406537127440781272976260252908858053617642436621051192310423402655316792115490054773081756144357643682205370408701379858533292646798014301047779258098435341515847476274888202037322335274837717688130132258297287466237594314163045872587069411966130224862895579963700179300983449213267293090197776155553174939968231939246082428189979437383073777969053959199327380754274267813833405376292132228829445226720132446077283648129272077982477098147314413807126292879337129546562400029439674996564788990924943801037331960819325275289042163310888010107714562333285150774466387385562022765985738034537183854911801965491049465172518204002561958453149489081507219794536992218584555581376468045829594613139131599609067404356940243403159741296426907877836115221754547583335703999694714213121051863977932714465142411080828007983991701360357959733502728344731406161954010740599799036353696709208095490722901040452786547518319330587900864394763835962213539500221723117752729129934007263917005472239823702514201181808373683695660349855212455751844332892528960486699602535933119530208309353220466633275656218219674592544531334950998765875224392999949580605154177601384466665252885392072442091201644679373864669573328660494470683523729787673190312830777095901006398410888389330166650456392524990349694255126691263819635082998116605656837687402385837930874993113736331420974721548416395104203415002958236228959559937314824151629061404451224156093457387972870622616697036840160439727952033527400143071414595080436649859458816060285031571976682212742142959995884073630236192522013453540152261100622599341933967503862055673987307804247630917532056971888922020959912202286003009778318915411078479100199846700208693685782781631687709048205913571539505893671251718680788741796315403840465351723087784334734915749117920006145416259882109981588777888294104212512586887412507530613333372959259472370423521372367207130978579266311484823660500471300441880897190192552368799728488419236976762587727934160176819433137500846560936653158802117519608554794549957641453538707229298010453625400728387856739136863355014134634030105117426909639584271226124988080266338727503224199558249817728214977656560644488985217142979683338723948951685824598563704891299279351800455361917631377088606990780661338140066254011414871191949506012645441801073629146600869694741635857731871814190073493242649832926983775714979532186199781443057593522048757449348473749408537299352336810287064170468711248162202292178303582152815538771753847769344424654537155107317757647159389406246667086447918487816880756421412071727450194538899229210201379168143587425886855482625000608835855627090699268634349339522788389906837426306880281180565770623298011943577081517427773604779673610747748523529578416701457572933711597353916878929545580324117489324571959443575500752447069242120910400615748080947252175905876831799441386521924373541055476476786122115319538878275310403310794532679324663228921908423691554977900195406512176305219744567903541760228691000733603140916823404902410795983448442243824746555154989032399629166332644483583890089390775797268874183167618244026538370683450848764176222952531792285652912096409036549347700434519187021589159473749179175505672300142755768084613834988346556973273030052492615830221528235328314710046121526126912603884072688281973253642349742645512851082656247886375185861074613747877083026651117416509213817725733690917398115407840760391838533408245960037669094416579750660198016556568991913721192501782626406061567833033979338274709501325739841239566572848610048313602048330108386828559157614979055258675782595804984226004108061897190421154377230859959135422109288194698519228754577439430194512000035694238438819559140286887892064619167233363681009521218580160678979024924234926055490715881722637215022811143006539415679794580212836766503781331373171788152421412446701602758096124277967837100647735980021717792996278312367988878202246744042954894213133849797556024408519005395573142111008635015266030207479963560479051232691924653015284002392265514874157737297869523791105882285690988072579855677982126324309261177590042891555873996848114791810823125406323683912977156086196069840346565175608217483363060800123283608529522778616508280436351525875805985949954596713508022911744934117174639774840325209862498302959446657780316719997325040474246071658990237669549979525112095679163977204217430266094272933731045232696099164794045461655847545197683022538571223863932340493862895231493869145360782856197420113159290870709370863135260395385183653514448708583069651510940175918191825676300789073392588335029006493547551225413862740765305559254692244116076285430786305973968576074544355460134231234932871639632469396772971531671272128233771520716946008418464822499669223667100481724407938642725741014125790467339304169463939761197435647158604972812062113403073823009870582485929998898890136433832755516897297141143411800091872953695848129731485760190169399693560536067931036667650639594682000553648657328994253046912368318237839576892029575259600973437950665431993468004974658785340322897771037868538376595501153537927858806727362658578760406469844486363126930753789068829033333799643968733478195399958535958519202679338189905817800181358470595290955855591473885166490159230563283480902991507394165736754267063883874822804777282392815712481963593025722482543979838538919149825461395845132895970770290275691818677163100396334667746334393262591483468664615231592321188705763081292967097197340931981164803288490095930395621712406302620469955182573988044758264715041245287113207656377385799398560440234600335412731606956693161385323910765299062258032880482565368006493388656307901263390617272062390548447005427827024585233327317526522623528415396249623036642169002512644048585422807837816267604642430776798134849416735563870682126003531082989057301304030663511218426292603812267397697235674686401178362216315696587291569912169228442399363055764239676261163056968185266392558097732430123206503358529113472220185798814083668742829803313094185173651761358159968746740439530480305288214833005041935385522264253494951314369841038073787984192271254716484527724638855798115751217091258085757578618812138663254995548772685773336128282583409938468736024854916400558436082252159493833061950038635901559459752098798093069980354361940541294501423227923829207820338263308894856887866215761850926392440718477270090208239895369221983349697332161257053860982401245889654797065027833595146153765387735239064937295748987363004753820447413272480826832659349479555030961456531882655802377810952673355406615286097345411058857868864151528439089880246761210088002866514848425844184232003259165156645587158239470251295317064754274401499794968261170743349788893383235462807351343416942515471313948161395004793917433102622957553529389072238688621036289892719030814891400572874133508907884025195741097164831725565363519713290100733824933481784933275442381266781517011500827992330504330612229218942315085516007478762379857320481226853110783975817972827166892464388622465346846380458550580340513813727722103320134533875056267135452150653424293234056603435734386778437265627270564788465414588474396975148621143114130701664910407487138727876828255399342054588735330168093817297432321619482084550555676150928157998269148473752268701283062512106887974451334434765185555584887262348285911511171077617029682195488654488309129709470200987686524000608767397304819563223161433793563373940284887504554308659472781506803506009825062472949277421956461845359909483678911534656762037437604776109015063538340747135569952453831995046267391238891876553802501877348714482126253540190907492689169092046354545550844774213781010922620542567936718006687345047395091726891491775018849766633937914010555845259918329570821644002289980853316729953958965431446328184840488959505992945518828981046115042939959483501024497791749059184583102183415650539362048661962109697193196250133989277755451028779007351684571399048798461479529136093199196844581440270601823740085433870759691701647807819950737039387768980482712283203606930334920453418879119826862751258233872296562095344236060464374431666538956451858015925149043495791512951304769536646185644577323814828200781847853928886380494880286486260614335832606368524519263045142696715733335321224873476779143201939181278539485710769990947214451430292904373688973938661968995010950483001060857091974613093473977985525099548338754984471966534632177712698816187808964295171099071124726922348854349568541391915180983647867352839743343306880894361107754356579082486497075810431349657798492708591339248336378467945131799168628825003732507335930915999740663674475256279434310765519861190045709655040269391945671988103833917012650609013175272883522877362334148333809877260266074084991449552345539898444186367837791001969858173939322341131699966779322013764481167630419203535192448458545667973734689979132273844151822389040884935081392879403409342349180867673612916279869026426214485696816228810900656615090481042724687875019791539451430477907663685634487512306171683904068760883260746703894451009706074611103399616104482524492117723180719616951064102731471573941152651995110785932620468393979867099022934866183240418359725422149104440564585070003856749255424330863494619911334769207229076319015367890892345446941060809330361619904289311497624655157705455034010653541487940588223601737166737071364290407358743145195257064779896267849406840630321808044551660555572050863845120285711965718254731317943988011753077493155096291673109437212511123804949375223458343935965173398821099340358141952213593053485549617123674754478069682581946768740934361968005153551818697671374148609962577322696235015337408613952879336730090947730522623429414642716824499518143361478511530071357973442063803737244254891510005628326380880882354749745658246558417793645564676181625443287238442803301857115626069701245621012670061794315991560557590868087077407006591986577882480304599667632737835170275527462494000677593161441309897951112129490031658525031254954157485261858056709033105989598034607750123223307269253052900487389692428136530279217654009481926515932628203825348482507504242975170031910467833293795773058503350056709087055357920513337116887743532285642515527412528342450325365084318644642123230319899042485964251505374451258850679930428591265635944076973543135015985468495769816023531586686429299699110940182559477255950366431031400348215360794388288683985845023543556729490941643668192317944104158114612409693930987385994089545573825417530722444397820766837699365468153738023475839513133549796995375858047089193095970284644762033294852386879295885149303539412538036053563345595787828641553474293050926914661535580782511926340459497297157007928190160424127949038631838499871593284999363246022794697521844618563503832028919662532443515575021881139838768877142780155677435797241011988832629784097730535681170349045716096138339012934374377352266407556403030958483009878999988173970108549323557681272832180529214011875083583366870533610565207975231446100657742278601438833017476125429070284137810742203010649588433600756494646095740294420471784672757963827509381475149102279826760292145494711871829894612268088563105568686665320976931161732072056191775535954295082444620506942930695806763333738796824330501120264018319522716131853285731103050958303525722790349478688376228069317756696299543259502700194752898119818912915423446132203197379834822735407434729196275165256786722507959443140236050219149852427154338733291475993182080151587631005282664924078955805788014965911427422076280391177086738412155567568287908123092496497321333576700446055958358193522575700994905591584118001535532042898238879621302819763496416152664213154940504353452317641511890176139213662372920079817055179461936910757924806323029147162813653779625490928894301789424191293286245367034585574544834105530225416635513639768772754762517604701421908444502345984475376537152642147036148409425818335386231877122893379313001797844972634560432683363379483254353621403662779721438863268873919076699632078818912056332682418109189161238787674475516477595285666543454316731430833267989001437663263541303183393387894451456196765062229455826967505367608160628282674344304146310726404437592829661066882163587153064157552515484173902010457416631919006569072494809905221266965882461475319541191489511707095091492712369057580845422828486893646151000555588632033672098015892600438287638991848817955674151248905654122426470370711121368313288895019182322281982957838182483193960847795019810590705748886491909105552276057553480938185343095399264416585033740113824333779880640604570826121214034114512269158334766940498961307660128289926686559595204491450388289492214170364506805022731157447866751687663554391222980945488450565572882375876201115034026964595201186143472954989538125376828462045496576709936116519622640710660241423161636281533923856192984476885178247906403204913070083445848687382904305575061438462770452294543143718115675691792537169917584004318332247635103473621543593917961787848459550125808289536144537749981630645272619199835491500527950887063032556459734533244344760771535342319806606196303157521045332196883036162830648510201743166256259754001412132401957878795365836365051324448024036952753727172460917419492990448450869869255794326779624255071665264730950977557426030032747208485770407255801435483239008728379243436161662750399570372699126699193717542683733663437220327744690507708556187921530335871152203762748032059883892019292312070012093106878243648796546314891257554381180294253985508039647429226703219704566583886267366763426744792336407173889018044569325153522206239282592400351342283396884088139933832966527973031879214062227133425403971533422502867596990083259707856596334259258399621196579791749445718128165885559467426706764105466101743581153264017635281321190631250019831267152484189343871841976598831103081994939265865199043164890443678757452461337836462736007151063149832254137780759635563736983841398714629701142809803224597870610685342915285290937075232893011659512805237874919326117906146849472258076419380526191533388273068461277337446633384795315303819725828223402780745913700202849141380646506244506499863511534329918596700792812411617359595813908976139510622839990219617715317946413464013183176617591825467899882881395699753656035965609837270875641361183989569177476807949772138327281644034119605040835132912647109280081606294552612554030522692549025208248371535562997194765104727805021491208465449003839798226608476818711675646864440366360144845942854878509287782011983587825394911831158463160267374690589283932896509836613584355902541885711214633268999038853835288348183244729294563350225727387840539183083960213046362841703952619655855545123792563095571993469236972582653693880196288715600874701201719511516204046390579796373104276601725102027175085060626793974933469235661350701700811510573314154032023643992383650481439193667199214942246482594820911365884919720101557173361296677978553342828596206729939996257719130097881840259879614303730420756717320464896864903227644083622463150403448982409733930896568036567311548005431328136828865370736373648759544184558270602066497850237696154208333904181320709746906157430920331096272741705375714178146469261134771889804765033146269031058028356102105428669754323888257127586108289400141327707582078228588177713885982300317686980842009885630170791249460646431029964773909373379630201267170371047868258074566979719666673454005247547990967838065418627467752994039646924400933331616794740063855022533353281115119630167964549435346942174654633950464850146561859660116324856732974571986101652997261788987480444456181826292479099158167354272875127328919107521438250386947407317633667339140311315479012652388149298366165280056023423623799516753391189396683496956395326816380266958332263719822686185649902367960454331612295903284209484098757253418214465727873922320122011074457062959284272282071438351187011924055272916760087540295307333355370296891492391441465561230150834567788035968292044587913271561357356051588066872522327812894844823862243656925970537739391201052553163942361787801345812341741754477172490288324719933464377569299304706548441279624136314822848647405315889718957623242082923852063071076230485912109878590770119019040543113073844760144863164266536215929393899748638280794156464253475293647375394923083231901298900074615451315962395357294943311624888611050133715235235068578743450742671472857747239428912268974831734029596894662004997092150558494993617738894865987608387973971205757804935714516790833927189331434692638728254675730554971667918579984965499333524394256189957416093749607085416248336009171533774178507940375567563905769088137426657462127158760903299432449998055401265889731417423290701012328829152865245009690935160825086344766207065136092260036979612799098268634397006135214524295298287010266491569782470359813434868412474529149878253458688475148215330853957372413244085814636136980449709729803133498062899848573592932427502293106297521178301908672983677219523571873621574183476073148618635140570301514657492603069983235980925699269975870974398038693411675179291705039827884456004366013609915986781348410287687374313998873434998044134196594049400925715967636036811495703868879938653852329071777332249398113037273015077699362239832155694295650270195570381563752379610074070292685700801780938811805610589959748896303016779958304107312324369096626759956383887171412218607418511225613524326810969625388273981733307729655516840143394960055240032978621225144094800364469144243883456913211348791824878457041180886140698568522279476219000944129293463775355058409477724506416522005767438443091977955355047992242722376114353436311157756675438427845916759343464029150411397192572189196199404058030780666903854156985339010510546228597119114980827097965141174669325266632624963416866756202703720868987233973994707077403718886132586826156296099689328614284205817191682983426444531826781656116718217071242397901975707537995360468778573955799316572688173394833100369677167628504351811752842766005985168638876414385709264895250652394940189402798170718192943182528793038145858314386469310473784926001890400362941609362604791162544173778114416044877841059268930383452417140511400150576403104627254655822675403595745481004935799205414865629824719826839365830176885005253456502751238033462393340333322157986560267127244145992895570271594057647922357995825137107497607040901237003405627292024003570458923428775154256832066805788015122039022217413647017362663114116572039873699822915407012268334722221106959430837816944255622595264491631853325148926035332102881723679695223147396281797709672142219641599120461051434468543742536213271842232789537885466840328181187804517657334517133598073450921018255047466600103863697719232743462445034515076369258472815239339846120941863601926184117444333204463029892808855448941109616122547175908604347813631609093863436355257444699526073447733417558909829898948311268727933215657571140042103660816251844002062012836106971835422493173217472027003537664698976366541681895175122970001901378325466886826567063794082773458650482524512277667841797787198611961526742884089724310078355103156020330743137516040261198634577825823439496605431615041802538746847866597658917337342230070892159299304063770335817391472415846944019087250080883799293719715132337122021966110190916030298520495333036328578448371907238452579226247032718802335837728380439824582795896524373749940431102487377847441424627445319248415747403736019648695464772869595463815161888226281500363983929925527656587520737493642787917286128843928210133893441133522706522262279442480144536585893971269439634664487330803686657852315491302068211046900778209655432041448303578259441243889951521879296860432520187885477546651464371515360636947712557203293838964059059994860744292070463658005260191429039786295058145820436201937081791292213831270765682044816429950216444146294335113475273870025988997024291859778871760054785517995694263720003690140467984622632265989441397697396279015327947849249262088888918784772210014940156472248466811420840163362770460255051569630686118626178596362346232869711024636340459614151492151443484851794624989521947479587574948662564196791736467156825434511727268496969135695391136641597674009327721150017963710261901643417148655730691001230977588321052999627714234564045379865611729353036996020275959310144111978574967375387067644110684638926456499224377414652820329002565457846573695121086984441212446359140206572330367022925700933844415254020816949258023895178344145103838112277741376084581457662890053776943638698239044865758247154804715213729819758796563918678703665384125493049036636640641257494599738509801281894166616705122568060634699471132805208309592748815820917841836841763207049277165179426373316539047171730833524710691960334037068906406278494221706154352518342209960928780928376961666894799734571433800573387216822376876083624019523519042821642970314243406461584506919087970692867286100095111558099254289604243780694067979380124226850646416586133145381995821506006574069612783138859254341326049856780360188845944348041821623206436832933335746444216480193919735221252456546327504430340040447502495718926580118776868469150209631866119996781360348183526120084742314868451819461959167265622444556040381394874989122032563666623965491931636728460333328169620761318338683317605626226693887390948530520043280010178615612391037537220217071633519288835064554713760283704407394347225316529934505924777208562174564941999524357941957792616901002601326726064623123914642514548982776459646896225006550035250142779259836171588664564760239927564952171431532551031480873009357683724376121950169960435205073653540461970458343483853493895333812795560320456249180526984971017584575046361536423593921407427727039598097180759088272552477311129054806947612088923732173123902926932974132472352331992272920838216447944814557361794597699980905734093592747147832612004311735262847463708821555505725149652605090367588410214230496749841822330683653775569484030832307325853926884083412135539120263825436595968776884546700335891323036921513885903390689658194583560279247622583645839157529219027318018476384080902430549173078499428327176278022599475932885905515704702291360428609934044166574910606564584182252126467490441698174703401061224021124404257943497442006578611127560418386577367334070552315582599422590413026020715075936351941654240755000888693335249079975683540587847261137712174162576412585762071840942529592754734445129396623781112082164824590663528243532901519552668832933542546224691371023429055286929443727197971198055040351170322560410602249380868408165364747667612548920985617322434870068359506836765048622926660981330499709073185002253613807943513983607445621198286131702327414103321939838556097871443084942148362895578688956651489091670877032945506426886672314252369735996621007717001242800358277601566818273558339227893215750899253005769564182801766956618713348146747504930328558630286308663553180784985079787385428346964011571378593810235637372695530503996978520812230850033771378398189875119793188484256988960535579716745463192490062485198316955387389953994041928069966929734707737139648033537735317924681530247769478050163092439592279637742692319854965779146564125018628994990172036427884654136904476080772551268038850458953086400672268107464033646454242478278674965702169837700378617478425409998142831136275957784422623670211578012039414270518608967305669518879734558440605984110852003510914334656205849952638294386933070061682247827829067944621310083885192248084330506633109819038388871341316990419923556758816531130687638648763175822020755321526665788638967917198472639335841535526343636162198437863653655207004056788852072760404486922128334418914136729631033822969914344309357502857585473534642369083484122854355546151130313556364921720534149108051628413168308208461225617194709626648726692625606909811164250010044336992507208315107396003633812816645476376350877746550505560401496253066464640176599976055834251547664451075007103550740246721677541327382588350491064940547481464095576528084602588137726383103424492294242108541122822555189398868044995976120924363438139489482062930764099991489763619632074120954143602402492221923854100407212860934199779197574518712795919577923568707538308906965905040297433477384209167403915985551499672745211959165633924621530063143233895474694411286932722166333031221937732182457868995268226755648954376587183772916660614033765861636399299690783083891023292077935751642440334929810264348105031887784780885375606414251599343236345080911615948826460457248795367279120372181156635921160409109165239601668560812722054253511526997351337791996956484461993277394767165920813426441867990128814966833997922609751419035015927410269148774311656459911046190968716778467814663518637117914054501098782187339062234434386336477368814303057457068053498863413062371354074153514244447147500089018234008378432924560518736449032322989554656759870544561584619824870861929811588266194269685674885144974118827327344081808811253728549203091932205703753192612120199845820877933002119123856477702005445755170797770017245276211609127719529154974710800364884377017345477045973188883721699637304598335737204631346088520977132623681284207024247261699540773014783884156815909091659876744272208947544751338833552355657454484630410755598121923001548577016268238543216050764097099293241864856787532306277304656478783895854353940386143675022878687596265918428406942167141454302123952884762623584031249460061408402241765182470445364324987887108140989593296945236704226949338877523075771161026425282348499580725597927975653678340932725494315603286682665272243539343673460844954954368484359823387265849017977089534741842170170419906985332681586856606779185551588535945985492836236414848772296044941987894165502082356012368778739108463843850973495804077664218192177141640978285677267139346303244789435223010263320558151663020728402498172759864212753377400563945025020798690842450282793216057739261622341661033583168670436516768464043682647957449571467918703321570534830538351460806219894109851814331191733988429289146217905871984336283257009841291129875933404843493543043640127891068792912937383888272783398768512650144564679328514042784704487018985044174913616214579129504868620540437049556170754417336221964981662084070291860079300776673664548078448604981500780696003810881855689714414993722028960200556671989215875937033948141614581030914601754286024698605375848351970700637241267022533198058134134179173402334529907090554986641690221096725768337764689391023173216265078290374955207753841413502506847838438814372860336641045402684952395188399386323329060757171799765158939248673246597629260666895375846109033666895908880257691801803784147442067234532527817638025104291384004157353440110885909922381854687120792550681303177469756129697682989998650533719460529309464429482797937962391678007914092201444334932076807909815158924614453794414114793075830113599429708155616011046931496413525509789410913059621025158592550427531269692251625290124045631831003837755215938054194943898281602981702416319057635356423465930506845656664041555764502880402370794995762620835133067169762409013852611927920258206191160257759981774756957846448049662349790418479840474690043846713084102837213336314378329471224659897124709697744033395692936794461238687084389892580682843698820034867098906602705725227568236374460512790073827861438142257236111391251170351989440758028701032852274679776553750032823799706376450512943200919292759028228364384904443529887471151889939192491329964733624347089758798791136408144492954049587495807394530623152854341568696178822365509237600319777162102078329052195598760202605253378134187280536012938823692242563778560024271452213134756450474203081310119615663483509558570592296812674838753451428814631641065924580701268395288503813719899382968481276704260822755103398406120036690735504142434162712131587035592549387561739631349554462413481083945287628035319922199055012192709070277319028254260171403560265069627792230378862270360759687792259711644171494900557151514576793367531911234329476613018353288229293078214467716360546125423136421066314146912983450640943425456297338007681615744320816915767683531437519446863542837549252759342162946881833296986315913420065726363124913298560779226914016511120431748878974049635291453467613839466140055248911373139074011507627605461777051490344183473892067877075607844070043065191004314307301857409831836750864670133036648864560744870642658327711521298849102792228059099752866151813515353129590010962400328061848721032094608656970008237246533115938969378678881958572832442387610747309573090111061677685587567981785811468964054063140193643683974868582284049791820851865826392931029435468834008950635170752547828323695424006004042098841054691602550798424314360792794896322920337312218260946759453638298134057591438253210938387708436475376817963176760001494189722264406927368678362067117897304324733731482179764644428698982112307278291823906672101457678702225920146371559972745605524398799722448330874576206186242234079378461099875418620004198982484439644481819866428758541562091636304617443818265091366741365143033716270679080899639451595158711628593312296647332071616736677041889834021253912313733069311136344641305942111334874491743694611734734204329149193970432022995323645984687965198175767982620004515798631375866935267775877854731243304742942829499383648382235789332441611578194234492663645674762888693277383992689803144878834252170006139649760602242125307465396339864678561630490288196266837750691708342472760634173143637755350296612427938301251911840266920894341124563476807370647765596310019153512165111264390927381089384264813480761100151655756170016179455635416136291720926869901720373410557353100996310534560612200696403445332583184429686696578600187906323392896455595643499801872291667309530787915298327188481013294087569983008741674127132719646013363220760722735770560800940139588669406214495319421550111505196802803857918693520979894141475077290960006825133347745764138663714528669613819640505788925577907043649010992911444705867613005744737704278985629018793616754755493582952823642232282804537542310648073196921278467031404510801866344116131094557405564635657482435208341724333173015896640197591072583191272739586932534908140392554788069250822080093034188773521433704111099823936776894060581439048888022017588747925879348902291423265369145217170481626070496855605050298206893557703823459077820724286162131830403220122490791765279945247438942310049394150532690336923357737346061411233898005270014753801335013167688280301727090912659879131681464187999319657976445980161035872780222936269903646173511995364642974001087011592130723645481863947192718415154068453967269987541204033644586514374619996964928397583615935319327547747218874120633715029719260094064589660490447436816473149855521072375599247744004431658706444536620344484969541900629805373325414082370476097472755566468474395136568780758986177728331605534297177958641992306015301534967507578655741011813053865429081278436470378419856690836137540772245704775338824169746285484673617752499118027385142507727905397970040870994644364716306200579290453825071950554131033561882261786713245279750013837285010246105113855011305436790230959069316728257441686398058282372833418829402688793538245431863828400839144398975805119317755932492710026174940123975200213744139870180437488961393389512597462279397332564138281495340083460688816253196676263108797838412001811508689525087664901141304581200570553214593559935776075691975504685384104158516113463970638071241122452491894041688408099044992343302695299767172833314708875848482338068719172485521079213914160671889331950802672893675925143013992917173525288433428814698364729354649689632765504823356730132002471641005095942585319953271952265327672157894765197789060698235692645083989911580138745881221744532580277119587826027354092031391831641149087272433413787022512888929836914307351469172626831688060871906736520907440034079508629081921149548912139005467046292347575998468847486150768127485315149318332178750315058213308361625700009124082788012000460776772871712421201870801145305699730936571521423948445932174410728411253495900015675381391753464621095064555990697323205254707479754421643686773150790790349914502073407326613499230608981100103897704142891956135553985285038685985833224462451604099902911964830612141140350051951254124075543102914520999178455673184849369986150165648041962775076692838339242993568995503995634515294007899163383347218208015230581519903735030456323036620976537998955093887072697888875022998561059891169170385900027780449066479453143661305008411426696535179287920115892354937631024303301757017791959239920787355017710559840845102893900030117704800374811200634370917805429713724551368303494604350885749639837577975737740468388034909057579515617988413038958580915070746228360335309321272813157157061946174426418929724346904712538244329598141376213415222013497597063435078466015103602107142144092340346458351994298494377614116912244298110051991804556651286397176196764446275595212999036906661028474162819434708802520540207862101179378555168035334587039888815045474719014840905160776008190974259101210543853843068809415272354248212628971745723432722605211492595536815000345262834693272957160943992686755326355076476601718308445019824719600800862380228536122398527780785586102802176282768405107899228767098804156319670911705371421801837824642011234946984255413511731607499091610320549805903530122953280603814216236691791343446906487156644099072063204537792244591299270368290416662998286801580255314349586185587651491329644140251182771942860751782304354933516277021691492976709725300380644337164542475920075916773431455600990626072160467083551968643513748348881373710296451261098051718937082636505650860105764379776889726663716346351636019200341256034550267952797672262420041363571226888547078834290949970412890128008520657419269260938867613472037201632981533301323983762963881624648073714562647043375712235014303574004163519546189688029862430825551451424460491386111880465311312125100772920806154451942059971722476086644882316543905547705462740357575581969759744371675340222204461661052596949082448324736525661240000143585534111099842449878741008996833372134283897077218222499874213910778884793854707699938951298984018692129280635109235963260319561576853678110785044669121687512050493980397399519060465921617457697635904037865872730435778709924460876002633508452164825868252377457023024834461209515605956063273797701914365447953710298180029054787661459025052684927751436056673293717869979136940648326731010712582148994465983544639366632565528391998158983089065903852558312604602294214938756207825620094594776084776802283322099610853995159490055063548697539003821161682963349029974540123700464527445010390946534579126264641191276971633622455798922129522288078102729391108546460613145618893130148175082697122484629445268519221983541525318780163008933030012631359703129501607305761091627771196079308953794646010162999536808471562721301562613400707220801979628262783968228534648623354449208000988039113339876409271145686779517305907279321379959379291466965109769420398052670221891437707607467389606599969610311512139296017833683735248665619316100787624669874413236744143794341545948986149682568356763876918914684302212542057344403417509426731559511342424664293011680315307068258564784059446487072582294807706756612647381571995981733503702403270124344850119170905536908517775008014503691074810239668530093072940346215051685995833219934193965692572763909149319265265614436866865998392851740087612162296214259937699595005936364019232876378418842264639807037376441911206947085607821186610095632820808316633483229089821924910419864176626098904668033055033642556334382429864720028998059793655790838521165955512704367855859187602850131881764800993657477922859461634841753379521370753386108312686372162684199024543332135870305164940094834858403651934003032247522995718215064879700253740521981766089794339796990215250745456895444693230261840392114224673113487796224308914139734446134099547259945995768529662679137191480238224740348843948571292514204936063146281179771806867356978224297176055730851411917617279180329995753448656945610184229950457195288090730623787234019249518993829458766712396492951370709579904784301679276735867016272813363648636622078125920371645274510674522872575546964252080658186741649640423487953516654476905884734872557784669132462972871088659903844359841710272950304411161564816394465536768802120101994413162472919597747822464979595075714286114181786618000263015898379121831890991982135327372449450849510505737579639672866968941251881967139484738423064698601174511538379731112011386178564008974953440806948407372382113880599573469139616840450434274633811101959733595898187876800662814187408808312924605996259917947901787658518374870910903864347792339397408688807817516126546086639932107327303290783276849186354982680575875109130622175449911271280600862033268614389260740455683763327066068722555617538508042294960422736415419958675570315444652468103128902847154106853245773299817568680114178500237104918224753194967359869663631955772481331205335145369549838382837608794562015459781995987305531266134523428255968428611568386799412034199943182269974546136409588603123901281123638647094223710777561491146020430793187667906880418388322787193198053950951817989636219085915991050915856712170421786268484232270557468131032212180635246124385449157305342116244128850738755143090733142225315463105784190592189162877256484777885656259744355569230906752674406885995588603353741489615292730417286749781164922829050676699768057253297832097913147611023075875597441145242991523640710384119702535029141559355773643460650567001965680608334436112495368737877018593621569809123159276590154892999192516399650755187138602221476185724805762059497438236873740438808355460470206764770101959464424156129874738090118757300774649741606176653307623405320346074377923061536820794462894949733615605496675470358169020827730665306220505771298065298068130184442678550024061423485154514807044743664315238149354480709960787340531665140487389048467481070508930456968206348666575981407261527477625851359333853627210415702065625533788189377026147199503007436188339556044339507931435695879177363083117277470624709223360041010763233960069474911027001564385332160954656342451330790477285501089750051047760960270439796176969413397149419530291049198611920495665574756875504243939751345438095832994273914883490193856139361315989594623595723083758734958911431447621198309466200388607878048394083401967993458736632338155837466481912611488023377586570935310708563474820610981253839283026787416040221529436253918186401539270702528759152413475332728277280724282265396934438077212263526753887036422276246148859452706216722277286737614588000024789024678731255320505846439871058349707732052101099747337977128700251957729973213268597245513404729867728443153340482444718463862854115403391902679759540962621052425494810831887747440499636037539540528263333627177901378615948932607612921064059896048379504728264034371513413939796567240824256294293290258491398367849165367463087110909004290252821118870846845615135281828130821985258327480801270453763200857729355327678141504331609218549140507899415881378739831662172042561168778376706936998479604660767311624793271035673372685130435159732451414810976703601119131340872324054737909710255854516853024116641059088470798731862412289241103789535786285179653823559186659162838166303338717407284957966071700453532458555373095850161210628496361823744184635347941236892307411198661766438550217035293894780022914327948251102045208118223876767914975472610461274004156793393772255470492544622873202997411918322040045137345995269865345004135469554481561614058259863661108248895720910120595890379905520200113791712219443948825501974131326106677069635649839390575651888531326424086122877447982756971942372302680294589423126115088448122466452955165197481312346053862373242129596430758650290314410199036280559382054437164787927826544514470856797580486181041959816446770550315614727841481390734092706817229227411517972495461994455646677908303181659643733226562610948109859976606577977748004665860673421383657697600433528726843794735672179920970733223634418014302134183174147680107728734619553995384287007207754084885187078817175219437547242070905229142148601903330054656872916153289882101453297559562066566842374037193750352660686867743889736756926573412671719460063982666145930624051595417260824689821637823157583036970750887918069123972358483691870420029833633010807401413318782453942702533005630282928323727371765335284767013653298623947007012001106862959556466110015099066544626612533390290044032789915748642901907695956283237043898262436154048360058388878245270044280948608884016202853419531539088110158733334853806656030448949802400897489390348194798509923224033289108235986541923283244266891631859892812448314148876732653966780802768818832550051309426305804137021790820079836483312239175426404954790201869477514468812497527769789870423587686566148045141168905625707153089366738718767519272461641382242851052888638502415070612349544384421487696939666702857330416406379209034357546472715150638364275623963183827645380530530445869315384042846407590017401675443867163580890274522868276505260077715559574527514985563528299427601621742534249099924275928177326647548055275550639518796884821281569624591137736278385494138749169743281262669334096822475248137480152428052368399423189929891460592500695908174269622954026373526385330167386548839447524361826449670229114817964365304715644543597013432515982952961031937794411232720750892978010128668184095584868646787659094385104559959483574783036653193800527493042747838731473543186445583550766408043954369492321689710094638565520881454557279954508640704092063345513652437609781969728864583956801207124235145899589322017170970056069205697322427496707241360307363978968712615576113218421630635124535294979778444598398112825459726437332715177519682884513261809441344136882903700447495579765233517095113473567623308963384850026383414796215794100185407482842038086439646436713206563241532083137500862626267984362180306356394213350238891430066892568099336142121585442725258891624073854973714787948157065964222634210068192108420288876117264541561292109164580442902609795967198043389239252211531220638432555110304595214344897772575222559510269982382366878439759069071588982776551038861997015344614856249853375515960628754507378273858762506427197383437411630568851425253160478884792210669867339084792244998371889724872676434837561306577895125401196125245978076534018246085347712899421749475944294074336844747922887220715744739054939393909473080666164978123163402546385142038898801589297008131111452012631050125083604769377198431082105634058611398300983102849294790117564886264879782436931470999418079028125726395917176046266075627206236854890823489180632374229674963038139114395809192881963708416550798204191517342061480920025643885408697717733657206672243027595819856457524630466081721741453946843728763583849444584029772207105624492042540178194953953432272671828079271143301550284214368941663743209388730424503535953196948191662109854232866474483500767905462909253656538002051983055672027201745858879284807534904086391634786405330519922517722101192570898269546302470134105060786450258480694214650833540108759271373547862970441449414670182662919039223281787678232928733133593996664190487590245458768633956295025033271818103455986172648888294017729822453599140890199688880988079526202522291892336227907136685730633601353961297393124384451153470202280471880271924121302986083603014089911196119099531568346144390578519151197873675624900169138425131519026958672268879497733408918230361175065585940969555542540931559443123260623024987289745688471888704451092674437810436787157414486536348178010410461964107256973094108499490283287089362769373474281289323454839070987648952083553079183702647034602009181573883103388490691735951155162527253391834394936469117325781902945721665267300220230152772700301932817092316767166361801222941474595224771652978297405879208419534059959837676949451670842087456455258450612444035290468326489701445398525764705374987960772131609853656096434031501745523359383978179342644123454093294187111053745589971332421982384954894194734534554062949981187568210179710856612510973821562722847608684110849321514961885125696954712335985708259975853284760871688199151987094918400520558088785185180928949673971798198421165564885950471084877510475528999687912807637471740459724374188369417540066653392925278512175657089245949877924287532715344786776830212522613546961711981276626300186663436468659464567653080504451939522762498096877554237246424891147930969626671584726328750829584565991696896588435232538989174793679013453461388598328903831353879543782284905108850121415298404093060150896556256740410950843938753623971584296881652616071844574702922162415846662691213248021156368804085836193026823441333260080150699091280039037875532170093180230136453357590800951975413447781675580795747226695515895094441200882335275295305724234558064503434911704956869471018376841372661141079235735919811914174176617976155883510389892474290580971239406813048344643154441600346216316853629018578917351045722234707719028822474177921752481741198058657142885370362277738720026794410540861277826293739694848333985820190264920991863941805833084321293459824600744309449365210984394788801713456780036964551653586979769344197623868280704435060783429445363713013415710330390750239262748486309134643636031773288713087281544297575292353834862101274529481182671422156626457122952490553207444915441599757780734549040184102825646402472405343556155120204103387473850918813001381387758154129058213142731247430021625404478606619536785795521136463439073521700880539923471313076666290377344834235784441869912378106081202176670412879737467860546827516285028083684099232333727329996480218701113602100690296597003464352560003428389473139033801193546546993206288808425935480157854679699863484795837430722991723580073850717845386432124121224472776171434198270487310327197156545947454067026437459831316844300598845296478601056997073228724266945918073285428950855320281118422673094811543234834287275329243399091869336296086514355664452119558369108149797414442633090276314045986649152999580998276007867851015750880824582150394152365265947103013119327513202287957383951968921127155855849714188771063975031340287282342424641340901784235894773251598929527486117921383330059956076099325217760126946683307235491978717070684698200254723227585775676138345315903162836226448882763298313529613419029728108994421867989796566897503832981790364526324429384342178867035136266107251188960792884410595412355040368857938816994599216815655808425380329323632298773881196732917321982081009585956277990622663852632428812145502078701223482129690887877122094146801869940259211674221135028467047462958698070800437629427922676831813525220613264673258704811865560372824180641207035249230636655381917103069899092067903815187255556078395060991186415883394591069429209877504237771674927584705885457846836657156604577352528291866136207212456790543147884674327428700625684365235132710488022183291495214529379630509489194359878356938431986027276591295922755518767842059237715313083574528126684355229427507504703800952350408821222733107658767216930480668422025039931308754556788264311673964286361698516583574769362992807435344085761919909356968154234852902345178354076263727454178357394047964200077719620552162066818611492529069793058054937352888202146966019270767586201445159120898675406355739431974693362413320869342855631894979352581479140573244842417059540532098751789435622054011144437238577219261348425307451626918102531850718089197457829901841459605868691889788587335623235860580550078051697713584300405989434934558848395741812659394893389128344987128110027380077591480575703445860660776618375038753607544408194190961367901218006874506411657369992786316457534874856850618224406797002573372994829358650001922238307043412502329334869698755768793358660975277319195621208698910263138886100833269181596725477151430360734053286117362832616224978749344240594169868284990698905968002292075671578938503048943910135535829478464361872354839685391945787188796053709428370551711383864844806910949378418409345361262029358327085267404015153401409614673318687428908433862121444479812633459921754453472046618774104148658703651990717232055741376071739022640147649414688046430857194520417547210172294421635373633841546417056982800015014589056070247018747517544204620938749941781765863555053508669543084123886922123663045634488279584792382802616479989902037875542132382383404037712189908592364269780848240024775533829551235734781584835175458193419964620443651650279466642033385078677527120625246274132413591044546922565074729720068380930428225676809419832849940577934449447863904942238389548458957469654110760453667944298491883122755364540408654149245648091598033669871061326392711155588296899739519872958155204031348134346267007205966961787808366199708132124721303607516934595749120536406288605119070533375708044984380480197156191831416421406252341727376479753341595363340403716358388282342907322664745610041082873516114672175343803577870654376920301778701053640159763336473986059192496962566746886088828850085245707451596333300982682191995031024107480948751813854405313835568672415171119283565975596557175576681581561254179374478024964082116607327714469394239739154987579845612371471786421124072991912491871743345405876074200581082188104706613720668578664523424799552164862121475406422431799662013727880254346993293624175377040441006899179102790487909967037670135922928267882113958586410501425522319481772476924704470924038834188619114462415826399576358940648212318254616875275247358668907088097246679557259321057765681674325058677136384919757444855320442748812909925476971538196063463777437426310212994829818871111649955420267092401582761538677401259946149205422930380462559352387964856065146321356132566008688267304011799959063189226971231273635677370431441701038404423519695847276658259878219261412652827976294164012633593656467926770344965407781057726348504223883332221506879747434548949636579928359498801706652019801792780289868520047881214483307153447675711833877386039382465198847042021233712702031117881114942944857607534487401657611721882656915395911072820162141769747812789973418735374858847323423202349462434182378697116538804465628907891042254140630348607883023682351067642072362208917277830109957115751086942927152374121736311873471093074624773019642630199701706769144794589358760921106403618429243271234303591907836264854633443397163212398488325970826395466673105934406303880907838457340410798993817432824986178957795148295263764720770115681212395326343874514277333725500177592501538939334459519736783625126438903328624176393895049621685395816004022247458129033447180023278273485677421572233990541222973771633436473723565587733227942535281479921214074919668978052952207438648689434083472304135790575652305586992206842564059022162846688006229922006274164978798100231172325758051324235008425266199442384921148164892030499583883248179770989596249523790124377914281723799992940027459642012926941991850605428856504296846654560128140012017066510544554884816842539763998711534618190825854851236176242285188001363640256089358043657501022571827131577842708126144446090929152789239203206869916313020694093759326078525521273868430733168320130118905653364976179319595453134455011003165472020764669525161439222729910765331125152212426596324162265969608965816361215418075291445664913273962740692443088062277376419763717348838296681063577496327525466971185008466169602571590854180890304266814581001472264145477503926393898112925354143436449488666436881410766419596998067929836184933566440693288966208159422045978284791560187177777725012746593450154109695244146068333600201808907424308794927601564128755524033149275008008687150241357820703010518201286313446366217710298633319200243767471143951333228115136687768589164626870853578818217369239324886743510489055391185675134927381033788427293208919537197263266504957346598637211478396740260740387323092050379790914219399572750781180546063955021367703352497065693388103701515041072841713243644316683941298490882455596415843690883995766137238922818055796672453135666108196429813165300679067308093572849390237905727066590806969409967405067891505684890547458253083246098159110994552393592304421809956168868364524886835491290737806673156790363376808833387272242495564176761973992210266198368719804891493244989881365118822936719018569172652547853422088915203365100384992484040736521242996001566318106117661169047702548695306765542372147048035620944319356268950662703746257528337419911316465957307836956320541724655867638961884570402444982947855295231263566151406104879090584898325785524579826278987290897074447308686302556781394874427194419572660319566287817341557222495170005193788818394857856351852502384752132362218859416822780028086227512602556554231754913763793965199077476155287189155517227828364340655246906591713151326378043906049639339660363134479487023490720843680779031642943781339425621837354059856097771253552744934617167394961757195101834571387379760860884150127318273774144291149226847375537366802802802625534560157117003942706729744240710450099403503250543127576354980693297304838842787201431257258231537689818554024739142482572418982091472853872267412686095925466009701995141155025581930315910004916821800554668990636487319474829937217444348136752400856570795978865338818914044050481984695512085964120307570830049918952658339026201618727724076034712155613564834068810236173864924423316369875287460559356714604272009500730962105273843108187390950117684786633402042639569108706072517764112668639894770491216988476989249473848030895291810956279758778421133822283538279159106856724247517934089299259447720492907148345002694890036197505367631215815468314825552467215994054748090598725669363268880127919468550871098841443121124588292137936780574332490350600975461623197188749767767485383598867431024050437188694104581351966543449275742746604231582778821125360345805923706791028990373845822481878368447124574734491899144213389081910161504699421037735040141151763261551641555004180229369905842626624727820869995952681806838814875054310890454582412989655740649543752678794292800097689265023625305293047776197135126082488273685643533240111796524758110194676868346317729354975131441573851854039680338619715607138250522164621220071886674708803492334502140323636782037588725996369003021087731369860848149370435987790700882591873033497439284236856633827649057537628365477383225750376501164327357799417044022471365834030546134587394899369028257413978369318372037539911009280135494813074674850373556187039434855786194318813837403831023537655690094825265687855031621864472828357923864868323517187414069863625946587667801140204069461572955321467017580663479873296675543542202293277181839929208897489185669824953574895997071780018580855883929215489000999342111211816059989970488230441066490038116362822419925591544706531800209306122183045170267133811743539489613651296475685081615692005369012402521944530583942480387625651324537044295835390480424734487816891787346738737483992853824172488823887446878251286352466734209430221948468909571590328124213952572631437498071471388395590225445962154313748180017383712459693009814924303519393652638327221214453271895719436704808222433309525651121099537576758161668253269824100577112679361599308716373322858022883420937367090262363289217437589635075961131646478913456314624326139624758515569931508964035344096511737645546911663575209296989512102144877009856444166321563757297695775208110340183281606806067377189739530690224694884339181837534981500512412041762597791166637331206637158882235227492410611497556781119574257978629511670001290978472848501539605590763013336793905471580495649236973877884917580045583598138219772360445465029560773075892795793804969570719082574398952020233743806183234337574758518399079130113087884961900461860457036576880682550849555685620904163614592153207072865055667453544849339811208408531961517975840398273209338378133207858048987898969414831579890379351830691434928719360336508965319727174358855002023934261554650893974501195209874345382526841025742218615126870474652366671544180335453838262924094715548741407148810807757054015866704193103301677330644081038710170200593161243427772650666077692397908383450782331534712987194949636085474186216225614565254524360098294164849759394974949179153696513243484576740927441557173431842038271410775557427122111238587606373225387088094480186183436993886301454110243614664680885368555045114210174846078099568111224328306367530439090648943295539495691500908800960774519708921172562252747198301880016107892012206276188165756419802979875256045075677026152634430173448462378989870876656253463804956059956973802003557469112220697447604904064817378290732740067978771593202744152623154123871512852098566317968896925276920233807015721263652434520332554449913480763877313077173677589842219105842752412921523632264131673291017260524520625120201136357367996692352645357871481277443527530298498982614119760844564249756744223890005828194718123385015938450750623081646494615221411480697404878792896343388137838596352021241547478261681396906377840521312169448016391921620480792775178150519280772191396895100231533619653164609789460462855081101891392930615039019574096025875620182585868199013577168609509472723561394045077671699696743144895023025254255409227575131509007107261264720712198743429917674703142814965314902992159599094403907344597938884417149546339260470054240196171282736208788659188154703417621001822806079551799010735568905606936556156280336129319160747595511538604328093311244817679273527540188404513103188675684677535586735425156541727544680079440306356249394546816025901297154771092748032740293054414426633526677627435872639345524622500652286043345425588674178378753933508500069131217272435782684218510573878488135360804687024346731999350083585595591743679117691596023965801605161433334575177509347803332708970910653633034006388740932265235043387114256337407132307452048443870887936885742836058944784407386440181465626250463067108762126287806937380826555284629922069582926364598526390243045327186395303845866122171052577156896018620550842303812633231087836802038350002618795622405244580390364721623668880791754451751721659961042633487228960194884888297717476920132512584278460953225690255867916366318059640685141990283578848353346790342199059175688983779587828911880160393063998437706646686607733593784319901900537359239963236392306713155508783496290485225834591690337289074634786624814141539682555066513689583808971554672932283538900177647477799960251748753399015153394544370871203124430248507511663036417640309638719736838868044525682767844072759694491699742985017671409720825165682327489277960581582943708929290419410015246582051323052559824741797249737443080395846296256862256800433586000953811072884046472908116628216897969788019371561068159335403872957453596125600462883602807292432770678431331741237660544982021945996138444064282051389299222191827342747324606321033142094146276360317967666114253813694582545575177772544962262413028563901439342093532585017279402936925431163884699618035777890149403047630990116415862747572468557791732438242098920851562629070630837558926931992884097642632460400450597991654554316909651542018120611942929968516005055410332131852308072368592232722867357056568483527566366218972751880316492494192041585983597007994504371392409000809360848886434874875746567961251480946576659301159232091767421964534675010342261419684275957284728524457339924631975121179796461997206029467324164978231478328805017047284854854193650871070470854233718037685472671519105796755246370717419429498011192068629801132241114091510913155968858944414771367869801746866515929499463409344568792824917537049941197944615159277761590010816936538398619578862270847388423787958925369587081174797558630209530302851669029692825109077579985677834069376438191414451002224951349849693429926546413036924675515781252456933237938167883258781969720884645446204108439198089236073285387699683429920866217350574363881753954594098897215394280742825020065412570394184648089166424353452659457920732925868541856776923971756706221537291454019194371722473025114331316682792197778651934915781870833209796233533492674482742960585027627091865770124392767494713493190806977088200755350286716853211011030140155769500341690398831281406751381194285547804770652483758782767871408378098939752247709017312903917106241064706871304556082889197028471723307918241610429990782747762662877140626930969502591681324403023507566845181480906551652267855708113646876450739774424562002934871791522942772632009541718808839802927810629850682684808589892097303595805586661580012791003120599828691703124192293940013188991364160768214606766961432649309870059033922879950178685675306747979064795621950935961535389363304675964331667399592774850080257162870428959479673309799572064268950586424893844743864193825318452805178592635446055071566383305814885136304000596622974524208167576656351670367871633261512561770179009686416292445757515820503784267459790598250330545502501871989371696769859548882982970100726244241887247947254651220846851280498227303646296636321843052231840778304825069690354938449428349671804126771981311515569705536696978449616185718042201076260877674963315635333542138749622236143795025420098243684359193607259038109667652675392201570229091742547945148214089025144241756959353582280226761397200582735820538569452792291764113872772844143634127489057874962551473351366482294554675699830868849178286098751535651240025934800521061220635051970373489698190475074056425797194974220217520857962986872622054285427625483508191962415310442298061472765916465215130252948314023844580472721599277938276376542525721070933382772293297436121516886790009207512081375900135434432047205836149290215843040093199558366663044238228105741134264637669272483154979103706590804076233501449506373547517843698945287895154000012224669092918054610607467651041383047778961580337232640005973440325601265558696184042912488900046494749292438349316919606280967295806748071979189742786757828875079413099279533919279780556034903850708496706541377176699623893795779491010126446270417649092374014305640261836411452447856594590365124020655673612227151682197911417878861261655919372248482646758100353192044778421937445632756091393328519414947775483027366592509601884648824681061479811754470871725987482787768055225956504624999118860997593556629551493916865448644991804227509579100768511900419381623631875510847651724048934014353082323403685081996087291053711879494078825023172019858706535788716247880652291147411889156960902298661781083268627410071903250970080793951396280633477036835991875960767908217960215801909464949385323389350827030877171680219127380958134943904252190868054355594045037112984580555235759773998110631899753237901351885319362348200846126409421482589699165672405603313244730875674033371491972395762613493506982759004268379812188254133455018369533881190473844508579797054430511480370509082578955920524566927199055040652429916556859633910740141942013104114821437128332016198685802614064581106632357685428740570782780675295297341962918084163258423352688704058194343314725099602435902994147314265116835477530044063659423588340557965969179942499857000055585464888528399599465444747507178032049486236949482701987328998890823925646452890195813741703862797471170377279911511155461046748681133784940040063467013857301194384523625361640743812544642098317992908570339514849103876211854303687571618266259972117101380050592024344778904864852065821772358487644557673635757773706429918371355870202194024679543814859822724381589625590739171546930287667826428675782818455742412757688587019553393926681750804392146064003299074600007811145674165677769299029287222633782411308352289596340549515381421678505188549342650861133637669400045197565517452642487948325697040951007311684687836824184215882078204866833034246153217753198183102017028979171357226355510128376018338017015657686742076962777797001373686271983217151050570673510309873094718504988138457844894889084767057841611088175997703092422425642793893913278827238577868355924118160118282477474847630411247604897074210043500939350144903170655997890876088787909751344427925275305722356200863792470272310036629745091913600499905491169348741380352179759937635083273395117565816564532167257797735882834556778945396170114301593203985849400490765651350622797160101527676109715070031927535227784420422822037668288792951774035596588207588267300720397136090592391399289844488571659465239085454801905240516005536525007696936015759936376213428868026233100934614895146870224565342906706306020155696536156764200330611144031065726239892137108758503120604069269166649959619009215107202499148509972520859508694925656753461299411020790454453870781130149349839337025128072540638041013376111771269140516931518508992354318097216996877955253297115672417474699605880075832826069012118327856544246319613525390139005323105851887047456056500681345874720877631782397501556456501005286158782771823836876254286070466816183423071511376625209700822543472377557284968697134554918571758638886993316305093351494640928166860363738813894592783786228856160602936040020806549389642532719128848694526230466968506982067568744486411394380971554156860363910966717371773781207494051050279264794812271015330003828185419204281136120627070072401800297459559937034461931358323681723110671359200550851437835765387523472299068444232315027004232452204363262724888389510235227372337683428135885267634583036049841383722743808649527468165605507002231142508658525364885191642965443213440894117220718429894632507710145008693774319157515308189170962942813609628843437618630707144812734844696571644713005533438786276528272394716418092428157903441112993842962487200509950190240899133993871985225969414383609584464385121842710243965491871230920524755022125906949452376411173168811446172481104832347462114161029729725968892197877135103401166681822261580080127867350312189054594787034198636861411670308666397268313471452486863141481218149282332522569319647524012573382593284398847877710102028055570670183304055099603394330114482065813058032411219720633259656734698061324392546421870305139690276417853024468543804090609902527067870328641331692582935030437548264501331166907370777871918903325782548846357112451737064316537179863028506004907437750201328664930641717014251712768944054190697975561789869441055317037312011830842797276737135002086553982008135660312431290300032819043713073377010037126138414432238991565634726825366897435647990261601687013460940934414963459976345187688331374221388795852937426470394071170227202497476716021138268099240639504483159682706315941371637013749264645300583262136485260368106203181060416569942667241258070868300791803512334274228863398808156921252529061103744933063744980473218503288127108325563226240639656020755684740837616362592175480762389912509924838646495309384476860792742585799301918021917669128069509686134451439222573915757981531381246486742554605537167129223543861616639169806431142520760849478306551314503108634807523033321945515563672632929451481908910086660301014928090652045254171718301405023179039608406612249675439965725006452372318597702376088110834245776869073761085099493320960230376542012286703907680241011689626938621023056890077908933717776570664592653513934632873102272742581626202883398194877784831768169902544346199191091999158191180716444685659964944374011832056938131530246874812892971977410119686521052204017209082253398795808677520139825743457561317138776091029121866061744947273791170907551731809569810792156621753243767282619371056825204060213908438564092545628679460238877313242808569496978390028752529309058618406568180752040804263339668541235707087716215527887678637614139139165679542362474874811857741054782624758432725530542311788743529062093645532878992057716531497335353512262009308126591664787050838463698999121247139324410610724962962186767699506969482124069189054474010527499824014589727829767876865826346451316249562545195966046183251164511813491612918148440485395050437080157370136294131515148262734594579798550628784504811827569401471952782740927220865598371323903112315634152132150143011943772416520118620651122200201008791440574907526353564746616422684720100854290433065501417411353205443816978267327275873599482174932540844995587902096776745592630756808401410316830817056363576112735417544397440379309738444600777311726870845146802653496877581015980469679269826018941305042154403228815185351479815940768613385531806935200896942795915358737362520852277353853236674362327151355921483884862405529401239905644593839061245802215522643973827126944992578467959015037477141391599842798716436846471516077030966861374921010293269403552971147060469881699317420710631548779977183203308292203651250078935610673346901233882434784635639402385147706457891095711246888612797048253529199704799763860213664622912560823230600093993366852360206632857879648242904991119334799251025548396830326394664902455598395384201221724076728686512545539904348558082985759548014099838127107090413832978284913374543665336541335455355503225025317064822688231023769868226019144310536870559969721971018288902209898055912706707359260791876935488657627609589286466021666271759204493404513928522919499901174636284210777266695562427521981627355610793369920890988109817443917424639257868606363341726355613512460016147255554098605408541240426032836637951500505784094023831708244117050940648947582274904206333683770798113841427454255246053176701585393416052926914826689844227985578249178991262754334034596049043993521773668819104800205300154181313269172123313028436697075422883540631017796107664116694214474091909156527224592927334021715384358045829952486366214284722010343329469825690593346545519584692058114598082929950252795777567062362693311525130648166789356017487675008471771538155577111961593115665342287208420480279841745905219443106867525373607463217813880533333895186188285826983093944861065510060393115672767534258423922938069588359508052393663713957558856994722913913607792266573010991568145181368239620281598921171673310855648530621430070586320068914006969834125159079318207528635938662895658737992390243677313292638937162394807868073746176564067576447791760701938207771958874949698235446238146936277197153779436530260903275880619992806140110665986569314509904914613131376261211833367242035433510336378495699207310152406551875556042304051888597030657886206409943511287945326054767891047739298850907980323071603733873324021310818357294094974240474089368984660362961122792819540989168197940030673519898069764164579484258636537638625846831466100605995109667773241777945455135250293818817510750695842593475820524155442944214952415143772998654282796033002536546386359471465153825304272925487371236291102297402198414160646386825348831557547703323858977601475425414025300345992897568755593610107831541059127984226693531343257106507620954553777847328390168983399669103788304401698663695286015138806793110704773509941456271723035983696366176834899338293721346549658864826579658389550024201889303967566638606250588543550595263482736214554798449589067733258853877122275305870594565982018761331158395242718903487514137067223317267236682779644894873946956148223273813757290481191500789336557644393630738734528941518456462759317276903276609187976246845294186630243260676045446185035822855605693107931027704014443595993996343483802388180694738815528788034644953835616626593306346745190768980382395104589880213626881882938478521328045021802722774162207402154773233591911858597227464883564670165260700699057671967550881162364226165828755712578223817838063154806184855489632112230418116275576711662642404314037183539632304996918426621849895985610259979786261397803981711595080202200601899906770066623764530700854692546104960199062773921367602824552481023739351051442015286162667971106226202768232703570372827468671289372499898364598091417863272315964941679482428077494475571496495190293756794213783306518801192758155819063199900840842641414028073416213934515749943977118453907107067608678105852114241809162260591366600223761903139321856177485779406712327933420907204980975865428955433592857447743422470719412911790573294053339521513955878469854115947964687854826129216908354078997534939916838808521347403591788405880572683441082513080822301671230123683852374605663302893467759629965452514947442075198725936207316176800068676232724775375963963419509763870940440190184986307107587969897789964260794117557248242172024157300204309661016121343500722542767792350896440729167696709294684532453155525897483530532627733047075303256991831366041795351636964629590014716786250584997433150309345389716030089963393203251242771850745072799476447353389462419435150724991745501736403018280942982921588143426579170996432742409980867091077505521540873355951978035692022676378628458696126702581932984933791607522962658380184125475319888394159451051143892563032172283511090220548142183062542591448540020111678381139639513778063494892443812403917579550538466778399749078155463740086456554920540395519518714610379323438761388318444129916410340063858741546466953508144128100345202550311641923236585171232074457671899192815616594902668466696559986912174619108766778950116487351183276494382564563926597643372522355071504283913069674186362019213411061728863101674894908354693915538334697731536650793416679135387325006397306768281767204104978370451187876950912271311773639962164114798516193799188757491016793852306025476081489281325927480881441208370463773704985336893618402750475010900075104905809844086543510909067123648785645441657092573622510438801049953457947894412581976597424782433591483671880812548109844556271896146711851010166650196351285253601131235137569964691573462319988387157152216480701755940415262824847155808857900359783157459571409311229075642134555872305332635716445884267761662956492036438787096735318164505884057355864166534529942221801796625855087199258351231581905381681931257047143321387477255399966821928587950569683668763202574164311109798591633529011501841331865258740858365554282009781262435339055628679241548276383752857339432134073512389577425586456484919527596104582187068310274455825379379377924679501699081399475913991837059329386636314472299959248269808160037282779475193067397911495624306885600507962286053015865390867919662270981055947827366788212359141456979889814910993754537789413214346595412369940961671799319553996054922352496411521488627536253809299856109973565217173356817270185971730828378779537544735832913943284425569966091305869000830362586332737030050477746416030760834963905332426885914670651978424494693021020700454033893103967521539509811468661214126200342252511598899609004396375747418480863504574767235503098733757739530527669210014457976316364854776680406715773174999462325855455487985095267288699893042181050271236973225171923844486530889792063589314735190345409367857678373355753101933565873514273119088555208239667611493642193609463310279354092826607114567270254204938360791479985934643415343316574259253519470875142673434764052279965269244856373100374939262285233301253736879619705913115554832254373260005532381760927086188730205597140437579119865506685556249926702715331788136206381885035780487826065962013402403585015458238241627770878537561993953154902392992855483463821269494879073719249901001344544536149271031709798141707116602560394322756838932558559998144647829202240940352292013605959591060997358337403570278628285194964900056728075185864309663773172223396033051492817701181307379969255959522913977953665829446234521209159862341742305693581564865411216662266599483082402029862742057890419797911195255933715753368155692563790755563060150649285283554406619629572947713694374459389033297956967432373818999609343316387173500579810709839905518848014824287214961102246961455121523129679703197660018782844656674395199467656569571559897949536595157442557562864252968795945197899832891855473323970488745962074416636683296632533531996606982454906200260896376455015840652663084161535027293154908369677319470057468756235626214019924604071782982465466426330432523034678455439435398040681713878835056592004269567459471940526670896749531949547875740531736518413818822395139136555139463563759019822474684148457926061653764186177660056086598488979278494859619408478798268964329667555284321584992263460731179243756979581581418738733505685710182626296840178931114455734469722457630049924280382915376011979032229979453583867706417369339775718566706247351951452058988522324426004821656968256682380661721492019603871467177195834029212035102454466903886535191321913819912951290496883048741285143504635888749994984615280042547129223820310752268567818993106531687234047455310039077276467346943846384463577587730638929784482648663228377290696503133260612896507012340769430468411991798136953372223106188809199686250961587408188312637664059587674450421975339912359268364149827376509513446427981486540349043232339060148268191844787271877026361184568504716412652725753249883045244403504184867295352588706338216340304483938428002858214286816777559461787779916627111627314015762053520870152515141943916000365620654210531446255426896623543845242944173828612371438045073843508456316044072105676843657992253181216759905102726608592113260230595965648147900328937992010745496202102330606442798778746260512661132515003838052587582174076299093905933449714654222878061952509496795126336621172641289194848042514566782143064160610813702931353567484619628843702275337927044412316306886818046774586056638003673516756828139296921010446868159385601414405084603637100565651500017175671658796302028723236478496060059371784386596492228667284658628352915055800146675156917643143677073982417509501972565124286020387418578255265901958833633042875044987139600034443016003899486958982145884699013795942968854120870704852457107290280182458356791888611520180911465715635013399616993728999232371221921669725466657758003999413645924619806643284215544391356049560412495337321401398470258966726935365879178826172377466809819871401014647135777455750133965629055975385319602993514354320824244088756806863152234360079293470553026605509761309231339365543179788900560523415698387641702678958518994641350990839063092581913537385791544886477545694078167994895118054245711927690954887431057855299488240619816432846276240007345239407397483949587469922622326934433757978886837399765011350146156123818820280292770830439835346316009635074520275108981857655088341706988967866255648943442220044070312861675282760813975035112752070745076382426763959794337520498527086700551348587093911457772665055188508488036578127477384341710294474289203131378519237644857236911767966997273866320574820021970351806503721622356021191573078384447556852503711612113801835526405898913144722101441072361941131477581191825291230090037455449742217803862244964139509617379432988516980178937959152569178212137981682497040765596640932358193771267934420731396278283504809675234294745146055482646427713794515984911283949568416334364881514789054266931905454234212492643483463993710802382151152738378713945920578040406733033690165944440435824380560332272128029469283833501216133868010124135923605459251106193842593106290087820184813038812573634544693139213939603462054631081379326737300108022237697891974432407246104069168095294080632458281362266282153591334719440218073934528659391102210749096358028426015519151971647046269049729958111865564269399485599499304918762640533096684733505381286548365338804940012948633418480674566190735443121000350904323198356970037124046374164066526766696089294804546667455850445857667775007360398919188128378407634530317161434581739304654129329001014546811751146416341135294797042339678878139565251939081893744546455070844805260186453264797049609194126773881752165913115192619564244897602435724932757709505227600996448583089657555826014401860572072900189141039877725036843963513277943880505578883549254256599612146681182188220347523907870682172461873034100065129542363747560602844012838869720093592743895554269283535241821885026715726618523447189573869141248629294811320298692375638941987171876278154261326334203446076884572125304973154801088003446782418285688301126418509357662799065607885714365679720561688183630523904929877068731367803811705005998273954433588397428708119179409529447350748948273516717008787572585138146487180822500825897891176054736435247447666858995041668247315490608397552361093436025405748179176495085470556639354386799901551509498660894698632289831870136565397881062771557066677484493694329813890546840348141226194086990689699860684208503418588727925667255264785390669883542236288553025069643278211517631353354649862011338657751719524877730853808582579900062882106874722556206098849614205851844102468017641618704711028681780190521427414919467202268168185102305655461655789079039345394123982215055898296824750707782621926028569107769830595655538686700763986052466139520507671211575627073462960193601420483011436385522157705238637637578287756273317602854121481841705029829234952995712722286491346870668959975858447298104393548589039102953391815168647743739402400425611457090688574043284679927880959411907229094380746440824891282080295915501635830579808869426141001315110809833179902280765020089043521129347417862528232308300393819185560595199013224749150723746692236237892553081907522420894625157405305433539905958152466093234987855385779654150566694163711641395621753710904844879961966876524662374479798331930426086582187194810095115262600671206933525768468647963982686874588005664564687858388933147904740596405747029272006823269479818606007103613245807956387780131404895550210038627375425205850107746546324549277174881864290648595741537307925585339442313696642432539338105910613511668865301554169893699711633326209961082812108049820789519352514696240885722985108603843168088090138897175315493177733757308083965211094082074046171234024822595892141422299103592653975135998489041790313419668574623906920276471978021580223904854095636791213786294936011934844062960814175728979569430526049956224552109813363663738725060229747222458486466701439798194363151466752969302827193227494080511201867693469539277487401348975210817389181837519967987146258382664752385597911846773938008073992061452725420212308959932994491333044344178199948241916858328120783110611738989648262178796985759582180672989701319380015831458639092425012119342294397159879075262575176470888131974505535752985883896982959236439871926324555981882352990767972618110846142287772946439029593988656803501598958555357208190780204809439674338217570702565557584054950701853599056516660381593607409331872531379972548896031656804824528416088859557409074512448394172550109817631111432799408353283361804593318765270561822647993134986719045302663150621499922139206466252603650566367196438261019688865059158930466310213461524596706888834255334715694794919156411468528155388289847441345651958166765402912808016461340052584989743182997615302024854339588557039399859148734006418061309367325523097977881313377213610140917315553404607021361027454287762610227359984843180509527688320323913182526464273536544855564928235275511831669268014094747211721558756956269354366185126640814014832178877146259733603987542690839748606874214386701963185469439384825969639422283207921235217145425593054981941727727616824933639591308338646046232266078490308291813582416086189761730355669875906853438181578290517691026274802956543656637753631716742912371453590929421024459175392045860786483784989508949112862369412154882335276464447927595212409545059077434602261114657857037468917497626789905554894222132171542154414983422739140715218165470089375282707372098162362819397671207569727989962739691869908175307592179642122775046323167552966592357966093545607372431322109900573938448891931989761789358925773891545939765406395939592978075961104173301669504058793080392412239503668840125504135800556010229174315931780512449329500346740869391163649816429191270207996076751935324537048572918910392325289141856153653660831101409960354254739717620811651190682684738609342211887539108203877057490440098855225232825355476251634034317788384642068693148298165304975951186935927520129570407306273507093493666457858203698810842601082152113327688870727855703735931154875983751213129942948231300970524197002003293111833528393936256347749953977724464059067123539460465852044636103418051221448105328863820948553250390312526182702917254173267971456368285533780382273245357428063232149782792810871407066476698783652088495645825597711620771136600223877470279801734295803661897063750625685319668408700777219767955529894571643709338218649644360205223850457607466065881038472396629669296797782348005774032534835453952175324449772132140952384629993677757239316740348640524954294333877077916778617480367580525461102094781402530698927083640182917038249926523115711735701157067225394476129001505157260094096069232506039543686339899854853230332967313141326428428603648783765631573052565964573077518416891714328961572095527403551490870126543144695043896290615842696559699204083186053371936854861008721352495861626672912483849649409195382027864168021125265959292278003951675121872719181417843919408916455791423556173063617263312457356106207045690731090015877188705451124897096866923016584876827922983721389486838583357286907228114255660616732252084563633743101927545248356699395323449079737453254671636590233831158873284536253587540096473248310147878104975412767446966571263658684218682336813079195789977896615329316293462905266947521997472738569185372632152002962787185021431213331156727780498702324301092538570163393461669083066757942844229202664469729818090245268612677334051574132224189766161979962968590953064438459137474658204137277089610694978597064111369425223190100447501499245326413846548107154376008964713460948933365118637757032801799753686602149951446502381531704278665577173206634179272120080893170926045856554766834475167383330942593504807884547578098705442530658987083064970843100611978118675767060941077947670101635651287973973236597234718457898746992027537822900801802308297156718943657819422283994185365070904620744115544009553363399776525477587365451860639394135851078560748293723376160667429210533543762400741921360545082125488987607277103031192011788769602813233699047320015677125960990341113510577472979528078824083717777728918876658962277937645229358480910233312348111440729648360428584016002838969014455061947792595705271354618089520578130405685150576696088575480520439078345777446671484492578401071573835083248512032761510166971423036551350066672934357773886184137345879543780751079118133818446189904022592078945011667069585381351715928411385948894692820126007338246352936359367773392212584965018517218331183985772934648461716034618682094571739185940683706183879642678243460651545793214965713875891566710488752528996119344068992937337340835339201193486095964097617559404654647418425054871580599108039981940496096674916099311761395517769731242163634909913312197385653492988823138912079047032791438103719904403246185204823779068300838720710450953621306548652508029115434077312535912820098263262179534260070289492143643536084522187710614822435216601252446841482715058622515424400731489872214216117655900235907639271748095234133951938251178926055636116694149286215301292292686358654206008605004636293775375464457323876516425398883312528982156210290918436494283804238267290562660268075072552763812788561408448353063963253179986075361489098621987762177859238326797009824487469147949177105425846492122227154691435730623941858783815844101297913710892857900002523189087257426830532887708662612388553266778562271180536936984674370029663337505435420491044593635704287768040982328107915331467736832029753388363854901547518323023709852178379880682193702954502844292562631081157921353561230212884710968021818067239201834454049284791674063746804378957516387596457252144869251690074392885930056806224849659008984272338942354494172172451902785315677756830831849915309877461064134485098407672458964213487940413179096363949769053257008939233200105663337257641247941400542035908623245612225304484681601112360691843323121203427710663702214024528353526067238196039783467961530212214020872795255065629113169434808052139579736501929898494092707399249401558273399268951168283919386956648929829396824082155269321435056736950237089652305909092215839231187008904435137121826862777667692173877377135271752098052304665649841865789988064810316274576983963893388778978708586634877794390254981792436364583901621685757980758482476938707894156924119242755033926999034646372068891338492914417883653828656243587902008566147270065819428839386444258941929044521254298995086943604136912525462934412592674613113627234317099928196529115485397181881896214946228874072321921946310881633952001028865736608540438580073631710927243513911326462780858312348279511978682991296128262886747222436727525333532730314057884735253692168012941047272627530302759078556930645761329936888213700045570010169665261158592635150531376257903382275696543165378147309364924086860767618810305114622644232216780563442488550958485636388309300504984624428367994211329774723606234029428820556219000013061791011787390444870320095091729022329196228746136055783424640668893862477311315059042461641008729568872065224858373548667403419108339981657526542743529732713947364922266064086701555851540946523204963017641947782667682551906329859407856390266291133185420329821188938255072767645802314902722389336855135833521611358214076655829402570440296105013081456618899918070035951972901054728582758468662260519700334984402095842405786951839598549190495498820760192319629046833283900998733970940773053647580783303789034578382877173076879107157050456988785733027904501798352139730406350404196317478171387360869366114152357037685033732377590722034662673428969900695752738353534786023921922868151941174731793452546553195881360291857414269616097308040894143005951933475574849458510528560981916455783883702309300840143583471411598461337657216446563548117199368711871651682097057586956019634475587936695785432799156155856855954151476292732917986742853895791004482636650625483291147337723960599567438567369387514324772076883409237925037932182730490930628737261488937221085980980504802237183437823012191965428099810947881530985705116397416184003924307554978589294096688846097499299735404096662420937018559964109934736687746248129573624524895690770268758251933244969578509921158924324723972481429427886922797008755315121510199797713981209040187084845491950360705892457033466388751448264679999963685597693198899270877298276755655843286742571121236401018577098361506557106555200388426973860963991393331461716358809546174234623592180801049282347735947990014086303274097413361528042424081840124515833865168870971209430997820308365777112343636565513456013678703793943343773730614532260160974775571477722880249606186759555394830108855529874844786432578979281986914119658673425703278396721769094578427598473181128789815471530441867857229673060304403599819624648294313528575796832956086615476980025338432274551142827277637378535708921221785477351823173619647885904688903232158879569838491538075355020254213524876432570923695584549755689338831319902330255063510877471830828361354201626881775459666026975478387339538368282085307292049289832282947109049451450274972406153122882594499268411557459522933743862586792030228125318560161322104308058073645146555508895894842569062929742614090567867259733404660519098914941888390458256953337779138128209418493872762548072591507225031284073521562502446436325606756852320674117543729374756023080127981417324196399241754521962462516973629077891675629610072724970286357713817932736655661838179718456407296587531572425350159502596410079976412880315665747361735099213450133535759075164792328553022612779931707476299701967644239888805075192751605288638030012111577688546160743549219055778538068969095091099987190724614603488717950746140093899651456677493087909089371510240896672769155702069521417544561626910681457447377332758688961180191591445502277558561831779876651114258541198762734030275674908499953891112155141901252297713331770039997029456717176610279904619662503368233162252725875147021751863792075924451732338140333705898318482650918997134475945898335957820142998098865383628084510065468665133819050202361147446128468163386079064051386153941967190102464297128688581659152402737388978981676987527694465990009657446467187413397648675294180811490953743258411441241159753562251343230421854293406625538951699400405079617505856950957993762386403755345780966923318965757156314301838398607545639681874711543477576552723579954246464632467489976122171523217680370528862975226552952324307250429954325389417453579669307388434957276646043377441491928275625749426049819120903072155839544472516824284126522715650130133534046655884010705951663259983143466672835037107151142255194065161832349300229069856382190771248763056947896332568627758232190725239599296795616337895781538955163730582528405531855299616195889822981154628466511445134704458440424704842767433925333594591016103105963092871416359560778688459460285457876424815470441373652625896291749580797011272012349674879414570663845986102137274514100135258975913585216107292018469353303188691683260740512519182323655222288874373245233057229573177469388753791499247200315177384289701794380334875677020332164856903670015623500308015901464724309090426232619984985300826155005323905694801641733846624819359892256760002976420818871661802238560265671027398547724311461254029372300809985075183665900799725447245667607819507134903539010751097683392534626837054896901718128033422443594187053442323085852788926641241112130413810850532427723423702830675175891887301469184742517179756372357255815131270944887249759481262316468024707718136740666135550939891480145882074825365483639624236892078689505207749568309794709535884494739151164086892902394995287805281563374200844509546017001769717791380440030622122288328731316962173181811739411019068850353290776918452260004742624242916407494504032690270358525509431341529610491328733376274733081946125977979438017856852867292014373267328425996375119098342813537060118935826093997302330431594993764522300277494296675986914102725045467888054151102436189692090129856099079460215333072582152132501248396983752414786333277147846656412715667917281295167081669953550623346910092170995031269826825920789887019721474761875045376582180577288911338489517117435226318583093842067989858345180253778302002789347379343963732279776910675662882267615715651224017199467508944869838210364356887542096153417630741636811636441310815179745830746336086463937233219063836567175372986442809109106088230061972229314782890739497687603659203267862224058136732436481752686481885655013114844407323628032780447292397339481552253176045417229613830314652924071122417180995814477407400088585179640842420927861887306010947574758322128340672867681166798923396408983068433986817188756715878986911565108937097143951816681095764303861911522391088329031048804970991685884046452191880760714238872576706705619741971307551014430324125608002779942448935659196124493864499741059752303457951353242264698035443498059215758081917843652301937997284307629363284862411432893905176257176560597972994472540619838375123577068124115344881338484355091858892774780898576376219070403739471783641868572820377084032157167110084878839253701432916882261542036490449333934048916147175210844342206893536966448882789476101635218588830509464444048290295278766160725016597832292417586968318523334401747654438624165757986293742550518214815792601914213566441606735741140421534667583597548315642855964319407288317821414631661518625731610976518675708908371688154304698574913941646828513967578621314369110271435345122600493333177288116779891023326315693098781162013155451719027550883311042018974035287848039541292600834321415517818562126756368857813448574687379468610945529261237938154960408078598402486252213386766736845611741890479805459924091834640536931109424258887284184478908697772858157296038199767221891552764493125582607522565351654050986858686413090595286221702602079214352934695175933854904615521810729956406168709188650491197437362825325486180907278121859334311010496448001839487281098695844285425979299267033535547941357507948566244318100550594407994145006001706418704019551554038680598250893876383089072348306083126958207363758630837691236408567545007638771940926476464847387895242630935378589158171996349754379557320828236701505946848037561099360101831200838673558337896687672810873165761677720017464236049146261541839635761435993917519076110691225316109889129213438138181844197678165696740826589118039532463211983340318783394090145952180118825827048270574054486218616481471829361239507166195133093551284298179190276342375014769196364212978815920387847243772229896573435279450227543071823184713716501779105573205735554753179519967515272597958506038578322248970128732410604954306380481007216352574912424062879915596558240792705765040795331098896943330493026618041432512554029850966512696370713079497976213344718694239138578573039825214798080295313657256233334872638337703567202513208988242324681921480439525819779842038356007655201368533696344103050788698457808624356482157252068177542730213007035431426365783590576835179226516147571749574551897000642266533851419651808352764434306226841453551314182757278261631026839689568581891980920099688951366529338841235713216855472043316059705273755844058019032594329428984286587518019640775175861061660539343211270109733669060265498776790530056862825135194882250289927720457655583126550360179849864676417345089154617187080656227639208734564604865770082915565142001974843618938810710960520785315527489853280873065721264954042805077724953323494171485118410907514028474991388239312524648830132406883919830200426496806236622285203035757565721821174665334728147606305865676350019287473263110429374151410346560540875418281883653312606156476827310228568722856673203329587865089169187918728206560993159646049993045600899307099313389552859621415536828471555196102424977835605940559360656174275657663888639139912410940854087108943565563596372566912685570970360572614009763745121625608499183812611679344228279752658608416832851720011989701672086523273257948543213636720978203829204616633679412132092774390216529039569147849233365691994194526553759145752023303428099182852674810991705872537497889177401272674296655423764790006227387360739543929298927476991939925166098699420974451539869847967020723454698524526507120625268838650237691243211019651043438109654903541324985714080925115211880874333234512427186448872500274847326893098098647098581234885659322747559201575086057094473591202858449830880689572626231674228681212465006028546365295911616116905823506029609470378667798528924225917373350260700406363657072317044452237160586376147758398372184671890263707046545344337803638435340632934694637115587986457513870634342582998722504462984474957107164157032553390844677528032897727388742927464586212504236548118677697750395889105721721330227655649934993529996056212278704969119559213809844209898835588634013132314389328501120969447305346187539175396540814260206522162577137111148347932465983884224439186863972592606544787982383130141459136806425528076345384848924242593909573159624447565165990798506413274777794078098024854590073620289039510563170446296207115717758404690037266083390404970912887855365257298692101771340468615343537105730201096470412348852610599186685659909484568935210813385223373519102056570317668733398280635257782196911790264732454092919405332406105699717924066463156143616894295861281394773594444035940175862213955741679287268417324960714676856282771772351271092326542224339002963964484927714899369045563406159035330612275849383787852984053950349575309292526114487363572979915095380688882473890034502996069739318477585895467461340440352665690719558117175078222944441719164759079270824067086772354914763461707046929258633951385735772495007404286195587583586189822710316195102147109016720911083273284756848516082806732085092557111437985101839783020817193442512413561553796050184181801725866036626720951094349847202907023878648514933839030965725013654176555492927056704600154311575680642228904678207337089651856665415467688505705918432140295731311509611455085657769162727403563152176921961195252273199209783085109449212641563893942247522888278715540896985805555139674988233308204833636720314179651145277555616576938095106080736993693260249005292286200776075900069877729017868409143726724125880275982272194914175793881858060427407260081211990950160577118973721097187901523857397272528109955173017440362664489330890005653152931714636755325867892118609044061498847032050878473578869478898432881761190024792562375277779512576115663043185925504069471686783406546767019124000511432709432237909367137117786290245926605554640093174215551561220918279584627176778981354794450281666426103573640383091671443207645963214269784596175350003775780270585897345069523552978367297469708900771418496214762455083892657840450254141268480286060131879687280143670493291718725833502620836089576096822075594656005382222468740412738869846223525710596079987371236625268272966517352362570023254639218012226235167489936182341286861322028677195894522635649561821013772073374556109966734740067297316861644701399543188299861007884906966942841363983594935875669419996764034084851438105494196574969153641990550939483105542726762611469701246062250841378452566211064944366841730282906714788266866165731219161405659918641985977355743104940034649078796277382177167320626667450404785823921354347585274161905550281281475463735168980151359125544239455519189176514433896215735990929003092593732690642123445363343409570135565767160076028860142970677717267410322242499347129156106553301783470174456555063025921410518978551106279264090654400537482183060254921445272308763660855049334322702261301675667147880373869838668313398353618738305416455180492372449773422018388433705161228720917628826423011908554450579807968101006352293311509609136633531345722984559856277116420817149226005204662605173968613848585305019053269998840977383364625917503581068149189703098569264092707798431321386178768177734919563839776011824477090596803144206755579298153349351794883145559098288539235223504323382571009051367692716799732368075559218256656330819658498028544723985879534529465833739056640339949453270592648702094457321375612295401934241639071739756462696756475966621760514954999428826241503816170344915016497140431663060605519171367053539446498006227183194439384924106462757038122678745812647272588474372425062252618920466988612120919073093677412728632604157297871642527970506628659242561972020491533744785055972620863336702044959829817918906805262766057445925006200441345619810424252259541807427147823995552986359265890337765546410438073352006337658814796198471652410092828116643394894798364465442801696281800009045607546627457816287942612498609796183532632459961989280542929948460034583275423197928712588981105133865782388657865414807057200202774025862736616735665582424312058026886207209676653387658525793324082065733406313289534953176072224475322766890450097727464862105231873853455601607292937968765421494447643766090810125895788427046508143150178422632363980268639861095713397370507829355225610832135273267081612918878452312819074073781139674429609303429147709320258440423457299777066629482150717606465395770818416712346165151584130009331029804229455303678358701689896536664093437880142787144994470506544852982472840878356435523753755424434414890288945635157009965905282050232740109739726088885911246424098580556546538186645166421447348021366154602594654925481318224291823987099017288713358524447484631424576638103553655969988716843480728565614056857510245769496017820427989883875242745412242231110425309073485553842576987713111717689038713723290882033108932187047137359497342033398719811449254796656431675609804529191690157940340055965251483422216970792542185057907005174704422316889102546578833866171464032460330045368893673839488686079940326932334103594187416790346177852734499057635156750748051826354762910048719281213291697101665376488702518596758444454914818033583113171106409927270547343907071902433982755650444390369765009608179613690783450958407067872555692904006830287676023328423760969854992109221042876847400836591433316845158761359653977963517362242016348714350965618902964115155686251488475528550104533511207965485120560563182665494382282391465595564204774750796026864939273503097347906499385826867458953186243209204777125430169234127337514782190291755004974613192625915471095650650882160560660629742144659619212352376441815584755210558780315575527013407299207079269198697899648827057318162772719724783216405016966158162558250253401224648780352167517167733516154588282404723642956739809540018303532022922175956326491118163346560116261599450574612558075488088180802296885332395000765844308880009443910374846783278013642647336353365757044892914556324064720803476854029940271833464314796427710548568542786169588659034982804565469112226678923886911810038079048656410954949883846451302823741654046731414163647203007152539850546608783279306471720618578488731766789646671211507349198099066902239200571048568797007499916827165835972298110995372571974061220606569080940446192123046065846525290113132425446259875263781022201504405714445144927416069636169289000665644967709237943645537114984990393937831541894019296116216330685348995495397457488457861778536277641634544649032727486203751285721989756671703270694925676528803903703489406402356701884531782072773587736158215138348989428402271273530371954730497952390404823330650055555778953333665042513736429482220712484184722693270357948006245381942945081449525962725231952666263483163051171628873871533231164035143734948129509324311696933183674808012116724175771286615276553767481583062199615379415553618542231990413464753178164031093283890325660338475389411615226134161228328533683397347007922416776049208518594894377649319296604766736110076341029984929363129061670456262516763750761893194714896119983867966569419838771499120761559109587302839625996674290368022451800843311178228838494826440409790998992433673561247049098419994520390524083613185282204973952949909751886788939388164494253947386896769994544405627400735892444721974439148528317885965951867599525191126852333299145910660432861345668574815873363307725438511213898806889633316203530935425747870777014765228294892563922815564824972814236275486507316706732633205684663610779155834104174650539871683154842012537448638853253917371447010295313827653443824644947079746717264950799458835048675531539484833365700531891251149860478702025318762461179957774480786636404747495769098640174432895600184131671544506070741382367558045504071084009270000832740406327154384637727048193392497967944173602138195465092899884700921837745140477451500212375053342818350700590935699235467210713996698144929264216954938411591141482208061651679355980650158493726966113350806441073136519779936419158524228666343755561167290907239833822192936532245639843348354074277106427923569649703934678725660522508985514437251753386517076584665439855623900433675793066902143686550603332792094440369262229088186234135395386881097306252459764482691080201976566203790515670562458819901411827867731412174928668285357388847484153168797681529475956167416755588653078102244557491774706314798031410548314435720080564784090113040520708817052164805032963825237368719033948658593767539093874326536920736775311433481374754411227232815297306649489757063012868792566727318700622917687766136078534548032169320524201672203685177167609683639779218070970921136542587760606848506165225504692261947159445824225725810818614363588056501648364850412170163414737044807052973867336452909687102741153022828396366476524948621898024114936497169678501150507500814572734429672280009300828127457121107734044106204708711435291837821909065101795620522688500620331377516105441240084579738987275111313320019540159886943143041585402216421573284135986835625993950637202470358217838167851654459966115622840924504284047572151911737857201950921253735097105972506058478134898162047025405242794023909549480805505511930069569836036843075168294947322490366614468950820723390830059405733879327779507661030428945060348167320731161685193014122366852479510396015659049007714869464571851542593016292143980186724921705955878662771883906528461207965189854125371163181865823218395516516914034385891720966384131309737135388960548922639728704060631417014565477748642761501007821124936421661224492071942621011269284054606688615104442054371073732049656133575223437742607449980297846882467996700081111533279272554949688269199665590281590882893942328566586687498261506757261850562667240600997696832565578775084381369812835373105559969454140081862102743139109821005897982902232485411197778914632086576185916925713521536554045039584427750244306172695001597289900727825651087706669208362924468669258350843370593774531281594883489145512832848623361992208053769405966544601308547542298597385277361394567559801634511921902364240233281303907537701388126155013189020234971298133005688458769111675329255394298744121017200904585183016787247367804420575177074099998294151839400748563312405561455537034172689587424049245874635994419488827652015068220858395432447510002932186280073061160029960837230828849828324783402925420386702705568890895670744748888268786880446011379175928915347610377129885982219748014887965035945840507969085328305151753387068922464292818355359707263996277310610072503903304380395206606065243043659472893715411272902411259861674809403539226526981541704668617095640485550017635624315385661944637111097531109014724226130148915698844403638251688378931693943016024645860503246955457569981829553245680537113466935332562946337379511246396754610224038436498061564514244282577609849299921769898378848622574315483780977625440602843322174572480972151117382894757991521594218121251185646215439678494570054634030511679927708497394767819381120517560166135655552452602538321086091903343238858680723719212064540211886928423554938942447848509445161872641357268273836382615036577041516644065258211136054959365036667760785655237050397803610662056441996889425882567721011227426208577154674302805544948668990764000385615960917995377698381803618023609272306295273485498185416416578780788675617916435985114605139713034004490315208923391665112083133570458399744359397243886327681783620976508173281286347814609161762332957153211297703969619196052177160151737652049064264711552774354032783707548286375050244911185420895567748569063931790452033363327975247784651832165141409124815898826900986897255025257862702482656027189659582743820103268621707070379120184400746755891561472749942800606301860548340386620246944886960874520069948282797288540583577003959119630148333084620041742254631960009775559508687414479053614327144919637720354508453864976786130783162060090341618283953895962265036127126025422666856686019251809411496823187434124349765701231255253307496126011700504856027974987461800211801486508132630183138822188249620946915860398721280117514919227337935056906410179258756562340271898542081439772584916134342946823535417673224026258254167170430512968506442582843291173381195725535737086153740252128918430225519824324159331092370000745504928780006493512139159158292576380257007864839121203991272659450561458826021080634735169973046872078479293774187581905140266839080925346882526300026077437708544461256934768320723367582162925554836748036670761160022752466837666403446308823933126387363218546016976345938124337564223504474818155119429418104998361913403313252298137516738942754553631140454445684053784897454478442959085333624040634995173008188278667055308812143964737289149871054553886866563919799565349815628897306007577170206026236891536409395318645154754009317602343292512735451651084005351552013424978832258647559545990412474558696353407259263522437094319322239222815447943192191930193750673292568182855122291499447881125756028141353769665140159183249170259074870131369885000788068186277618796178574725701051034187121956529155897592072022986626368665272350216108168014758316622841436886839011643403896196588717258222259607948561803630948690710820041076586763853639360101496310341862041345133361296522837252940693219660619022682249199393646569611023633863030453017723929776999842772888008941868992334378853607074780845243347130419460019433590728650660733954420464312277445498490250113469694379970055730176349476901867625158852783434648710979113208836226284377426466719160762749524709263854934976285873254425752996082438025823976427483948601168132825229946665160741283310738750917184228427144035100353159030169640703317783629785516955812961067704157491946068097168562845297625144836676433867841917333149832023791502149012532836313200804761547432988058512276928146753834362290923493641985699315738086054692480103468383842772234033482191519594988062360424705469217540549141619918363672721943589436152330185339610238288167931564244286478658562887089993536137136271537916674803429974117534095291420737337925307785595129737785570265371054056720001141230233883210284731968361016596287580925197012844713465276688313257401298201164728603925865096200394848053683904130843912677276747201998389394242519307508310567076925444843030407527277977259072129054093533437535080978518635722578148169419494656371580074430776814379839342207197136700929166918598092067722981135786937802947320145619251470462642185371396831288835564827594797947701497516959926252527960854881419109220234386053847121731109388382255347983324191337462255611969566591115900741666546084571142712351848969328373857747997447433442541525398347022638707012462294661275841006225104129229362559137522355723771493970597753637465274448683481392302107954501801593072435548863412482834991511870785252966016900971704732936972073520881166024918622447434303667486239472959784958213573261408511016023481261444728998959328795510324650815730328875178824871882368545490696083299734949663079530031048858267259594382477144648082170847375097303571492407913613973474310116348436216747749644577513234560476666237929840537041423768143192926065858929315098807095320936747899390430335062065999816284824136129346091211154644411254292893972414609245965805693414526422664747435788521836346769325296363834361596669740512746405391327777767273478818061215834057576732582489546249930070274718920805539061974841849386140453917974131236217058175158361567059374069145157857711026270849163466491909542477329491444739540397995637107601142134448263289558726376893018944087938039195052092871804181172607727074001194555979028271583207777010200935826982047006951938575994811791081802078335096857367479687548675993717424338074645684113295515081290714793930928050280178678085964104688644891915609129300850631666165452599701872926911708675184951179736221786118601969930390586180988422983121630827702447288420955840455218758819390975500599614643425015748610461969768808409520703157483303556062827472761072247803817930654729325490005252577049214940630347019144430644175129704336332149535429805873591122810600413558752747828130510003265369597456319681959425044412987104533605894068864019522703792035122950727482096993798864769197433162319425157789112086978792533891593536466453246591086038037497522192501102838137294437318545728354024030809873462021129078114318255487769460040270059699481387043437196892263203114429806509063142140168033218126797808209734774826608953748818985642621718239770809839937320863555839325872414230829963636026591773564819093356254945005451038680605658127938824462833612297658493723323197063636257340646616471409234156168692484206009327873829770701870343521724598073411799071516053170857228244001271012676288108169537851535748554515859377843687214491189723291384215591649803961724744036737631044183945316854661405679483684157871980885867992984862231506413950330827889806666923001542095405236482177141733984101946195619195572397495608813261617697329201246800755328238622051157120565148330570077204474404611002666630971704131425836795570351952680354154684653284206363565666905427006970454211485494688428412688520942339218405783462140319538660536079027819422067660912728901939014213541595685735361893443241407287846635528260201450403406274867624041742840605130811394364759014528386454404851724720102877010969701484931710721739132057504185437315601600495550412820500251468509656236218654264503065140628104712790570455403838394681372353438583109295470802153181912101578697906001937603317170819516625223287281020477575440382011580574274178006511668632461089536704144671726775587993097319426289851582595448227262006954278453442638360815919250761887099477335836799158871033081476489869940277822576316407912873025376302722930146406593653517661453149135913073124584034509094578051585109389448816217399255169286955759934151505478658806465501377323566224107021740815931127420425001595836218255793111151167685344159508510402001331904884093937434055422973862063320338379232181771978840235760124296829183186541332709252509374155951899408352975390386712471488501551400933992383544897627204104355335250330237491425569529713299267033056228769226611284806228970738583049620864406750048368605512536711027544077094326264708469777394768448050721738573504029581022208106482356243868382112893102827295144832190598656524364727314122308384980895950293015487812978957060067334305038580588285158010982208574262601000826085034676984956290815351814525976957488736475840927542134412706888201279957648327044697138445563313856415567018507043434394201026057781883757282573658098448055759180193521866311753323203548495759821968583532378052836780927707029059870391319149667072599417173643799070968918006957719911175741867007931045403877986500000181409681602645803517249043005671358848931010876743349107723386022903520315449507318473378440705503324762036285793791848172141229006013394307490973659156153934664881906288604685055556259317505199786645358331640493166517749034166074964576842140869170171015865667740474793881269862703477923698295296188204623249728606253061969952312150906003979306535907130483849717582584046857513182987763319112369909827750854191737876334028875318104205262331840897502526968029088874889202955568168994211499877111140695454876447579579575668479709609040721109160237852747156169238372256874534289028127472750027579170039297910836186318388137992327438697462485469845713248079088074575716529819086376148584565938191610020534626175437475495573518230248669655457362616513697380943783107438832359986330592583831274617379552520044830539563113827000110159822267602171359255074086116513019670001186751023588457023429011424708441223481877741408503828245617212751329036350300824463147340792645254332000371878581239393936033968657204940077199092000016135991629074261295519278441560105468255912859837868712339791211217014782223530482241128744053502907099353097342176794274688422412900316859626671276588008211352548587495306814163924342175082793268798372529190300397952739079525048374971374858040278316586465847929952805293064401393028986212835004423806488915976773824395566270709816271259409326493677085138185807080743805162387769598998827700143823794173242180972994561520955061376630553726911565336085166184595184973727158024484676810677496269087772407022057314127371119198501550443599868616668468999181346065796358784334843126144188897233893280479002533019253779019163969326107298992118659276199796519727879477549516258217900148099422509902353524187090878501545999622784445666819588771033697803826865082393147747825026780209919851013814872822992384581081224672698534921757163112869458535128221325558806483774451224935426823309096652858637646874477828805227034189935267395038652023372926611715343024314507979548031267235279920266331939057163588129941474939146133855731534790071705727845250718017616862194479915001941555545733208297376694752412680125996838252049017528220208531124370928775491062278493598317594886992453417349173981146536792515899446168538156923690354132626699892125906638213140397346430159180617201710134083025542393874364143915691667463933011415795472759807364263084724819033242334125731993919255498301448120799124512947955696418064296278149690087682302621969754792411316903916718325388598610254521138326972399190441854769393320478792312079649148598287164663784919878624948371740530877021775693837677733663705070564729641960205686590581632438218276444395687075054635714876385658953302268916293859159466575038271324578571141721968207503597557006033972111352898264516373369757003675177484908680018907408366510300319580284180277566451505983247415492061733464594670413912668913410422458526394206135435293533950882395967767836926731920514736606575860518155561535909466735343314341694304307524366964223645194833480876950372892364575464645146824020158046094794092011985643344953266447448082840264885206399623204110916713646882520018499415112462172548687585875136452150656048833495584749023254709527303612421614915025751881147302189699155250770023178033808588697002296875550386707935300261365498760665731564601846984329057528136888769477218524376113125932457050600758408315631760099734388054194785108657297582092560433909273999219898641828683071828336048163066181200366387524137270621859918267624814696675557322942783925128797728093483047648460133334516962323276545988450867120394048554074582166457706510356290464048376525558046388608197272773495404469457628144022332035058941819839405988768927416915759285972169840045342198485101774456787311027662339257676485916733034021612829404151033085831293795917283197149541048447461850162999581803396909058646695674226713947681744814638601339273724645273816297057652431626880331691447537060816490636247867001829123053718336853065316127535374465672172324825478794760410238075035084173821754087615512804195549355358061348991630329291749654740415321560010151129948109566952003296407701053342636139224564687767331019641535857439154136775016665644348235519606997693213369804198934767683531016297666548439742465640909002956763561922443840856817300616408221335601333837183852225478513556850046328199241595787327030896192661534104351934703744234040820230584598846878606027912616845325729526746084538356042754763320443227054086771019599536996993848696643243262052601884548488955563105253365177914899235838227125099731492335569472647146412702850309683062303912664992448465055178755430678340335798224697814991430923455018285080698672262124452797542225545518483317595497869736031298364012060235942738342985212333857514950681054522790172101903638691418708355498382046892527347854116850727054027625279812264841164719797608676985491801238936439395757379596184440066388369500865669973584765986633935246455278939414112569346883394886102845233525432625834505511674176536211343607972522379238126043710679484165350003717501956977420318440788569033229331706510602142428052119380833747371819860601968347471270354994686541413460656672662204905977108082798844647991304229709260937730576461056715780646072872723160379924202427246449144269368683246737583967411743377867334342771707549542886683395865520739675704056874934841112417386996088016847211515156289719679717712351474433820230674777130808046128451124503523928928011964877699538037295980664950781956658410972359180188631621790925686293920654107862857378356285670673912473511359944290983962621322023458406360388273975542164444110595626422492123531711448024867342210566818683809943862557858957680080011572335126922030921791427966899896496193676117420337190398707688733386650665530530053557649619189230655462011310824956701888327914525586275629378616359787805563791305124077470678250273289757220786079221952534101954615568125825594140968602285298087288777151969544241402123597232553354500481088983954320963483687384948901203640322227565941064703776826285169783619447666419143948854048073751446650533064224589509490749217106189351830420511290363454216129680018586862240587076364053345525422519497934074773348028895486341573973392067380201774948243167812849073755248915348878753669883695364420299183711783787165951716871035736186402316755215247820324684150827062561235606579679632335929183960965439976023050938178480654662171835888052654747746980327037733434948099780375995860720992432743134318431414647603213760823799586930852927205656088877958774241627793437782776056668166149764863756971761876716711748815736686220517078219927681474587545145692018169119713260047315189690837357514890143977491086791488893919493532618622100093385677587299007521525235724297123913947860212798802169963152523555588044958929264555182184314549632405899231202780473312790790294671678269747325506486235906427765618580373537956723170385689405282412307415487814332747459851289469002652449571102761277827231867531777245269650682063993037263506386599915669391118966883315343277679265143391668801619646641669243491369456032490841827075647985201157443963725032956381912792698735253636052014926743049053701948330514824992436901205276437810847606516571519066827797731987031302387945463543092481715035861759839866432609230207317530156600430894849011204418687788976566658577359357141755030222012128186243920936958409238934399535123198951922874499357123117384882130764285587659758943375927272069851816213704880194305203068582827038306648410562962171402619189024818353401332716508779129029439134421564223405975947989223503359966195081932073633511906488362142207399329294409766545300645215208034172145370293743343094334258462914070216587551643480330791952167352967557927548820467082605519695859834516153769122004034310957785840238105232267272855563256780426932348556642402261051496306044295918503980407920098820784306623964542274460222236822664744851839359540636756333453973146110628632535696364819548912868849595617611062911966847114326351434826179382576262818472036721773475614573577740983075765385059888781808020185049866571360917737266654391569490859509569331101505117608899601486913633676763881859634495699639457642614152328610482369157174952225707405100061264509842679205396406124213894608090836479435743609452813653460475838145111558463934012481823188171340394838779983703083941846008677216308432699850112903488051504053881549887756351923408868002300190799859001587440226165880781260688851661298882151816879998159877758806911770290551224997971847200231732134210730500386992363321046454868285220665812942231695448156239930434239048076799053218891350213093611856136908008915409412579004076558025625245064434682332543908951353780323231709983166104061508170086043980766470523130973796348079558343051392740377716980522999830953556039321788382658251807729116388648239798582802411745641469462041477673823892768894800336319504336210344537891678630706693238299085020535983739053826420809628829080206926213444741363691528706625164888121697895540706415582675806127982676888582887183762380892287651953822305942911943880271531812663262499041746449746915926466614026391495727334682990710094052213697273355668528947278934007649363592677062940948348127210228171189005059072280171152367662922561028115755149377168933378552136937493446298346835213123389691042569316279505619349317653699356529587823268080146367706876010027345118144486597472892037895332690647927296910679877216645929467441703989133223921899892939362381191460929572655301786189303441302714289505055503531902333387972665097787649064506500055872217209354871141916958444152541445081772593872554367749202680820444872159034546406422339348511010579322063558560518739410315924162504143292312978881142069375827931875793502048251476124018116903456799974672496789527628382522526621713594293593571888630416951586096317661366552827102204040873362043606782495410800457780450355434991458553897440841244746651945986669171738667511627048879145043117585525843318852681219214241120557198971464477904891111085159204173023668597918986249911754630191716971870940491161819413852895040605097109509746829951664049653554871058157051193345713841598711038526341067277711087583677356295535773915435497998668823016727350217949110655521808640418974132812389538077602805249451097188059203298250578850232163066364562555168134948889926119392731930987901313457348457197451831962553811394530999267818423305239898917165391397738535696274846991837507773589332722787501588717778173640090810018404834109925765714921201055760331495810490727347395552788033229697867693163166065036668924427637014905214879802535114876788769062674885725025233254397306583656519375848971090984804040278703261058780125783617356597827425592933529770326877465020892984659196552662433608133827387294058351560364577405506169844123119348510052760054796281740769827690277648636559132723148336735124533760666810646231128195619406862466395000212190603487229145540809771092073578682419466440763917766184409202435354305206807148575661497687588050098397777599316885039615800345140954898300975427819220247270566973633246706481854915746750400890878237691876753500608859437942872799417723374025433442407465640002818558666147863123933688744720015047076217059729898046035270351405855058938760093113681596372771984160510644679859591773748698191293668158613918586387500322184712475431988379324508451933686696531774573229820472811023903521042937805503436387277545703676437669952615521657920566779724673526733031425410708517755915381248853942010303617044042792463263259792655802536865608381623613374070027534522178871391361210244476020371654316002879073946989922274153796201367222607864867742958936050122700184707591773917153476356268006035624143659353948853336147337624127685315798811257225997509923059455743967104035412838400347377378452376473669683589390330754773869276332847344536591770501256847856740716350812903278008565925103984326001748967874742575494528296659112232365269575134257946018926663132587505197530578282071325252939937805670919899105627548345344951270185378087226702348902224539402670936666972326159913453834989932953082504685325444254289696956183433052527529109867074873452788312937158332085122451515740356740509069167650041332765807703475737621584753801007149394011783266444915232370293592909448601668547420138425116625700599755586373407354755657001600818752695946783007662026746319067483105195769581234249845261374185466679212157741772733692852404414612768865853116119468451427781402247733659475107582728097917394605786539747805285745783484931953159605422770452447410705252900022313826837550331352842971989131679182989478205117931246441711096871459147234383420094541602966887895722446206901710308973830851072072644408751855833881474616244321291720036106471710537827542774375286010773299639409284467273028258309797310879939621466743838518224460012176007631940997394418132488800254835265748110578451801689634170229846604298602771449532928989564623899548786671206983738921473011879249688757975839840935968651083061321169781683567024008293256717130713637323827849135191137368592474911699864039354445794481075585102234949778920894258593015639995920093508508577245353567947647577888064367566471501039470006967395785241337337341940964509816585029804516688200831897933921765847488932001056972230002886829326075557224097393350696408321238743822168612374765050757000416055424589906073974543533869791487120978915540743179753931641469402228510390024344213915152144087760185153810814955060154342241794585452997634168481930607610934501648892120737911472814687122956350361580958623967009854244442633011229513794270868849213808879038681512244541201046394124999350398402932054756926895782942447220780256137027959627880339356307274846728089796971412099465608123103032183339976584484916982189363881207141952739048973489836946826171347112263145284293672804042004272312473314600341058423850156793146772888959535375111908714196118862382624477236948720076620171126860096541818398168196621341489958796439669553736079186404203693947617545582760142686476487486874025871597793592568366361761769865408321929477915599104881720599191552846160062449979960570512475048954326507541869343109202566273786146100800249356465854757245828008164036272319828418194388922240114432408142561347672781816809409193074422054702729286806558282714905776716783672678726368970747498559940616014100616702069784705462932361895878755498865180811241917069518319639012093503865283504872722380064145713754401660907220140998776519307404751338230146817022698821405156205342238715596152479938296091654263352652145086666837754841247411617485554267808655274405934073035516060347619887892200682040785312716144282061248936671365211319145685219990261562333616152281896654739111989836282152302760501796194383506008538396669577858104558159318792400961638050802593152323537949398605977697744571560014678433295816874366053565893241318724634007230342497911199249377928583931058678299563493192524924518700173354488326347935624747894515215135452548239788759489403147420575264217354258888667513473365744813994351241757196945693917963352704492850120837832842322730357232078406412166585032184078003154188015807550545957414664263961202503038171032418813455282647055574647305996872330406596773797181036771586008145107809573434129972304395491289194284730897281269570444665631224715332896151708863146551842867784267289280709649199889880292919606875647179690899182544368402329066883238291648598979294565765058968670666837662748399648391329996911137963289196018918162403669708565210200354587308958498239351727412513177017337925799403693015273821370872097532652700060900078632629256179698712900934836612800462037640980475583930452473281572791673950109626434527630832903260030222125292367343140163705174824815919978595936662283194679556452413405177428677733544431649207901387898922507275389233663797297634000882639689345457869889516842065966300096296541165801002361789454922631178736678760350311246771560870016677935475110199469901695351307841431212563505805623721522272582837140250925938680215653647310352255106520908958347197704801616756402315274136121492877859821132287009001571196366318586519062192842470908558609858408816359606641832976132002841887016234563498957942437433253457225049572475129002217828647239219305468515043144967094418716800574878718608533270479345164745313177658188563627658957826794180831000096064222536367827778047285920195422507979784338748126516499049533420976742929289482311982954094309617286288586503194156197180084708140191377195179363474471415712864801186707357975049253876452853805283568752469167396502614804462475990740909247748998047585562783320988035593622134946791398456129419042183257731649810074444040232795143960347909801255539083915355314140940213502485382909451763380149865253246023241286431325289589762178760481164206449016004398581331603602979428943398647204822515192919206320310668964130330517130435067760906842614926009095597530639231952248258819116340686001534895576915855122271668256897917234735218050632713133854273775933833432401646281681610046705455486186174613544934084260834992015863915823207296511081833819817239205185535044169592714029934889703436693712586027274863475974729569540029751435512394250769425423414608060383048392383702152235359174426966749491034391902821434954708691389234557386762270328535613029073730180379739982819973863424731638827765694922000826135072687788720460639330122398699467355588396617013514290242948667363731647752697224670856450601795946823675873251959249264331481805729382119588866142118642512467755086256615021334020055119886269063333413304056980136853368930794772089762779997384482375189122226495676123377777615066331243309961772430801273958375414979853509301425501455642814720406876072784089162584582804522550969986411584252815824564660198995415074782613996434573247924844159925115671811350121682541022469414890185704448945485811114011458584096722533605589276558529147616719696132270106485420343344249128651696950452262664397460779789867700893626011454521886800965950791500878437490691245133165257889109172489090602980881336136202813697628429762009657333510361906435839504774329171096338511916589345301006165061832892079643948662226990524654559408291548950834558536166250825505279823509322378363908591615701298920476117320028843257312049758569917291037123721821167643237725016477612657752100794885710745799237591947643936632832835301270726815466938967601954551246201726558235645620790486833024242123418447512595354280422735120203551997056707967456562296920194728872756027841010350592025616271952315976852935455313000148109382144422993196808767200053644386050301747809341141699733259592390746970677039824586415450889571642859632418277242796008712610633482681755349160058805197973274250155797820217238924287607987170044608930699844681516074133778814595560389628371799338601755217849617108621918698293181877800721458406342753032868181554902010408754458385661852707375014366710039409451870001619313162868236537738780762977800512197351161514027770296224390908572726501926057409334583840489057873101358409149145063942508644271021808004486171412570425710369474132343597690692263541461850138658364951616772551396705006331064183102828495490343860080755968404094433195113501008092015930138377648762265505763567003907109647620635726583715193118868366622474980463485345356890490866236858307565582545628438071674914811105112456588578435683001815262772171206732765554002246662348299100384326795036752564454551708191267646848138534311570790513370031445267669656398749295711364368375913545196988037303246619403616037653777581999392368997862112715440233863343543136551701454596720203044702947651879760004493935397922927674705027324908680783898807069078347603468205357390325670912082838915929695865741725136741450069553096740795833316688060193711573224696177585330367862521546837557593211820937343812421266501215367913270448468704652713842920116474259312368128066006047273379387993760155514166857418328836218247357899973774277094756477074868673582965428440292605054237023310497727154062547299886674415993362355870468193466015331017227813954852022470104907616610319543706929675397987149972101005086671239592645264926147770189324279339328287242751846799166586151561753334172845825664005148974498196107657133739074804462310660260614631858442992756062220865869450091482173523544993061860340712020686813615056261773085155709384347517735069982919352112583352961333846222432713760474289909646295445154704428450606670316845610509597467688075440756233821685073770251382403858169526929028419111529489724942511316195070441328340141382721393207118005796914556076883096999089146726132251722213724169645479832258922316899158609667204462482242860638752246758809677864361273599177645986752243556859700376755365944870471605926413008666214985011402437529845798434388255627415210173506482922094717374554056270013110335417559802721413812022355748695926954671777397958677712530692717188661694552151191025225726211411549425433757268380381008857083978923091743260279708950306838771697290370034616739072002806509158306772529497581697238370206685941297688362261671493130856547127946421286481361103818647673507354654736564011454894281869599723027287912204692127497744960749874314841055858687149554005115361537537462015494630109656651918812382882002904529170110834621713233920380829988552227702933690475294501214738058958625504827918367890163720354615324945065656167790060838734923029092867320875919787248277651840028441429264628879427667933498689887771469004468081967037342716651217824970991153508629451954715604128774670893192666983794607492534723556321836430921847923017193082823788271191975424671116924429210378087933583514743364924379994684681918340268032202486615272807849754568185471995006580515651383609894569713783418619260997001436606951751003216435592477720495983406547640019850830674369837111646613895431236166852527647228655133774324482678286113165664565176722932070718427827532415232349665517131440169061955073816177237208721191174928187307854385485427733899776042736562085175337639996347158818068493086978620179511621884396662144434283112347695405519289960094855834678159624390155265703102141837277556404806931733732063302303921573632368835775846771905361680521449511612058140817435468567065907834299466036095691746788452414433748605751573659535475585608539273887267333344946022064564329968433879244214601714274553470515249760556562801465622224056363033221712997988600927995489809136773262149244175321283387688794285211023824491200386639065399151702892512397827452315917901918697552327690170746666513313998036381595845087860163083993141495092232682700072118614841683624299653067086374560988506768859436765726933410937475450699883862363708864025412357822681540763967456206099933609876950120597346052919249433633100299938711824244578856963649040802791205199554161280731265556015193210093591838875546159440748863142874803496563433289724079946238822527024868236135933432121222785689120018518127487594548817135619519719646631269213213146743114493277838063242420584658211242198811820884493747220489111572237429737677690105878454151173331529617695561260666683726342141041102977106091798918708912171343413903945819775005882831328075027019824042486792773535095991139906071660835165274869284985639211715187648541960293422811541899890132165274521476374853215314941861714947271465654560061169784375716109001878235944780565465514088338213641463012247709593124448689900135736853880097857089684200894475078651453355377019135430941914348283109077248901469637494981824969450173334092729885023831344853750602947388766925346631852977349655565155503249806610918515794794071879245768461606479725915009396506519995942078411178933923192242700188168514072331573279377509171224625823099357736410047581425459285766332451352943958093834422601388559343533872052049619960547754814142237073640645400171557497596908663935245086636611486955028523842699340350906259836979638135218473659770057257719190911448224495150387024593333258872795170006515114862782410829168684920569606473645188424523500983864299838334145556569034797096146238965961281172773026365420637873220918312636391606576784007366719838095162971455462429240411881680940353162595155044291001632590471269660024054248511832983385689608836368990125658040266139287066072364765926808889486812055553702515037653847557367007609578117065108131759793480525411755128742435072647782878547556771220197959118646325952395392535392184244618131131846362554310237467160786869543957346952056188639342333422332286396584073734109286434172583182845442117815729227528043374684380006378140299035235807888149149724662236258697976367489324152503522957265622888407862428582546144212718868872306403205359067602363468556134392103745987663196829777843044703011490768930033874123823275788144957347926314966175539489166573382527257960186434321492787502719292874339233504767664858001408675319090747117883656518293006583451182043782728879137649332120241094499918098353428464214659317961566593211038615160710788343912012156697612079884562021367745689818835188421356982165564433098702326034319684836616460525506922095604086228501068063713309958988901960465288229128135025647049099517901231841195190697620699333950133044727568507099023960992104727377536930023898499037686705482856255209365819245010965689645816456555234259787308461593721322320224142221368772163349589777487452315272292031087055164657151380116262274788686419208413828569073733455401429752663187682079633388810501907233358395823772213496314283299515168226958983240418008046038174026280190679671376122670531306361144630452010942260690345908674854441841855454969003527905159172215546688755923703671530166728491771751423772665001190417162289596613899609899532217191636796420973504734976986767395618293663526582024096090530026441407704965257797798369773126676632345835089312154568194850744182427048763392638174179093400747305516799430831790544802941368955916175196317921120282844051763516208393102578428854153908766525713245134781764077740109591701532736220520075748722998966836697489557042949978693885760828741228280005833724178506027800575160332749923403776197219971317960371207082306442114046682376747785601300962749303472807089471624937215236917030144994137236601031327555101108784167324983912345273066792892690793341979857711420457630095309107952685881451485510767245703917284099078546250261326220107010119936731383031284146541402024728249661407674393681211834222399626283896488313390807312044556100490411753695158752050322498748281351715572262461474203716378806603869357940544243467605837346312642101257748834349693758734366754301339670261430305439644390641702536174546613181215487820707408417656435973129782597487888909008206481496203909029624296902086526231683210620029891468192451277416637926681144922868365486138912409707639196347473456409121783348040709302154005350913042405120097841934426201184924236323044960266558198713104911878255846470562590049117313123577013277294141740015473425175615931861300382039757370398211189878634086414487166119342261789972826350563119072269782122708413046352408476712628996475468336147102222403887152145364412760266195190020432571955248389645894787902808215316895210774751239905557884334512441683971029750171670935969517285532906794327543515809539818310524544405490687078734111159223517891596261771643155368739889535217437194459057128513016068793766689431592695363849479617356082128719376964700887112110448994159916363276118766475767702613520901810577169486297550319874949562514855897814542149439575456881603511418522384756069194309157062055236306691260905866359076885707961013717946349141213262148060222494540840990178407486823143279450537519779818562057671702558713749482274075808444870719062539058655298111563037007160389415488334874671699879581419481996798114996448409908408120924390587511978157073427121723350689313136683008039297788103463421287876066352287725802134276764767343397318234088667834176557869960402461001108125259677654134840566136009543167793706310289570814996038845206474577729457817159285886185609313477054438798409180188227671527109166211738797985972907193579152739468204274719546308625529100734857417616951506437086695478906000456863931414518759584976816305576544475642784614264941887750966288146367313342421249896873104471965604497402604097176978100103526919108618379639110033486870858768480312031588581924983452494100216185255892041540258950326987061398402817924189741135467213042596970906789624110033303526453277943294265378824974292611697777138155671076814721858953370663092656324143469489159387087353845373408196514910923734374151138938914135875827808072748707371225578374118763380939304653970887778786017493637320208939528421279443839825415426649315774514075876314960309248011346412120150686916001981487522760400673152389730920815073936964780348097776300442089015140777474797579243326931835770570621682839304621569313679596432953412027618034339268084700106609753762375406137806748300246572337621905777648222124177636268158100664574332511571966073812214706688755959790156199871137967861137585062238734822924433421789186592699933431087397155419207633531537778329099715862885978366949530520161724732977197056808054607813556063718234499571860513325278316017930844092729580821500622400610505031611017590605951814590934224496484608286419023922565240805486018496734036701619651351166929002570721772315756016274751512044595588911554600832583501716154079076740738990825206371648535590250674134645056814642689413249981781988344640575094803581358158655836465565648793240522353323194836876368646675861887861360317205153249034905097274954366160314687973226730415710210778134192160083730507710926770261179318698332335892239588404840097428430802762165145124382420270404758910229465785395975761522105275654342701385193652280976430894316311640020422489593480719302778158790619257330252085678480762992106291717220647148476611546390119482992100139769788427398689088756761051145739623606088818801247415427898151805335586031341843593592330973559181698849532842595863113465436637938213081987475592232804109239594538431217876472448864876038046721063912718508792426793179261155559167741399659020509448024905020493631846115724510385968973314868128363871743837252430828307541710913249757894127561807804879829428357854419438612785867000130438525460776926024251181078622203916997763946714844149943740099291777898168001624539006854416673692436823233061758763433369661867200258270461774649012952953564478628571536127943951626068317329105260251460646624436161507973013590407849645749162034959650604608567321151269359633592427870371263225448532443142540925306823520861743944044617750922285715445437306246534786976968010932600435212238751557867301297194272009781456766062555088452975780523560888176199941580915892134598342591370700545524706050505025695829928303295305339707080128224585435917493285342260008640810228290995346845304677474454900496528870145226455866055220844942692012720481869051299305648279065268364602392346897719351876010909562360223704870633063564675107003308755421710646763765515058969989907031490133351024944745816309800111684452062773467741459306189824860406864030829499047155155542915260726251938185730024077020999290522871956716559172722731072110926450063348503305168167021228127536136723778725291479185566008924319847988950125581030038041721503429009957302083040653840428853508454711030644480789701288856513325225396692488532295285447253927897105187136445719577320913233964596587297250727436704084908779760809845475959500746892063416135218229791233784831877977115381741021274728936533148171394201826257974342466334647931037596859170688224226635876525452717803334357119409057870287809724488494775655054854519525898700284554222318640159703678807679538792359141665368023078768988802065118397451797713826864265462608301318119604316648882264971513675319931780180174196628658063065605427666680365019140782526852079208590466716019832394023841035837512421456478212283937490930983677387932545999188985907939055620399307298838922081365875415189635398916513690191473879900465444151055200298880292929508114282138858835136271675888070967739354577443752214946545197728836142855518658949275107552089182570018470270948237975320019923507177085878748960374919483713505867523725023458087886305804413586464862159106263117467456895068250473118426813167122186928083379770097318632543416297344585105088890805114014576401744004821552357572237901181844045815545434026348480446410268089064096621736211231501213754436956398912860956759244850207022591042478429969942445215902260739625668378090553931383517919968922748782266485143533912264763428861645285304341607736090419010786257251502742718399214411048274935155790972948132138278659823986777270083960322977300109704065076768611619124038713115947414016981997865220162732491455444057447047518384946143479672868921854003877813161132405299506976775229668310662909775257298642588802777723460602824641987610814515159581352380271873328595595364135631288537856259195658818975226523006869279720552688487430509019381071358995856930313185579956064816504562975654084228203966305400843193387889773009841473842192928009536347841219176427525962324173908987524919440219580989643800024145822952901086290404784589323254980007515494091159765647715124460372017638275866853158221706136967870037149046600212607395449259754938129505467205932833440039331680505376976753692191209471044316060467136938831370391906945735791753054751353790053653981177311410620092427410185477544309452153824573266081707731099805850076996479004037717796021997092046034833199100834415110730137685353828469153591044493728654654831827232974738335365932040379610353804039777954370181635627574500867777258646582176642954297115946006295790391907895747551411106736016367817252369637409330902088267681212011042148471208097425782189306573165604568816757404228628140339632685398609248093730805183876010084798113011155434937352349683978676680851838899661679498343522298046777958302220961614650610821319389582068574045003888203209835320364428858398171485367822141127954962273012327717883874493819273232088418648484153779766951047768045148844039822276261604661662656653197433388303474942041104802937430309157467450733685221656205382108041905389866317209378996337688681947043220409098450723787049018947499236042510236061002273017808813090911467085801380142784623732294543291463966617346351043275640792990379644682699543013975854212381732912680837412946772051642160862664093529064000806645182105731593736545163223378283150138730889317964918713383585780814570786331231934342787696366588057729904796312532386984416351132683541145340541456448396647259367411135329667437010965582652374524113819113070801679170473976179245758697879778160729686494686090052756212466007959131219206917760454808793624940074504729332389451978653248121017085725372437906315434865115228558187206715711746983603337174502307193007172059190639840553013537660822797089935114399909056367296527657849651659738828344196537217584013396862758246036663031065693963859129072026356691871821463787693882640202303202977671843199943289382810519275663917966097631212214268835913265838568805061649479210106572219088190978646745916241484401638023098884780857480964327542364859379236375522942069585426684741081043853887783836390202953404647043731058101228602377094216718598310163345094373958752406890303728730742441691210704384296182894549916202282788985919990458728067070174996381845184726284756962245898614489673101475307174760765311239329887923196800900238261330383482843759641867057525392750433368843086808904857927916610625259864948228869368519823193747233433353025753204143777336405276669257695897747744505781586098503510707973543914008209373844280413413589780728721818885206703304293291774640882755418237431553440349920342860839827869880402851674894811734138758382226547532146269395699839680871699812954827353949401532599765315346995058564434746260772330408342737563987619465196113012389859406996203700901124242550546545903561163262761725092319366432522280599816882128726791847731822188213306947136185220964168051287708297946171173268973055645951490312714277848723156340846640525818792208207318036759898077295986143688293403691640401486974073625954516963990559724619243883538222730292102588207326851554740685123962927602584135659846771231929402888871194263246486786748543684486531790857663908785615636763215644730651802464000465988935134946119046208425598804314864810484826503722957713900257265426827435703599138230313862831478434494597897939015337262371873223909890807413994111519353572337996224005281358456117293292943835175356736350195211205447638275335836336844960797257947231334264129045048446309251763350421086469081358823277500283308353952381279001261238259306746552129249877546163371400605848971300941594582844746583210307735685737560076905911632861636285334421167147527447595307367925124894839297336943064482528248874049555686762546505786648384911782383571251256188089915095883763958327122919821724138164445192918090757775408721930756490015659427025505810440567969310875647580549207933417900807646065918466031714838427301972112002618715267607883309609813224233113273911511050510672098873922320527832289668475632774212458700552159780710137169102021550014304079057073098692619511962307500099056124449226522684540014384734712591465330165646198006026163866501032263424068009102004856827904042561073278003108772568497893774806390898396339047423478494394715610130277294562792804741876054160665516654746911531312622711654838834427757845219595465857467994192843040982757106855238401592159510489296136170484413842140154953404728784060695922406119217971987755917254496517521975083058104173031856278837809276759545309540776033018478703478160871242205440204473710106964673493809127786439209897859355494160186851097910733913893280544861670760441600687129174312521989794068324327983821638874088785974986096653324479849501816929244741947573234949707374246355353382319834297080636324768023028486707379121936463649622811368618370574940214544039695686878430451206407406232657583055836920545654505534653569065631025062381900600344139382316611697451707160482425867516020492322903565851788615401109019158453971339567613275399777752641590057780452594424614476362917441796968393388503711864238578214881038696441459704559964296651153992883465971909652599392470647142220068036480558503905599799443886549058434469662499392881573873167412587077596877477288704065667908459163999140762734885634085440822536985576693888669606094682885266382086343544319525610647061233008640521477921726653571782049674334583278040460129625788493488266743825795302631984982836106657468259140347523631952272012179647886062035449592322675769712206449252663347663526812631967627922125973200432188918194179304801859193597389492607855626410098131442678568030699306751982770259191009777637400345215160424179350194695950768668406660668875995166972651072390403365412836427022625564914086063496933509507465047412789609473365744379575029751926043043018608499284269830353799898597663907127130013951666900305236427535820295987568943871393239278058064639439313008721787851806327025799452485559218599150940638967931327052135989522381721815152263420290506281089505449446070983456373244890984820732316239865297463277805673449658187734175109143122645970777284431137248396418532284705651799911045218493658096299853004558144656749664387313792122525547084029276387636811091698491224466675356773211091052345276531625986215196652562415478494224530307828717843226654098513797642058664889428803905448406460644534698153685740050949502172078052541208750006539991071761482963833642533905295889696969739608704417071907308711941920066369312720802022969724983184065475469969199776825723509967309194210003568198320814211680851669740199906671594791138080311935308891669801957739941473736837439847551067684262034483803673436129859079818992480251789983693497418398934210821997981445908514679961461453241222070801949735906136448286484789398542507446651154542680511310425387642609256957877152721290135911249358847928565041215357381057694502579068777616976622275191523384265251254519740351136260017929220273833429820663050797455213861587972201909880913476191003054683607675081462732790706234786620418624013909655157455076137080607868885084357573849174044093001818813016563410821874137176271592134778012782709120106427086924436717639473081325328115877380718168881832533603777648112544211001914146258380336766010380837335429049042017231776675772743246819006263541169818544427414282316256776787305416262424228315595017136178625483695683828062160063578774270426623460019572112365051585490273927415953694863514241628482826511167925140085737279471143758165764064258703413053827241695991083595998952636965721742445890301394190156975379368621260800369029294820699189241971794597040397743042970474093136673553834598271671424103691903347951306477737354936588220903999067444356857969584076798278520236378622612902624243675109812227941089945583635474140219151831262180354726539149121441180491013071683804068619764041825252681912936241321165755877952884214043637116940841786526937715771416005005753852153136043994247704024349642760062352613785733110343829061539230105803356583165353432019687533043529397597286326966491938043878254340351171565355039440988318667462934652284851358932401321695893569268563019854522712413392634909154989970066696396541495400478387700556410837876620817818789566928834536433968030733960093910039310131782612043654485122889857079812189323693718723515163714282776845562240514269334106136438281663209638531507360895317724749415601216177205272541401383856708844333920452739182044590210167731023040184480339645332863982233495378352193587765105018186912810256700910283893422532926416782945819463539615704528419412074289946195637891077921146501763386898347705021161533491126976293561518958576037470800188284991619279559833739519897242610270195038952614171697352462589205985299673195570187081686780060121004534466062239600982503826490923190163645416311252533263313142916795913353813330508356130475164515094750752462150892955271374456775673144091000226790920496669607777874585698232870433839023199734235361806970609061495070701210340235743676528382368332262311228679396722359681249159439545126549474195524952307665741750178243763522322643722945171653073656713842697543657026524935884838835831761017599432435672754605763336746322905215597643549140586969382818440251061156006124249492177410729235256944491470797383060362966632959647065852518782474393877074146985437999112523249315423135723226753635677479288501921559310794608548652063333679843853635667904825450563838092551514007782507809575982003184782499245987194452218177254699523785501648403679448653038329504658882646041451369796214267326338905563358411102718658630549177013285953945983358384410548987364818680620366062136689154569601484937568369851798553155012741807316831043277890492606107139054087925452404741894249193481676921182466775430648200623635402478548275693368071599975220291308314865630901313920500020456998501148749238941581120712182376629430931135275011237482969100859546589228894221029323061728754814057788239805052917875199979990433074888607924381490159686914354148729850355719826847868704543208070139060027861837436741123141165216334807960691724583932358986564182759834251875579752944720530292951566346392292449577155843345793904866978150657579776215556344985312872244875835989918460122507409086348592341650798823063983217273212734118847876998194150238602131647151624610119694334374637986247482729496851858651277580213555411612565231312552982713497549903670799354262799633162604408086954991095316023216609187055567934600040529312279159851850506547500009640645060186913726059079219225926876956326123063314940741876402686382142809039155564200264909546626536579327807359849419223268427173967284568167538706910206806153915520198221644528217186902399627595219663016106938715194071091322658533711686413188635869660955376580748202378804125969303536489303082230813576657442895733043605677852913049349333859928274561552206441748261317116904963741956336980153357735060246981906622046536369157577493408975904590487010514813300658370320253026963514178459796245982068095271140238175158112939214964331679757018208124761498681749821982437882836080113149966393679948570689290617723839505200004560241009084500477605738085938229423180206031642287638143807932533108579407657317815510540353517714161516220338417975266269745976976972803976446163824693091868189787463922063543850567402089694282699236084894126556139284333796948240655816832010362068212600727237026316514624654830756065883301885346234432569638785890464029998489525216352119834619128397873758744578949587877951272317509002360297443074791653270664626155054831492607730032728950046107075079082913646504588401560753676834908747323673912197657420976278944954904727174474873360847979129011959586394362370444187315489142485802313447592239502814802311617753016875515829096831760124169716255319370634642404609822534995903616659759113910215685058468914555934304729431796032480881043914071651783163138702261120915889047605129145845987387567566309567556024003178357524208896893862624846025096863598433596560429896478805861460159724185370552651882317854675703940181881567782192711661665170269161566130749966085091216246581396795664726478617977088253856183263485025409096809642715104226625524794642786957251092860192772240150201712467295878219254520511463636964874142167928828033219156900289109636617518586894592006588649572094098427177273779858714930735929942951132670177164935962824684721156529344271767429629460338900795737501632001738912885802085690733463930991550868928037409620061022239957321951466579083202530956260680984988357695226046662324739435247998344960160762117993389498326910425588709047117657077863159481881674560451527538693940447286740121180851349909512974788991563359955173877060535390882283825431343078166358515678709595768049743811727174194388578540890173313346353571895733555137304784512585964082541595729841441121057990656017916829332676479012109397335968909676058497203790381499557406251906366375401099429235307334389207902337390938457994996944536212543853707450863397142528757934697059518039273958641977349767677338194873531583756901434152464510624901904501041412171733387597783474107720475388091734067850040196348626767419476505356591627589476186061040960061211431499130073739741427452805843667050016779118240672477302043962248549680148220918880449599640809645103103229671163882414308962613670119060866898875193435214248192329584359845272789382045000247533665527835840470560435016762734252812168930029423279305579777751225058071738384464631220917338081535937275179020926341176275722259925333149864942610788643384504829952902687743587845094672470910781224190393852160814001520052796767966360739318005097112631486293958783820567652113136103645634455456069199273219526772609178461472521562047330257942009874328940626351880303777350598956931137635345933716817853451938966447031548225980276219455458665639437721377419770002407548965514988236137682297722717508584205169375871226510962675125966926445085789679603715176536999895719714653149804620527018533286926475681485909618006045060475121025448830463488951008703284100196138432400825923475854320027730308074237721088200604579883998359528628679412437936043841283248744003191650926159522528700750140549491580942531368774865604844056546887825244124690772138012257490888684769853177708457702941082078939388285224531968291402762692934105043418032858810473091799768238417850214063957493455847073616614502130431375370101183866334577895819537970083140525004322930070764875673900229502664917221182298845881702142546473513886347872984713948830812320450161878629357553944109794769343833266410495094381578672972622612146242610850226890968523469537335468253306738365576222784040511897304850835679740088385003803084227370739012546011576118286804123168040275776844432600356851274711355444529103150371708953273562619792049080890922563428694300890013956607259002515565695528306412859941412002336054426688711104674960981056303794686019397788748646541859650730871087516048232920179754237811888769972075197986285160453895883600586795588703264429635580340855467812510708022579794990808485536053615087131988687339097679710031978116255175743801689787710690375150426258957071736532523199469574877744813922571795017903619590937084691045006489537842021284359248559788963215186695367459430808027637359842501071807771149184892266103649245530221781058843055997002627228061236511162820352962582082763318696480861232279665453211254141349680747118062081299059026600789310468919616471773091085779634660646214243750122994933353333873083789836420255824300703165081209399154655104901556590002084662905487695918145579848805676155064351153081183806101667412250026450434447103070410783922559225924357833376572956116992441953448961126976141322696045818856569993948966804017780455630182084608319176464036513738982423547216186913453347684715715818878169293104269827940124774626994454584376474551391515246691200808315456893827291925623477414899221273560066895431195841399242741210311904434812025077326412225599577612465700509508670232462677927163026194838568118047163467521325557713874638397808486295589738713860957716138405533655306446783404105964844922342337150860315649606987032796235099857095557957047925174143868729502543315312455410029480658582125608816523749078528848511168689349916446127623806921356788261222039172785866718310834784166162189090305141584154991146745466245031771470585827857630780628589230908252025701993156004521032055745245761639309912399523745907604285472129166226219853717111557936027917989830094053291620596752184625027606807198153247579120236172603419837560270809946063241329509753823955158045814846688040961624143280658337199856891270785307362354403883905266881875152436119264816618069458876212500721340851498101898630243560041775752279433358483717678514470426813773149178968244127046501734947483041539406168561259603587187476783461831119468513774785248450064631207218791001480256781780895120281275437632061141195331215656500003121835473684302065846659315378988628070086228421722859288965666457536237544887719249932585494411246498373135700659539358912041292640403937178911493561492776899021886688522757363697090553581193839726776955956645316241285404070413310037463198628012991556859884858934346260430110113636713937885852305451739035396692004152022499887829976744832348789519318346119574340545882392386360868834828753384942700688528408851653485902017363191901576958214730328702107487599485100245275527776169460904942057559660652500442584603411974810992290872137256146155828236577375838179876812018294022806029502830667687632798031912038553370631959751217916406084200575331158540943029432995088333763676950786233378951142115857496485079933380586001405762073360854352083228961509073608217168321908718555187435696254774250322096574551756238174537809778290130129271969247078370830207616960510549071719101892019775469874495112360297228562716371641575477127293246040187093725987353048103514008264706436098937910367799737678704168438630996947804047875508388195919768532362576693900482120042353501753155051942816420078625027365073548698380069979314445372101131023523480321934135096211830626683597495922291520734404369176456391502450532370983088836227530071797117814007804566002818246906833957929546437428199488138394980490939673959938171396371626666756226686353128476414205497983711690022473858764453765281458396861934589891261541560679688515801649611602354919528327680274362893539339339198210997270195820902073798108073573348311519194540862621476481243909745452711546792078782944406004835582700644316822671600064314818101804825637455276152782669002300615724237252111481043981448229928723804058564878415814880991734089009993771259264611842740579321431389754946354583837087981413823068248987747295049866585597357127153575805739124830413946193898166682066490944960023744610456123075898108309456976854822052223880898100938685725387243193361893304476553079687163809696672118018244879431374043882191646557938403460007963458251663347323493764444398827543764812454416650126623156838757691936638138365888456108399314701394346377079794411374139664392021974116999998581665136313986431751579441442343220581792746055304899334016572736387095389246791167244066671856574722604506803963122460174273565938621803196591629121589911874621542655879434244652361332756273561496376158849637690883717005125768448299640429138745510367221827751180445418367401531753921497572403940638093122663532083505422766610480084378512170546707262654118315068939406382672401860402946181455397017721069616142811746606915346931027913546598953736099577144515137693998085717126972058817375833784270135563052010550594447323907675299159398007568931645896285609267705670913553954854153997648592106371613221008482259937334732850474047329045484535414942422209002081762671912531173985907733877298459814035833107872187194801911096065017202767835999343001585745642865714185196259822288157909793699853167796695263412536873359589099331974697879309605163108454922562941413572081641493827647812908234218470993684242271036726206145402184275243225720660176283017687865627901215741668768665455764241204570068330806473487086946136761607130010149524241711727928730466089459274711157992024185046749041275377819231950373199167564049318838403828665989281254656594615231354141322114714759911729685372255817496349097842319814081529993479757800729702169337493209950735645030787820062859311922711897899350480903819431920774648280539959789990790370377235487398295124152725511905131833041894336297287716774177106307819843044689810577150504214110162812414569548782634011532035627082633265697713688319468110272180808732109652469861987332355006816080817940073449217186501134617914550132151747837352999512051747212819222980954880982837072287586063720841788792953170997977973269621059797180477750978435972316712019373388462505787776246323429041630663192247546444618431350249803679790017945795433064344998392506777541969702271922540954625488651810285397775797814673479377402641660249100689599971356032032665992806409609843450373644572133299897059903585178711735629568501334828956255188066546567808181218068925126623129444518661904105021232702265075468008059038944447263072921720544828745541547374874899949167037764971717708822460186451250280520379054686690242983894674079028498638714747977354486671330456145303856886329702664594875671640798919218532796995422916410835711367302427089554370601810038323158809992399709752108406339151890425790717017764310220658039933049356613224340191953213804275082581435371741616013396281568568991489119444316242462115088569981537891173568173063047007638290312118781408463587897803858733971589396331138904911200346210498052311740817758465524481151961420623513087384423833995975327963171419164931511136780675637000241460390922234439158788356720820235299467558623863572456140433793247576422209785267207784985518647868571399279847143254077530758880164468111323910668663313516101452207773069675528994515904552156482190039007512757008983220002366746063213860257511439063853076452612059875214017027984567841730320541988441777824216032899173571150226317400480702439570053631067080024810313464012645186202434370596769658740670710235965494892834745972193489617667154262272976491753657096767846490004558539094720236889873360391576230239629111107572928191579534515154408486929111239107312730375522713081904180370727173927719487252990782265765139691052051520677809130769881782978630388748955091051385373303263179434287776682494658632384921100984287207342994106232854011312340220826412697611427744860296184061386962945071109263115483690398769540624698916993907457063323782174153429012156767003452416162464494129336580808435556013755586661179413051808141318802507476532741931915696691683411226040667595650767747052321763049907151970296503572571165224045722637341388514879948376431417543298969714150317198604750732713241807244923979301703367239511139745141811074465786763446354912430054361147424783659784615677956968804752308186451783026637916840898145713280856192335726646142578935663675563838443012060664848691338038493316844370944994909142499841226491324074765999005339872714796417570490450905203133609529125347525858574886353414578286441714322741124408814956888221587775869905492042138406366495616328485796775523168045217321144413652617886679282646512983935339693767464509590325277760762938949642360236590370409037042343336250045157495785452385534494633276986951013625204004556322221245386746318372130787806177140881352531430855814971969169867144391674105676123282590149490776733514663907673676013201647555824561304094120302740921052541797818219519782271596568375280107978134397110843966560201696114306662866562588917103346657319566794173816721171249525016049637316613965748710333648475405049365079303955682949191462745802031293689247259285984717921947465206601613060718885249404185405539620467193634680680734317399834831181105910657825521909835062455991849878377414015016878619943735884890535238864432632736920676585646575438421033426085855872832866750796440362227520727183527816413076349319372990127899148656455109496195504099629848996441531136876960416012977563457940164280504472960198701604926357552053950799417918961221297852766503753566725004855472894640113187133767285378085395766624612428418507756336443355142187392845047658986884719225437270322251955664769226355876307789014553726702565009961211730368382384151615223056455148209129758004896235391534844365209951520512635434260406511783559181407749493495035120338714834425518118662359698920544100316290144918900238497629486051931602904689081591514631188943135284628781349110766048916864674196143727856287983029713134978712927790732095263631900621299955466626475494556288935586854913807274874117478662256190048537591991700622546155068257893002540367562174922495139517453497294474820613508150051723998872678695552406998706479951214335811690235927417610298792858676727074954198431533900643609083975872394828867949848397561342477147221776415192221766721006011730826758483493574908854256400578736889210786507304007972267795605126981470835584652489805077371429987247757905494706363433700045457450033991792455359410996207470221234062641645644501282025531609135293100482034294439467132851079017526137954825349952245912313596492770724039705451341613372217444034700794150236306688985902010044747444025808127793454138626459752102762442286524894039201188072852646950051496195959792880160191795233660961432236009968983222955802070138217166089503734587492653781709837324196146346927359646442448763027360417181442956028264390079122027617151531066957846319698153461767224335380110996836839938547457819956753573758982379771307209172910134476340535266543846034809678529940488061625249769319386335841574920359042946815811683862655026118960311024182071246134647056746070831551637564528676019422530757944288478529329640065803082519782810311144691665555651197877752727396321395732691636064391979871292974367702243236171505913828404442746122250212867833664493498634634565876648675249308334354146103506207717484169898591196895267196982578096189648309457020701412974518798369522109545758040617803768848901227833311807029409405122668232306102204186218350349193650122935581653078905644755415836247882302245590470453819111856109748236867834114932536195717902019372549266203535840366408246275168850681115759270603691319032459541497295191400448441308869584084111187350616907113966823518319502922584717463846289803085914294781403877278272372800239509637238161116040180420956578320199141756438068851761869746385085448266652505710844803791484820883060285781108480841518833079503641951802050473539727847540364339973021462878290223521032986958523384230573937734783541092600045470874423141539107903252899789760235058998300443600947381966167147498287047518849570615782927752755339893324511767171860532801264285203691784863909859817737542451572872718500326254793061244761228843898452082713356813334076909917783433891819829535206043906715878450120597394281073433530979975859147282731278703272353711717410230420067179446122720964233283654061767797591090073944129770660544372677034250620748207352461029800001757275172047798326032630994650705327868692955868765217788679141129692143310327942896961774310975746839281018031295205563780663867461299434075685668703962665612938841732779881141948293890707723357579281059998740442923697866674291706286120716729338596983573147725416999766816171207357626293718196414674369628846443037672499720839349346996066717333169274071504941776939771881309651143996147563880636216208471798505469984336782142472035180342498215363376636607875681177015793775112569361927110371672795427288403063119885279346222267031645801632768638275429981434965974583327777162904557543833733400369071177660838059702658313714948209265328365694477732932846806040708231185284817496834555795711817742596513073567190201359902822221809003709859034715376535940049773623040150946545655897324024218970684944380451082810184108128083213806813605233802536127034443180285703036185447970104697666827405274638445423643924422091290128473903855838065501363463054327576519395348914187611474633000015659745872598747030990742174972422292395009075723785923755551350325816459744748777868468699506324428496242671303794207435425137381548854102458972955985964069994519610149802229657344300709658597820230337789313740743127553713920908276051768178174461678066822644839015856090549171085679956042036721772780604075822074097944414279731687630936689270134780838660875912675163549894305117902979802039351653199726732114622209926619851111885863515196753359910560466940458979805173310929796948200904292725830054392983496364963403317788538909104445162519713672609805510614030539153454530421657223993112586370105527124240111290546937382697062287742725469319967964286423136569256561115785200484997644237950667840858172764625603752138231027893022215429942309423030349763875493169301551216931589226207901627451679139872588465110989231402305023041288515136411315241814897027477278298498544245126105038711727717180435623202260985307466947569882121309225066040189839659269373266331350431192088441536633669623824903936780716984498039327710084883629150796428947249201713988006096105536487960018803113178905319840955141804411928999194606099475780068598018064509916089568300688733853685456667921574836001335295886755512246006972663838958339642181774501553459627766484700504794255253748851528840128297242001704780266174132445026318825318088531965512954385331282078792207732310258835636766045377191443287199986535803931054506605037042551330818985058835828938391425830008492182881812012615224030374443414007622757442012712562892068148248311658658111719826943980425478844925353880365898098984484724912461074397269530056088097644339538694828288317032870812607899363708983755903314709543414625084796724381986378101192496633929828964696904995280733265005670778935693480026494199340996743133154320712805237197883295945196272828735313388291887287484961557194839338682686309404785327762278959185549506219966355091317642395936158690298641133095001077064777428166526880741307834034609176240682656384186679080176409296127266353144426891755449431974464592063444513685123408565390108092763385700437098075899111669077911181652769996616469031618925572616230428584080412071219350704294179469644762177611488729541688437613130029337892581022633852956471181961844292961132162548074919322559741705817511927137821287067245759758132446836301658271496429733039735652219080624667895620097260151619464951950723741038323770296592751924931997964703712226255364947966899777592877649574968158242708174711881080868025160502712296024794340707285932510695690355832381297735544362792120745741330480299109232341923575527137329280332383630230848490965539578213755433735989503257793956759444924206798735521866558246941348688582935342571965949575684829524510103462588269746782000807522435877238251231306650846658066516409965422404745525683737722054179310583527431016113751872064507165523513789313548532108481762843247527056768611285468550453330415349589027534099938934180388987773904237652134450787098742152284091106155951803865110402608894029973277257131671989399657575335757189104593805331586546720124246095614621512558927360247280848702450237254196868919800691330772361698135509902385458503068270478094303505372478224802584998876218447113098776391900726793230006334427614366273826703024666355465603839087322309582459301564368336705412127280407810662244865680526793634976066749525608524495011082635310813597306330067627097825197516100285520400015447483950528188181408847330578632975883040404714972206279812203534456125833499021968978589185853845468893196590174766923494102723762065485002658477635457704660747519475934656853531354938225763740966412363337291786478585059417574033522696006641437929237154119731211144271449036503676876784583060496626451250047711231367018490196541139255671552410708223094187120445575639600545832371269068179237946101587742648891695274364022695642850026140784218616930212007644224815383712554568736962992756429601549463906714385531968783148506499011788124723096031314859391417538287207818976051245828292484967308658976388190117807740382982810046508193673814349439542879949586594139313266870217857117024755215677600082172653417842660812428007094898895185368820548753468911713127707535453132621737911495761432522959463053172914299209904155162619714111025735831465412544727824313444534212178748163135926015209796404058807779895601663621945741378355296789726571582582812522532188035459748455713149396622164348994218553834901849905758365478199426283155408456338650723804485067164720110003523327322681185584089604739586414599211270852349983822522599774178196280450833264327579978343068865635601456421012344793244893735604183030810919861115910786204216181013346552613379165078709692495329621883005352052020861272542955342294241122571956221164344477682168559781167852074895871465822522554711104454662068575308433154844998423964208980699057095855327922195073720967264310445114851543603487750242011205608294996971199578885495822393497276985903572074201492419061389806069843361855986545234031393089389500509104110973823785937289421629191301703477573306206873600153671647189582115522752648908726313080015895819239672899808887809244025057762643867063054640595887564096150742408424401935307579227634192258853512805338526439654924034306336018734379982275721593697016964635672178742147317683567047739871175953568893284065606835482822274850148350596985795194489740313915913832403842084347952812136164328967919972716333739619985893924911591989082292830411982994013672915686434092194153656480724773122022519371478359126531225091193360304240426034297986438964089857735394105342398433709723861354654453840781733015334907767690546179993978329595382475010368184260132084948202689257659651234825635301982577736112894858577144429816810513397879651392359964045554684276943033431559965239894837352148929383738902478254071869724217548147501609340373171747421969850359210042340129058187106007218555062299320536762215599872885587536753832741543847452363216333854776584093301664684652871441980073480658436579410116737909123311930470098243574874841215674851699260794611425691535338100768740784913354473323408006228699695435926228825116349594123561177079813712641707707675290497428060676969888478453153440988866684110910398676401866357278655587454667615284319810416544199499490563056071096570414604379803316131376302321741236573219357418435964310515184554956334049956026443096474174209372105321426059630313571632999790324654635369630049487740621620936384540295201111217949623647369298705679070502763273138540552426918396174472325803048760020491350529622647778643687324457806549310169182041575335177029854374531061159211380511382487762183507629538400766510498485796922420480404820774582268882690238996633580752325779890316125755115755209249072220308907213107728173485578213229812670194426054702833077286750217384306969579558376673879871032318785684685677539179645200110801572120799613665806183441947567272802110535246270516365881451950758259386213055088683616573859728220625110544664027620176069896390961400793073307526949980524409430006697765244075258542536450001855080220901308315925004020402298867993925374007913033843138851784606220966933880238312167343981465456901204072012606249969644170191787850018927780856070686358503355575486236936495829200293221294375872164172237854942816236288856118611931448361513090550324066937153270200943819208246651443301693475478974356193860523737329542228405698717233072483336644759841842089420710942817469389744544083797108540058813116583159160720499224128524733868959527538101617675073983034890106501881384294546549610806824149270575041331261983126538333311834902584836150274433960962330237906011945654195836194190006135729379082602563400897619863499922639045985730654271342217761632406921980228905957318821757672167727288422275869671689971805330981844609860677424732739322902939787453982520501844893113234386720889651426310621628772774898657501797127342656514449193803369075743077500643935700266104699027477944828842887921653304710218868339692269528792997014426970968927221916695895830403506139268742463275904635210298299920636814341277838547915299566807966746642322414994786038556120669608580565833706128800649212353309534330569778297823451246339009822411912410183073966757199034207228295724835807607680995242455587971878491719114396350202990478433031799493224896448171606962604684672486610302369101189514810273739336847321753634622366443680502946106198022850179289997942952380017978922602465309318822285739212100312813858668999453171986398546614878177266936802087402007313717591946957017568250455615292557848174047509067997503669417455366870269327047530859850291862347901568472826160968489150480988555839889395853928570558389723111004393857408742327836194044418106798285338240790458508534426275942487832208762742141339905847356130308391824149333993994938788071300049441929213214846265489388348805415618410655920429609766107473090085293666314187315434380123729277003536746620344387422906578595881948962749794803645945538693385394714282058068052056216247327653268420036648749807384670284263210655633687322033205027830317970103953079918902575508198878915903893760817966639670507746129149189856766678768821680650898963462392101334921576298496537114662704934830818635343492817294786241936021320342052263929706911867110671836041496781574128497338263192719128795532546510528098589862845909721770380985066039903603080337305893338462918561499727981302595415585764877848276223169873442374438485695646840251657762889323575165584663193259662227110897540802260215352641702306864403365472290714965669088537999454862466454667535627565972191970890336628277083350612322754980886901503221734638698280273135714863766428048981142377144249199692635501536213487638806894482870727660439262919288543604288651084400902184868157006630987495492926483472393910828964186107967503169694343666863759077985421380582988017465609837693230630679528846588596840291737644640745403820215195339272653199207699602722274503768905486634058251578598864372120587309147626621638185702395312231151620808668973295915898724177332048353913393738243881585676568884269049243265832391238863898524706057048643684381674543462805916462345667089678562592458651968483102233646428996183007818799714444414980152000428543700417451288837285451298096203889154848063195985571023139759545313260356105572430073585805746086467555714230239390009532653239875781818097657819778888838320899058985081400521207548037756364875771259046313759588140435521753275455668079970731072453664420222002061769689435939145034930659394659115113692514142682092460131169701903005758191350029343985861279856457570435392468378485510922748106710689716773616737900688241517463504649598513203634411976531614702801422825705714340084779489512749656399224753726544955482949268428175480425872135019679020070911720891770611597286209182851040241835256308083788161934582620122846004665445264518792681066914926753569447296486910851225340388320398529530573679772924285540331090163808639994896061913639860127666364040156322876197026601044458304752615901126989614051839645729560183023959088261037120386068471506489415795927962657538734645309692728094979476001891915346046340176547444997206832683157263564302464024647361003020309138402060085053479473484968614633041401636530620398754938341568851051868605672584948301527057169467530118001773686698350535222124536928339939030115666266248859944929914191381244929853234583247424794708016463228335865749145560303467468094344258463486238621158275157428329792561078092348324855580498853843380444561894351242350255036238343617154111057876871188703588778952161058531859417495005257208878679586027193813535013031961245369723389360320503718824682816726400355693530650249932676323056256361335879413150328973809468430807103787870072211846199985793583646969487770595801254130852703216858612309694895754191938512257904322719364178330633966399009322982481238459691280211393169409229341540277474216060026219466298847884295282160050783114217086634982888608472139171863347021677804887388110779872705355281897493253014091075177476672750691223526834192907323588047065240757200734195100803902851517371855847497239179326867670481172226465133970428462660574458835898769217209443808967654630692289236723262294790098824492228953082404699494994841683148057222833178586767182752833648356769822758781222108341191888483756442993024128617900881800974211201406185952839868143073752642556840202668616977775122346388894889228920975815353419363792404962787335731854298448499076304281117156044554458065954466024419116792321451438638043344618596585930580934507983735372733929157792125203237499617045227148418035990287006943252507011355230437988096722300150468151803567707146197031647730612433789924766801245063227550988645876712241279194169722513754491831640379047438593924423691987602886441061090036440682024299042290701296659633606342434250796118567260499959631261055594990075609759213770010693284320806362026122188085771421575491372785761914750171425836004405356444969960539706690339685897225622298360014821696890693012669403871925308580422864484182496674574301178388469855702867984822474797733848276444571393739539459873454466841529149188821550714728360451062561360678218096786330799369069564857750594515663333662372222574538819869362466143877709424853493185164366449338381153576666267870598331653226139084496315247207006409640122666945506306801651211200003737654641711949052437220478958760171407183471276750886409952293308398050683831069460504088771817139405445090267226007302072578378400695553201785764914095403442944636831681776235959775669507026654797355271932755734982239226270224927883393295963013396854957230818192044527673389435456997895826566978756624628772720510346087996101372610302936745502472704782525378986187912127725526399072495656616210685869174528097346584629782086836701533942729332193663881644257482475457512953598834524820733368616084871024180407316670397934016176044487211551028976942372758108861177978395552045132949133584402708454638845066108816438655487007548388974115403484679440663363841250050218970071810960159708012295262174161883549088415071041127280449790609657619139562490782946732415174675913289624924228850125011512469736611484422908759810726602077415654922909971553523363987549814381488976843170705224285563077613068173494102121910665714158582222389650552505607600045345825258734848939262780875425946864095332625717827052609373628467574476115346031471354810436540877575604854628897258145851928258181165823886336675931554767082474235257189443395687443532506715808472505588153519893315748570779988871278950220205559220337907626885169526473475434649037552528607303353954443263992110483974920581564982033859060781778962768576446254322382443996841904627549641179048108443818878588286693116150790745211115527288492296693078452973693298510408199107081737292661374620819745168936420143685741237280435314473877905303696622794498873134198613189278607393960030153363973665869056318711367818492850473365108518045627259966842324371999654291707925387543194762451459596599365923046770085442109020186248430668348023736254154978809346932345345891085545177811189767162483484436769625311637994058707842318511554844160175195065976803715393201486305502937221608177958513296143202979340163197853993284756854912592265606369081834402831635856474881842153696232315945044915437713814216398242489569501935612969484310744654705374469365688047083900276009643551988541240660293346723481597811968811144011350604509291357936109958630791749970407747704244378239234025135529027885305030737141336618875251035464475426176425699645369743019787358197016620829022181392693935526202351196425905387759588008429222287902848318179287901706897071310338118747074363698451224996445032510856851488898995370266785475421678506438706323818928790701034618568219200850986537943333461987224329860991902396406362575906699600521200133884729151592742874404493281794289702315118214453524796357131004392271851479072901030529580789296675792625316603244136889207631171428536695791914063380999404183730007080739817231241744609255795497869301146198766697206170631852878141242842291647715240540140968373754759915601293962297819222130920514532924246517547312331381284057198973574810063595971676753757355370478368031068368295111234928211528135338301041276517604465866710093408874197518211754769576584372772424311038950722597635285758272378948392146883073989238381661617217392165850249631861158111187738204520298805529182620357174633771257793676999828652362455003512389442349878246305215658928173192391200671488402215569660078067319655153561089646129249526072867964334542750778163106978867627482559555317551933246349978119034964764867376375033829696559385223847918652045399475103263031917000160616525695447775342858157912985740190100550769451727600104835927163042798673821120290044410827299134412115502874070193058860007355022257397757732442657110571244031095634271448814707416208391296462103720260149859293915155833529751127729576632853353249213984399407398065054259797113792749875090596871461261059606978385313813084239826478037194438051533188524480719001717644818802533430999286309771060555956476151016530741222463799855639921684592176203909552818515823285811654353807559452928396506446839417059588651490590619021747507261413806484004942214760105875752961779277619726322216555311428500490801418382272435089170134615064008675080770105842352991528533459977188538902829349351940310731967929758625994638189262181726641828955318260265050536973657900321165041339225531617049143303764643484087460773947923751678333401729408289439721768094708587834929643167087002779270377379603282819784993737807260963228806374370066802773750023975123703127153972362345068098513390477578929091079483507343821452495943783235530061159619076932199119242367645218986160759723416189172697635895721962322118570144824858709125902739547791619382625597898805589826530517083892059457922991043189356744404719500533008935988188768223556175670188837173825982578553281478746976055064891926729405400299134453489573132951406725612453507828183240203243075355232121772199322228373722715404376981378972007510148245199188014087463340354107654780215351031796975384687943245230054095148218505374902918131089889673862210220491196048763515086654417625241665859146518662994054439990414831953213270901372764178057852379443148799949454672857348471275171752026407894256736822977172485004589112817283139258432932178988104545802579467911430765943563046181750859550003991490401224787465016601335786356367557026878552886621649737028088678221717694802792947711114656365366991159450346072463265677760797704712229667947003220815211587862337049376523636842045197719641319388811760396817652143981625029979790657464490469960131347826814864033535272390934246869980177345951701661913832729667100926251653302294297241261446073428059253599129475404829737632137246991186763548451158269803999585331176483227422809059561616934018614480680715492483804034748475401532486027211719686753845048422741413273512000936130219501171270123653257392511258581890248512995037394601469819212546040726036415435435004720388628334905687076380897994347467188368712709286148652067770689691031384704042508126827099614994978277029188379338664407360171395800381313194512750193344195459629554674097769869871756820951318275600488757098101957649514683341874352703064258681165480464706829559545551296632409077557678360729885546714655552839740974286116960350314193706162514526412048655475456985541894312341966688858473999811163349040627678769087109710802548987021822441716917385105972835236517789439797120418636618606791604439503077106203912016086099983285183389079437786658878060757417303401007894691729224150861503223976294041884326010739696863124082826541410367963938576367894323737338409865209012347777126855449180756488548409706606048145051097860115412796783539222130235097609571029814164611969570284127895501612861132885537732751842642821409180502992053834652912076863636706454153075771981748507009047015657797100939366175110115891223083046602739286208593182784719557840257069465207544429337739113091791106621573764805901824920870272043693171215195813198487112439239452651852707821355931159855031114945549220292791662852335515772215637971680748777914475578078715944819746603087951121949337768079506693171402597961993433572159522433163396773185528714476666382517437217364754037085576730770767708947501929006032382545684916924672541904937528047629640597926616035793961958402765238838856427160096994082584953615981144562231210383622396896811287313793433023654720862897623182525167481187263821228433090323521309080667155254828366825251901946919035210873799547098758240495421150869636110804845908139442943631662743603057125235788382444442769350877267780873784200865875961195301899645786533481043213969621232178948443651393758987047552903187812877887642150582165483685476323467513157304957852744721571888107989924940139549698761359371511585082093462499741078573559220610472579553756969171051895019292923028209545551416509709394679084997339876700634145886575319020565892456539541747896527595613177125258300923412969645120263368857057802626278631103731965266126204764634451239374036561060034434971514871711184803857377772963151672530481816005988760694187187493218793990825762773316021591914448195342342555285963219680011614107206731185954003676485275664411159115068584570806373435479426942823973123686086574054478837534472901023601593278961946487396217466400437815436884274001236904936068805717654779662261738540352650021679935342687564999699996573702453505453372732401569751360736633537435375778024901556800678437262605317141538165756394539386692004790093228131624835540553704124833669379004664874272043983494529259175932497460991409408437777776912261452284242249494844838631992456062580953978038007151296248354889048727905051085824132238457278461001398847376366345503988255004878318731750068921833471243777748828615956633002704648834010984281456455170529560356651597156850882836113129278325347164100954962544968348500948412091058586267962404806698117903186561959596421317105087284544416780619881450164652472108971167647118287833070590487397994795716980867422620160191471957405034152849442023992590030593536300820336843928642100989003362626516947942234404010115089488665157480121205657370321325486743701759693145296022174245676426726585623370670951590652963515502372541744645641725952511994199242232483551358913756848493035643501950370308210366844210980834696548965990276663905032173437140750061596183458309373137419209055230326855880057088270247580298853243115368215921032452302979657342227022246106803352538042065865650126087594031621623776119429052224332648573687504029509900028925162791633775388300418199862647081421676616438784097743080424234608533834678090753949148701876624776352021013647853663366311963310591710125146616182426601213186839941859743660804680220283380820874494466541229829769335235713854051582549216315434011357104580965096771612769557040810090797864518063647578387522423596882922477167045391553866127801429087052781888698986806827508429314925464042738724429942649806653847879364488869977849824035881193705587210547234320317119407197573208395545522937691045733864159969018182171133771686043838333584180542765162021439070950273916816761379856931510974212726733507665864543241864344788607703830444784093193093165297112168827220121985795754923828355474636328726215250632793263382969257472263003908896337283374594889141286462509708413313351566179613658907566989096284817637854398170198332413529025513903937530743127024369889142354717234059957953591713094263709387944935695974165436247098124426421912132062642473474514660795926719360004332253916255705335028872008561952614804014163586309236659143501872511560890080669609968129845585777667664372963964691228319884726928719172976772216894849296616990679792035313590805803383381034049423650076169395510973272596600233774919418675169646903827774541300389680854523759034551167042868609207345300401189545583201351841961348662861794106319280141578447707974990324254999246488289244265290925968255363857434032083717627109657675230326298708627220584100527161842287625196800324130923389033490765892008803209435752264074037288262081427037451707434313634700629129320417522125855515790793273499225689464679253354119961475155415750331433898558767448424390376769513453023526978608056084199932248946507534632798205743623849359840218630938615844073219929697581190608285890833577935719532288467369211330395549096376904955317522677049662708479312141646117671336100387217930239378204999621177698905095284607242710357438794250351955569403681542840282141811905293315098630444751227437067562873444677844291517137748628437027780800581052603450477113713662574393823316670586024733518430630370660399792271071459562444042335349833766061419091040478119672045344834830398015750886213451124073943614631736000284392855145496266693227737998705206232416583365788447751019135045907613040152337976077912673864045564138292953619769557512900669939297390161292188183497312432155175168196633941019959949636624198336463342872747650664298626468397775385263214183357388454578702464185175681174176037748011779007492126620565286610353303104821067767362803557578767314394417148446138581190207248864244241412279073539909514547699508371595144039757111036596924411001672450461356084517231932035302724651635790412683903305920942482333687927043199639523446403901475552195361554905696265793350390312812108522444720278494676946866967371997492828476363190254710210369634367599638520533750243010343474331305485775559201391654193525907372252797464163078401221489994518829969111913438673430069494412911811310935566688313939523363391931541483795990151499615543606803682300312042287953656020144043800335445751546704536116802489450458076955222885912227068391362868390062980365140263785174695892639453378329431131411642658870704049396827389176671034954170169009534327804293423974046007377753876279057053924449523826759772932060636138120463579015399934201677650518192921259398931847379407163950901832022998368955022022960020178552993229356434536397988901003740383861087297994357009390343358023212830033390175384341156929746175151791920281544718973880509793448795791681626440548513695751012911469507403479633706025219814031897374340742368510069014056056842378808594200343097986236634510249750905401339540264111448667025859600477769124063680102626280303242427620292322215204502534747720156796518249221490413389753929805847760757294378247146698802838807229882120370827437751604991382110876370458678788888165285374064874066922553654517420122662066013735183618587940690035387069564662798923764691653321077793642503987665922010395816089333899002164661475990014312801115990408449933485785851455399832325168201655842273388695945320689645867441579619946613429298564448873850836164401859850639359461400237590638037379634847723086366548047623882044206144516281019942519062915380644182159060788164148622595549924832332622582435982453260555544376836599944637697499787264282228562837499056229295521930527961977133914120214698247561398536992322252515495254935153549835966031798415212630481100945024793885755099674308547568541966566390502481354639506638379500792652717285986314141084385175778902816724410061921290807027814961138576910320798196072222109314603457415728605093447581200116753388623168688698878342620941438875365820030997789112200238975416519223294557907441597109050965451509531175516618954459224755285330316795896742363439574321793652725411805854293738225236964825105245351928052577395999888549359386759584130979441488062176169141606944825664876740885770075571420767345617296713297226145600222340432113152539008110268861769274857013272626469957738660287169355804066418148058135770732101839989326037782181613708335337857792249310260558132222958060633723300981161986900824137907739476573374291964760393520764875766277126054522160480063561717024635587897158242374711474941700263098134635718787823013357432463163950368844470516990936311750023529527324957058358677740189071081005072110863958606934265047512332262301131545049777365223242663954235266381628512606501772085572931315515808232526468966908509575123826388182232742660826340598376977620583395619668409608349316568086420142363253665867827873638248240005975026485364208134145938552283154024676390146782794120399613073948696083039086205375220713234898233610706507642497115304443183786792010200396894966229057966695911197454929427272011480450460105708213996822229698680824597557738456770957654115482708493371402347227732811246184065577234911274334031372152194757909310812373714505874324050564169212382918949790780346521443183999380522480885336436224207884671603965597685118723795154858490721221847171567211247683258484126602879223834274858924794489528954995748831282526382923693162319119940549871696312745352129233216425316262303849180040405348669194473679373961049805411715825189936688386058336846618820673644137418737771240430051765416383789468981553254279154005864824939023104128916997736733011273961771004988641020150773716979813762433707335140290966534174731556812385077602030426313013894108515941944442366783615462858213380758474631183658048395032560025117656245079874552874101759869487027108597146390644635993376717912669650121222065189786540511464826702399053389628040156492640924626309766994462253729769603051300690679705458237333352989181792609562751305458724499113036179650355876723745457812219140967570717197675886492608051619427678867779021171543480673901616410221084506830291966674012248923507287602209484956123929471314665593508671738768011936601683669809118923478887487919033321281423034428998455798070776025062631075979533211319026921714349741332793450460339615538605264736735646602898372800203667831923766871095786634168716187097908104970148747452069443426496315472514564465223908861028429834257470193207137510919005235801343592503701992730216766598120049989766853800731885489207746184982462242917865237489105507439806930196223238417976698526046769824436587224537932398710238449001223217450882070296965555216822660662801699772438425504005241283101220704112587943312372336251684096328249972070860205739388979187790721627553002995236073767816518120232900522001278581125844493243764894746773048696480104934485118574269919889145490321198616405286747603752797869900513569918991580577592907628390520436155577266065219538686547327886583198357075633101653747959346111753369496716119869103618444727319518831173934695412767175707399633660726315901297068462966091176840303677190002014458731925744097868123717072632766369182252328100163564265880676328002249549558056162399444216144771809142314468257770880017027630118097126453500021758405154214479391999931872219314094847875892197763343183275576208339981380820310167306199032570002246563143460481745102206027439022507074641659333508600453119446428740943403148151829679563028883350798990820760722192360018785793428691727651638768617957598914586473474183588340811446807372338230223084717587933656351293704274185260602192973935578786490383163292921663033044135238055595229429582214246321866951768830472317713696200963288396226997613127694305150973472172321532333189397323362731750281882915039578254199966449666102807580748790879470218475352850678542249832872031768860248544186125738366263109763537484688643160652425954290960730248168487123814210904685851395330324497019235791745425619280814466958929374886492870801490014790447489212513765807717482264813567102033656721921804215854286196676660752193105438671936819934972227049107958086497920386796502743700136243601669935387551095497069291946560732715420537647919692413086135420940961675587500862622797596056951766443606455596490231500307416748728514851067164539133263548422434090119136935713816244621992167901842482444319026534999856875090875810178936948135344103007408896089523505071405950069610345422416781084340376018077058188552381154529846991114406384863422278465829693474726728526359746649360369856741318377593052209173326691398057362719648011898854348015423840818724911371879124877550716373454294667725402722041598330259271386499491326055141224591425508333015236019147957576115937821325240914028056345903590534930104102051129945395655477508790065780717896545864058163006778484967143087844102176864220119747828959106531268680520230769250234628931659407979227739601418088884661633805854287228655933868896287371637314479035898951475596316102029387594900774972811732573902054613336774998662697877094799525978085685032462963036199270551230741174673346328342472751556554759406669187770360668792316902806201558572581977020552430614682820766701511147916916877599239416623628751119966949690761494667365832166805328635027327824542134879611589710052624615726517768468899523821279734497466674231255687148845873390049837473724349210889340824689020132589523806273715142512338156164232808126180326203926669901991718687834668146296679940137276207283957255613445668208866885952861828578053253657558457222058897167185660569263386242448897141565394792158928849377921931054094972462780173031816815392740810793282834967192649668663671065660939681237375102165521592474175615484523456608357202592823223598747485963675864530748156303435907568983425474993676223293389666897108996996613999908030812131841249996352268488878299713275094624035548919962402314822182273681610021703111029612876026247619455516405820363967882533520842990246206046931351531405590325958160620081833280608589673462376255859417380720120558133218056843441861402261890047151059745844762585819232685241239400982379244449443685925984668893444490505731722979901054216430345515567250912741395103636798901406298879523042533429843002021011954215365196531009688004435817573918403957449268072601836535291660172177698436479573244403000274683786145235317410016092759027606155490261074996300565006587369951826837519568426140666756985921603869766348054501439884739418205374216582092298738827418058278297165546740519129339234622902604091525861910041139354212067996586047533884615217370044031911769292607199540590267872366908561783830529369485067114477690993878621774165474430543436259201771569352381278257126626118704644562748424553826910013741902595106494588289733027193605497742380500877330043905460658164484063663236124432221914049131460817747324963883616885459289914679354272889338111323677195048997680633556603621604931154345839118761081697863254538285471591326854216680082296608086750412208906889682567125246356577744744317745132089931144965425747643698853847830269970447560259550251143889231312198343504323494073943263618398225541087952932850956505385473935914001297791889383562363301160195099335469175506517203322716162691622013354133380400024323383170123351418835710330783025832863534462288516114081009829075124641408305905304670446218222174602074711094333911938025780276663204861863093055519345904491381421687655664105830056969425334137053103376040284899588743308982735069580134657227821508204164376937620480550607716384270982050892431285865306279005718980815962724982296062822243708690727225760827369968470033054053372452649275407429689339013898105985916165069983239716667161460547905622818734647320219070837472565617510262749700645466255809623207512240465526906324826704143900506992694525770148265505920994947696511932551369032016889123677484945643283657394674725777267116291106431569501797257751640878073512872772785334263057554253992209194348052366121567752581869861500558224859247366941829982330851000500107454074495109865179779037383454776757406214586084041597401175149581022679814166003833077453729222263002842608355740127465717204011890494642799003670292406938525607548283774519210049475890393950618455271028968737066794022627852410983849608901617256763349536221702273229662099309634023092202048024219759035616891891528755518920583726839179456124983975445809059349782975248162678304530496965813937493939429822658982556680556155678677071629892734262366564317680734134845136739303701112615149553797144619337569572007470044692660690486505261656444327226044861100146365579476144892465062886458287796286193973633433481550130628868785803075163957814338314278302479996866102989094733497109065092587540004414222545461849737459410525219860417060445308972697444415678669755556364788044504497503705484900526376526852005894382944754990925473856762023011134593796940448344466348363061578342713716376956735723208991645037116788252912704203785140682361646302131489446485187900075577412568740293879024355610910094843550150526808964343264957464838626130982553814744039904791734421691278259037794706984710229189257168276599797327857824963047618961103866141255039751282625878978318985898799245551559514234559185216836207619798006604756434649747119012579648394060869212780261059145024384197536199656574977214901111610973846592550838137798689400315145087248571570556328776344876992420397287914965625991645557088633689244678486021802132299528998785318149705776190130123604639254978950353833004856639295234522502520362257114883029935232022918596353509118964114470257174771625176674181124773427160186284614790176094466951288135391465398298866708753481078507481679943834321364807933278126331533567348476712720280261151792089901784337287041810551222943365667373595694039158254309244530066503583341514433948120647242838014127350787053973696402105779688954387006537271817264272337282346658031934497430188048910631077212117095622177074593384306821780953161202193778152275702871465033674163850417446899343095510024883363776494704765783063644028273472176910936935414954351481082415096640870161942132299257724636789863826315905044922209826529029455538335264724001860241805815163035154154822496367073855042454459138320514405493747597591158201458543441683369455099375513226000743891456254926930869624413102179874957084376702691067477230458658275777347739148277550124568530144871584553007801528168991784173659931336546049399598467927193369581645803603569785101480591931713548654897367003825786889851472706293600409197403419871729963597381646642051659503394054330501609706753285760490785781573589922535579355394210620901762036816551021827695047532889189577842216675211949529757688969802712915232520115955621710040812269562976653660037237283050866426452281111198251522290024142634090377117390085787892211590234853616368507485303088833417751226989491020036497054998819741135204220724794349892183922650106695841241340981853896936372547680479742483921409121065087737979194778281789535879715684042120298516497856600066026905655135574682920470343865560692136018939222201584028663312484835808858377155280488148024518690094811115434710401050175106441602882329358554285975190391702663872721328997895670884740028894981629072065184959028006589277920325247524394583769403164314897371859600060312692313214838378547929224195808880470753976520008047950316103351013429500160971373759662372302261259168208906174012152512675876502678874653936799771617687059104163897254833229309766024557603928327885202772353303245652873729150262327640925291775960728930997010116708057819145221912574953992414054356769140558800343276965393306935023228625183261734364183151592779791339473166814280695520532153248470833198918547596883289684025423255156969927369987511700767882255234468005437993000477447484291459988488463715596648502453204313452827481930134322179210982825496088942484312128555559858240794842491984454572311086905980247490120501970089403086115728204452682026339948841371975189603212876959299727970598368392893752887324471906236595271684654061351475689139922527596378987963002103629908455383341102619912089760443445862199261697231035708208403404021692352548030259894141836455297970382197684564753193671195731365157390461871116077355751679261878454142966399867403395339098499390755809234350676258283353985877710153235342540997475700689362151965642763143336595147742417597124497735395360624905789987532461482099298859519582757675962494981904948166313691687520859260299790643706604847404021599537276138662184825843304096107151231180632984640388541852827229251624106084506634956670911542540563647858492229431071903173068529920704163242497186654654766458938568575300777109347330679144630633980393279160528113891731926895181415282003448881760586043276516657094322153318492146816526394249807959210079329490833748954985688315612505571185327407648144097505764745185241006096545030486881653007091152985292043546141146618034965683344390629029665476094673199015164668569150022026379048930261716607459920558452418847093061857598060118215529782601712682256854149667249697642860826460835042075309058532499527756855679296941856221068899692322414715538806168598551981821759651545814508260840937062762370644559307888546907367980982633347213920819873774337798346556870332322266722823479510940971261682688485267164810832648407980404077517335931989091717903390731012728523689062005191360675554092056689913927808084520068242989236591912355319365765909610434573365873496099452514004153500863398794091241997131204245509719434815560838693161903016837891533219308120085873049962656700793006297366520817634870948676699061538807601120714396400495193747663852675132616475896461585517874786530818994999832357661197248486882615436123071055204061819759621083203071663394845701241929945438061371189850170870450558999923073423010963452575154437530557764417157376943818334867906724063091686270511673922227740139612314306775982956318028616387276675313507850009379006829001713395900703912493909438269407608643346642651838134062212241467074669807251902274160000151123618594192806099133166803173248391321728393324142219174086230047778056347731448413625421586189392778432073653804262662579123155635502918394526565719268650433418591854062308669766330077547046746397605107642295236505130046271094967071427661795031062761308624738060432225223326281346088823282761886863411337715198853272929949324684421493489953560712750212076570166900923700993301750261754308438956889184413697162442450273156982654286562075821131718221905599979592532350709977134394438615534963011985909071963416089404968187429237993942387316737924568339238454763774739593005182784468740603373246816083961075378229038950689235471858297408648303499410784333505360807969184042404975801815536254565455414098161326091561134078991797685270278742930488670238743092225359343501753541206569618005093106047793084276283676109955131377316794223435091601134499801967667565535875534307908137039688912163495527768787487036899547936125842842471310937648167216791941973291774046872122291479458516074574511658073156678919298111565975160490271285777536312580412665826711335709846485018306949179385104958785116512155130294667082234064256086499469139350867118234354426287907919115885617728701979294418130630226886470235535640912515476307307885523443860641223742172713616998175422797015986921576077130734861050985633747637026031019820710123108575707050253021601424293386606146087545259844418773187483741035359653936981217489368681561516566294754186126715485583353512802296092498514888725042854754547064954512028783230006649428060576715016009243115996491548828090051723668423022884749433467815091831778488638479279805311125022712682992387757830467961901528285754981522810198465524511314119772815105701786471646430461353843596388313882652537772372995723942045232678602057784581997092888257837097474424126194951431245954322629633193535910819676385568427385915532853394544180298809806665631220594717979861212521313747457516722540458342111589815485603822233488153885337297315579819504400915390608909895657202898988359666034045082764122654382382247803115050625762233257801670343863125156233856652357387345096034735888008942535873200543687013159338184998086260330625668930427713938422074216553070670848868068512839417873019587400069586142124696220858818514553593270047993024090270166838446393505430174180721606064894398343812027626708842126253288945069319305873023466874248922891032501842474379028037984878283379032063845604628872899395891714484676221666882184412932120243217746394678334007416669195215107773090792271754856289250988199102283504508073474319278346062928398381477555839450296062071133816684328028465931523224221187434827790256246684131826226306742793543418468664211555479371800533025149819070625363025844028686991706574089655815521577300862887311096556473470708339853796836318474833985390087358992617516789055559105179769063516071355447220628187574105011864407724576877048277519427326289802594739418683952428039702358341864861917269705100743542530676187242369775491478909511686238960114789749635971510224151367814441180212003325921171305850244530310602166040676295383495469842448485907391854152770338221558544452553347081160094023895403658596886086082293305313258984692822663536896368474290684240406823698703464742873532020398072750938487299035288349472371596829107846557538112160335918345182965256847812060209865718331329050609960036617586912427176719498242173469280385884006794062715372916113778596042660441765361635257058284366625316530705994338286556927176761422329257470858038224806220697884404822695203570871424202896061291499318020602663304051202055561925782975801830193410405072395691068044960172438000928358441999050939424945765752519828280638725339862136442204917850391627826565515234245965106736496202212209685595971814240861740246079066658944824459573268295947222414601634912974371797020700015122054642531948400056964237236851415647133023581969817240157168376625875664688748543099685675587042099998583111884335564756360034384601483438324088237944205090024760294259311763168228503524091737039762430683855737614736479634879096412357690306110628898107255291596230201348286152483880781059655172983532375528037037896945014907707131164545731447595214442035913729741530346581924697910758109332426637529108776894070833270099276341358745331296973702278097231204870526731566381287738995071902821423240813135144285917330268695658030032116178495800794076550935172676297900038400176533879210372839400833727659284105070487426191364694526453377626567884090848526841035273049458750967112822988905286066398446650740273733496974377044527816762781218320973474944339086512779916770335859125562569182735147890153645460977163180120672652538159782100542405647955671937334003295576942159060577478238239023547380512161160874071180542020713004828345435110253630485272100633571413848326451743418104575804630832228462177311908168803167183480364875091548913197172191842927853217392541036708845749470620445690411555659080599504485619497569675927461011103788539336565676558739808603079328953436057433040345705780020150458487537875478206837563372285351019008376967077111387476424344645724035633062626845606478090800226906578804825477035646013875444855959614311340144021986676965366796490782518606723742426112559177568013425333904400218891052431337504175515856993750712438371213715779033668392722188826629866511443236281758784992670970356954747710566578789088456563564723725364848446104303979736756255026990147617241723351941073378605375990467011265633478019089052136527046085496736938893970048560341381748041128677610140180272842720913196365300251554687607330348553234321647197665652936834821701673186367532489243304647769655955058724620833940498023297443132673499132836307240308619542278731265225817829653607030546724073802931319910944697143221510567718529332273167937942699634800015585901666652800340027914899670040359979051560701379404677127415089096030332201501333430927403587496487250472822484990070679743425986296331385454307022716205860308276390616676841462726491733606420410205541541277291485254473550823362207933874772176633366221895826532648988234195505009872936096940516597910273194602062607174393985803514113162756047556492679124618689121010889288210305009503577523426838881575904804432566603606711511545553300433251836962137916825244255864510201342029579394074666124251857073756249772725452808183494272969634977275444696572886559201808723284048237139097061343674798044021836984635891484334738164212155170645327331587904630801381910666234926160588976932553280525217378128418724233123100505510759235088516251548722018000033044673865948353749762504980395800322469163054145811468437670233792771012276607959322589340195959256314233500588952161864373089914796674032195130117694127423789183219619103313471539293224277589360588848177813661539031215332454341555285346261422056483591759112789332040503988367758083222592051751418441839787129409197167517475892822431683400725621960211526366532833894979699251367210003238265249515208835899207050696924609626332425655437238294838151797569851527227956702683757027509779587381690722202219554897280326217789360295531090204991042617981869017840432727681644725175596437747983322673787551757064715897292993949317267315244687343525281911605060943485862053220647329253994571381432470198009661010078841345180119296164567317420245881070009793967119302269861891958470879141791099610529624078264933223353653453539305511642902847617513660425171121143548741720318359500442190442151815346384670873691941957249157781181863866355764932573160582261787285822325570936931716039996248224468955051726932439802562060674945260896435887199462006161808877859997296541220134925631464591570721506257410838633143745547086973583125851354662809961572229704932478184038880088446686196171231774839532539269039888378401160248600050204405029886868609208644148349992247750839567901761827944864304828218218306697393308352394961795157331283573686054749140879408888850641170260773913028733026738635314389845816418046996833452426081660958862997740027654489136979486926835616216566039329423266096892681771762218468541899022262905740156144525473074926517187886737254049766048193856097962327575240862276204700182491470267592941972105110577789157473266694396254880020495455206354206700565037633815655868848675000568033292583304543954038437768033101592902386565553216591185810592148669845150065746482684186629159550140545014409427980488660501800991535562694694464630583248266757220222997200147708389455270136879845701216714792013322716066658029393265492446978298047491555855531348236522523047614994148472845666184719222473760703785131522209208160717844814455939847040807465939421408467056613750474291667899596628973966718980871220408461208360623008692515582687146938898652295872087465979469350933384432560446466814111526320146868645661710072770138292039298601664545395977490580527386985838283768556092564691780445337209092322209754777256498521446605359315422282617818253520119506074923911010634740235373357479357717887291442664495943600402972315809508753397226926464883593254123336613560397214519714627483694174319303493727617484512168786257454245412650888231118099641567010668686992748717221787202454658775025378165356662085249546780377268547518494749731633578758003564423712402590814586486010904281377008386644731038218733652752668147181530791224862309364700055995339178831953759531627052670567841514975836730289512771181603119155519448352196543091565034188195668489130202068754779601467217316496409397774424296785985450822950350941593257629814798146269783169488886040014350024532122584621405974181468701726420562906819879942604384826430749702739619706950588444262102318071376838339292604023270745962446735218365382732085624821890891063679665060898430995471416221554358458690826094833638318844920846504718062370324623851452068358851015799131621138469551431722974173465211158004388059340962174519427968470064102178036978941180276860949721057684703558301562895660040320048265132887490506391582137686145531604048824384303681284763621227593841777761804097527807651031120635567024697809396098871898488503202559862255825090485150183165690847278443642235548667740393912688483756097735346691976309167441903808360853007058499542616108425988809240247619126549471155757516949303967574648852494892661994902560691643125461430377451576243217673415055691335015306202216764161741439172393333314372713987471954512339700211457279275611177369688509546276180151260353024737359817986588502733407064257583289695488824840848583547988498562845661361573168307279826571697287796906303831057905711031976711313590196351222630918280958315739983192533723699292604504301612844903038555233722242767539781292677930581416679153688626165094857643389579518050981927365428923548832378533118835653323091553562082910720280004638323234560732394319975373131487016288907759161907345761097277386021984713593117496162232544913701300168285188201350796069845243836481507039313264546647938652955951894366051390095410403228700499377585464247447893413568241124756380082644865987838242771257422425089886500080178983847152228663566258270654555589218592043086118716537212231490588869814124134620862360229069725379104339677587494862313263339591176189598375130111723786039653856612599132180442002481421553493261720168424279659909856675213973441118662736189371766892137676419668557514515799450512392252133170694555506028440936535836896215713416297730907309618619885345861792940169809738376604662474221736414426192812986496882556879317260653821570126143571253233381390404569363933031775839674946875297167845023937337735791461103688210099415491902273917962731423315448394611570207939396743907811406336797304521254120228892163626812001459420469739249990113017013678458466305108906843619438463001766456450107011831672012947329017885692449041669035670298871719655016176499407895770121782590396929664324583483796556556115493260982451169667401927269000829330173738485639902751176763858995551208847556880175243246901653178522054297623342493706564705250585927818587364443809227484062083088944100882300244854287251590997992402360694300311200760712702234936556315903244887122954663132550958868698816281537037785202777318209904608175347570603973159035785181089767116575832110063158516301155343735937755979198313603286838833090434956244448760436658831695644008940701227917717915266457486784334130855647858813223068894267123971174097341905979133913146781962835016200040878775921969123138685765629569508350942169518587531248529411172454467350692555716403859794081208833495282381504661871424417209586099011255920408794360725795430704387605209687105531780669523695809597795099685938095038692290025880993836883153311065572582165644993242362067866494822934960913728660984522619348265163768296476841834972647507286249515356382603447350199907932145519683770815488099339189422587653009872914211138999846621890668523170587747933994759869851331423372463873698788328222212504518703106279085410830257388761825398693374208482545614430389843443415036640179709065530590824577582886680777845997813270039770947541855663232442957503902730980691154324931774594095417092458331289324168768176526770435013945744350975608261626923442919197448965342187213484334692488353267263093432963300449775824604867958340223920908975557130421619737554070316322928312793800702248044169120698433271933526193588898433699651758494550369711713538100575946826700292274183226148120742113160525336311502851535161569672414886461699705117097783464415086874838346249115911861326199387686891087844132031728607926635221363176417673490852556800699165107238220704421430057940505641655799458132056833824299932749473990644855186808212676103551123760521126175849144872561609457453128356334953686640754952786850921113109188914020320668332174964233610602730098772830255660480410681916330876970230598703400495212946821939456840897188456472354104536714349316698634886874703508964858263272673225886143646826255045910649392411390692710770919481664077121050664120882873679173690068830759414285344993358185485187250695310735589469203981853505303816624870641015350815562850537280096929654604407821927386008092743992747992445777023546004033455342659203859585049164311074701304434442607207037648048263468540461486722891953547882574930334102353212760592753877057775939869682149312717754230857250205330603837459982340166068286257081956100404028184379511192305309340738960472787151994690379031407291547320453082943615312548332916468678205265706903368978205447094153871279001554385106774279130064020135946220487509725616112777699168775321975628798969186768234360936429800095422912337236545556835725980729228072366760314588805359291496762061112397981503877931423626684275080357335838977328398003322103436969905198428296608794738359481755966508354427106506498400947851762096868315601107909728386283197400517935348017692960927763937993392494906662652159219222898420631692646003200317703621430574746362365229033221383920685905558644602441880000488284628130155842213685906062696733760463105466026655990599712716682254675129355048141129977634549824599722171522364799747631132843824735337254200180711004689863578497081442721053136385330002623230895211745117134854251685776674704745338409862083864346526418636001226995704156923840877880825906367630244851046343298117577128358928674513549011376132662820687393800426510258411504115855371872290134300260258134370075374646184031729959437219788207243583607572074594871177072121190347151191582163410230219050426176725225902029595489604321357452840486683697729451042701509724620648557905606693385764744396097200720936041255797488838118757977751703398761000596305449873844455112278014630172555587022541962071335549245669844156624482782251566232419381393534471954410170502435008710531490687618066298922240655359750282086103398799887472206679747608491196350478460602119096212380904081996999722488727471821173442211220930835606755122890680376417127051467189678224858154007538937467257397291099051215476393173579523501835985070846775136076594528699127155763768790663201981568255166910047180942263898479080161620260397069736824606636317058093888944322579047151770268658771961679966362444228261701734257671201741406996148201884933582512366476443229609983187014867196350641363490381265647482834515063633128944781294115976922265269552840816833491796128126836308166293903614821710823950877483884729354271836120161502846977285019124139612566797454961803616865095838252158855655139477829583722630202583635016754278009473673521222952113945021702089340586427050334868025444689896812528291617993153304746434972823976110151514814738006631221302939368583332259161495909381719905913884033264757924172251969281395530745589403896600693812622263996652332590489740789010919077322540347610761524249424181110095803675858872903442555572500401046310230321404381297675947339603078983094868536932969828536545698102085085979816386772900174241562894757120846221539149055725893397562722748101222368818775384220369680857400964424410684466481627628863333505733936373389027534033325258886888931093827291941062288810470439753827477174432897409285240521257221144813331617664264065584002339544782732144992780423192631467686121111863468273209508139070916070820851450150502747409223140563076847789830709129193097538532363730835222111249201382209005433268282237845909301636590061258361644866921231305387770410758044805737794067631012170604703642242342676028501691755250982403627526227761622112487104077110644615220476533632495939648772286409794330952046039394071967834780579845904871396782081694472752433668713666840050362332723356037948801198572102991407022817251415049633631624734690360338418473579003965965719313021797829207907145977398929931815754769942531342366362802164028835248291358852232336941442237257885027915917448861644442004370712688276511341878918069243886851622048180150639643386161401120760117823309258245342107845147519552738788084090928372358285174921391946846893681011714412209444058741955288223354611773568060963857853954160048588695806839868133480135545000239409230332834357155061620550010164708902104211423823364932084826579002667679981314440298755577224610196003396568655124452576908819389438350828714984862189783072606949258579310970145215157493322484449214369349489325466334589683609162278227107847009545028015975293194785673860354909844732363649958813230831967519145290258410708027743774682697178573026691065924169271060778828275064937160162362362531331837975239881184946559605890810598318824089360739898859983589153683839559524174499717910327566121414267935528052974431827430579424797735600419247459275476617981445108117599938114608874162854016816138036932876927549553705250944460618592846764460414331688800337005913183014212540702299240318562366771706261611119854566578605398300903911438697693962389943520744990156330627997034080696650992516298056620109636213744973768629109780629537784968084666590172961051948485975525713315556454029292818078805182916098312855977472708673620504368594742124390929828801152084388002464881596812799606156190356099450006594319614662700435827436187274484223743598548287109502806226912729212032014458635334944123888409084921750831957883220488638906586813823649510883551459731596453453449411736223368892252263337078200547766050780191246715656822027150038998953687233800817621046001766808157416898201324792356021225426236481976060892324728206967380414032345681832558765212233937684096655257235793943762724491983670835131585758341475716786656779789652662582805854348613010852574318142209998402877845972507744747406321061823318382178905341202929173476408996411044713853991106379039201999433671239004024693334983903194374650028220736255070882286122230654163088798863532222918668535609646474972350352284310022902932269582220988288494674387088130157075702089465766080171993035576484130293725455254123617837058415348087258312686113899226711982677811376882460313808019565107247987067058301899952986742335233861969290631371204663256964397215605761083048099425644436738032397330121136008347966247652173389207203112316330929753948094525658719862189239805161129782403805683745002156956059169098505905451513303078937179684826142522018818740979613785013895995751509928283650284728132323670960627186094736844391102704594666689503667798428915145306933712461669681556927843709106034142742230473313262794300177969720120545386377336238909710291216969256347145800900973486962467360049616853706740822443125880036149576647354004675278996637253974375357850874888987234567529474893457001914415113660344924146284611277287485731092077182872035309664771520730621528442818798733464247058202985974407426214264448419392448984176274889035276498454752032590874511349944213240874234889012748534058412255284936365979490191835818423817421070849106769739750308722707715385139364354709439210792389712282505526336345837268113588814826873197111905015724668334021135310037261924221613506826686248440911975226242888271589459237133736112849464689416841276004974000529967226127082881650431929600777102809591084110669849893470996236566717894967434346817064303530449222010191325089793526989956160445822623120194933917021135170326487131040677101992625986433767991323234117368975970228621816586461202528982675234683395673761990141372932408967554638744623796820527480668718571194893293816273475362803041246443342724841273410129158420021075359126961467739236927091154758791972719158066290509953698527169431922636244359498387134265264654532215948527411486477591769969791784998086381692465078307275121224950276418212200345939903089062082346285198938809580176694702944441215466918651083029859457016584962989464709380201533209564183673897712547965011721094926824031766563969728069709415439278044673207757267684882262920794123499020346585702182455887019442364323544185811864481139125775677717106085529538751093817317371211760983176282306076379574478081081448387106259351954087600343761002042272606472797847639500232821527812606480235195982665269645833383938286494055266722372491129246167211411115986157849080283033284219020884010874971426054339953396557421996910826619788188810735103525351658108713579404086675337007531269708751923471725552918834889895379554957101271762601932961224086075333852011782548969438203335039716027378284679998007888834306636211552003701219367550194532724839410191483021695787482755355021786439283346104842789901493740280767790164696953108415279416539488045876291819021392267653994506227546915098906173529760472718884220381435102307483850016027536333540719735636745774712608305881110570143906307262710311992840142520711793405837018046957886362803427149147120959892854594666385261006333001490807714531031119377716600739241738774300454511378149920664655396479979075525681073933356153909061718510391143903004544968333496205532344328693991966012338558378806678190159258276196640017300655020342140506539217848083215973608791711866811638073750746451959984201155199196201274173010680131336567463314130168306514194078186543224940458673379141484521628699032846434901488413684089476225160834538880834936920363063162962004837206878490485217544191285045307910974107033620420323546174352463240823422762679051269512265594078875379403718438415791896149808238289463355444462817023119245253989596920440641029054012727179383914828293017196787552780970106585409274759247300093612401868775642483430213379233701390056326758362826744753323189491958105967737343919675342015883146405581289524487745376262778083691728623970554390183555668285774822108166142852326030381679251667870018592971535982468276442544538362168370246119919053768115833669888112070687831911676700112670208772921165035397797189220816310287195546605122952257372717746139133273853643424804546858841916693016745145485545125489573726728865745745246094833102716472361257696838697649624781895284672115144544476731428975867985368610381862567807619180770738928880196984527129148877605748232032546733608870266899416132750722906868544376556715084616038594647262067616363827422771710593241893814103565013712222152625437527309755184433883460127850103248155621347456628316750926835634487685424651357781869539743633344198585126599177285092559222856622859725406225776668760113887306211919761450487286153173766471098545184740943624312179917806280967516056928821641230801872294354958346700234066033074623831922470049145042957299084630220818064512734712907973601886355368626472469141315457225525112563503924666977765085621720677144775898573711714585647439687560804130738149995021823812311790415622866002804955568142231961883950467783234983488958685686983167135548106537788292754928173872734637536819905936718280117633076030056957156696864808176974277785585777966305114301661455075158921217476746027678242875906361787062689895599767794015115014076416099971375680638683218496717096745322871556504856440639916092662814061827018550674191382339158649325893150553198852076718822481324468738319525914835776504937682152690822740638534377819694888892156999882336622124603151266185637334723394754486148790916023617299644908908242657414335912596642837428759228139046864689780763810501072798806643599851402672202741606038543992338119665610910434885765171704205971439403660221120934588725241530152506203153503386720444565013193238673553409836047719807149891970567676431751565655132327750173952593753506475352837873646020077232045489018104934425037479710494915911088511359474233769506924780454537928039589677792412937045755159697435435119592516023644470467606359778666543258182627633977340026381112138633516127581482293555891797504034270968933092962207422822457500399210683296486111113132550307962077218102536238025578637287710667833670489956344694820441842733114010213650980924584760461755308711149656598077098746001187738012998077412178594258568781380688445856893711004560283658870735897506300563215542873395134133271280240639028917217979176495235241268174951772318063672382292822589866322407743253325656257124110084797578030583503624272354072467032726804648008440061055831447358938330690817438384735288538105080187158352066355938229364685552144896879408937364456168412899504758402830132910104545076696674833470111291309564204819687105038071569075526530715927906980467392879650579074849269086783878591754857443573348956203520744616931499299264916039555615477800073449626516781217611244170756066009619617959668235669265642134841502178397669551323414152292214306796351977716876211222566697941550721343572420760775384682807876422933181933987337988900399925247013890098318212553903147056337085141539529856565959733616512003504435727067884078818268248429358354985539100041376579094154907020002157848736269485766078603992253905168748296882697540360841163961648748687165984136006596699508739168286442831332035670394132955490289325494930541241713670874816138478643102478714042351590130456436738300574276203170063268222173841993906982358623406808645687076926114728354743263823453492385044392731854955451510659113694577731187472714460313865292481156836806404714116911786395444651870375539550881529907682988702108347644579565540652294891275152695629862125716127530159386656525151700363091191298260236318943791198519890689486042050481767751967499436465962772378457124077850946263634030084175314297748411192435430311262845368957318130194100605831023040555670483977704402087414668029364857899988091068855565497445844539106042504702814397126604334889865563504047802192524616333314920132841222962047332932197965690772915291023611153037523279046699780126288886608203404760803260729495252801904750124212219397174701024753416050550913524702605883968454101621920771353891331028618469551652496480910780838754953424265883991490985184565263192540901832837330612088796741951427829345486883109944350053321085569227383888646785521369629070324070473352402327811262704618518095572292073372273271043271013744748779389948993276150428335779400857470409511136817212282750338410853482255371411186549103617881702179413257866005871087981324992355213306567091978577004967885162404686303475476622310444561048675811000592544286935884700952857562567816897643198364281903085149299803234408335294935555728959839643950764015703838842164198488137134579447144774875721308930324258511626569111229939340422735213107427736770037203673174486129976504992223793930554562693947154297939349011834072964589732775002365588121890902014049649817778880167245348046861206494771934491793307103838428663215215593869411317386129049563589144532924977457573865160892821693146977996586904892919727902608728038699954745424904946415228797693090247507982736989804770713124347075005561564524733364746277813285951875458854596365321004662712646495190259753925704357710472126776713331870021189003256649134847003635090420533828481676660494261955254735571879863987071506690773915457789937224612031647284838569284911695081114536821366200563120896093637277813408521997180802543769704411852941961777240061120625774797199095817907297179743621714129453784833722626086918970349670206907116327057671967754047965846878763816762218107800046903292411071262075610684325884781212523470680151556517678892972039129964825326041857924049626463162815236808701248454991298602392787105142207989253722116370339776041211847567819669186992958842952741578723285640868590654816269065952510715803325620172180082934230969396897267561836810495042436706002542948655410393091560614082175231601688280341238821088191774289128624534569602069670295361691342947781590278148728355581690093394926931705699279674823851281158385108435827346042120272531673851647981930050062960762108618380104355663670755690423153522534980283691567239089368870104079712158243369702928028451795940290408747844143581529958047835754407009252570877208736506462138326390451886958022747153995436897850781191850245692583114394144731916278856086115658608807696305208383307949686992141511575394181777074246072876000261243338176183654048120456834777622672589532797939042366687093521659026787489415088022024307645053103162842369795966670583400250712588097323125581421421600855746722338203996350077793884846952634283733395078692022634061844279201091503950917085487249802604767926748830025617665870545788207646833691993808434804440176760442376577816348061422525361139838865298849479000185088720583305600294396295606040389380585273028965357849426985757771499957718508631601413734727148719717526501300447794445474448169706550425992034860329455870796312057749480373970173882749333376690739747393881414873989400755555682491307150951773137020340389039720569333978837224481654495738143077483803761568025415902107001389140404034789150936295146324623650731421247869758458086784467155047980972046638273329152008391255285390935668873996689903129929866607650808726708823144220674783622241451509574356390041611994044050570513118758965874233520785560543407451698314474104503217257810776468958721490446789347060767539409745202479292036910318640450397154728892715002180006061377701655191946740873593789704835672857080368908615003351535549838896563191247583676733377398616513903159605705481857300507881011409210030521656451124928347519829611028477396101734968470697854356374954882177227363907793719382033124276825733599853437425013234719757065831221482726035693329920282789094530351642958823849423625723837443558305728874299742677212479189574998644858399727564789965788222506477884633786224964653658334377087614221798380224026652994475026062060588376339404492742123964433908765857275385007763799410098895625721710637604760197974860259650168633287440759865750322010231882693541186193505830689573088286833037110328075311159296407991993185267882846772132075144279940659374987559679281674863303636218380954734858014106017526864872267238215082695161818672396415945800801435529559452417970461288947627572158711115596488575005053895431168127420060971259326765435290844937725896150177065029502661666717439772710789621452322761660510616958276612355194389018714361208103619057172407896314615831254314175388121198680358644694744583956872298957327659461256618614500953782684499981450837974234460421766139848543402989477335841667694975084185925297729946250528151695265702368401981249019273156616217760128960192747817705771922476393488879221829366925261759450190061404408624263710675391161538245335876802319494895252036729871650013713137987827440292583171371349009360969133834034017346131011600191753427651473436071950265394232964004537320998394557646781313054807221866248803925656246464537579077242353122330962756208045430284930800200984128402180852528461959950069726551491939453692969782901380534153244620486239940355184811490580092167838555076939986118797697259708362526931659975243895805413617110799014615664645937791036675553388146962873047816723028831721583508520020721759313490330821394448697275621108946541362922964020503873959501125383347746089835350357664572483075830135564153145873603796159235843044925633382123898638481205356814324969049072417372499491616802342693169736507035160297374921084460646614923951761038043396393754386799139846058846000509692691997420331669271491306279260484610295244789797260321714808096230015826265225714974145195679709042758978476092352407247108457375522491769941295400219420680153596001374797133795537542163816251222045045123129944659301824108841794004599112118390186331197220051132936712179423484534254994054896762173466536935865708276258206541406568981692213092183415362388112864581950382101053785106555917895256010833420907150960870141740915612708146406693474474203519935278837155116719506685229383615584512509484406977795524537094959366921900994529333209244447850689310092255509982679830602100236410486678562781638197656090542382898430526103432660757215421958864269855534564799025769790140625066473941175112962991042277095371392080670304980878224984689890633430933671053884186585715540373897208822442042474079052217440627903042674052907589212344292225716237133876003787178981067637360770501792331994708191441944005165107450461835748198144395532781717934775403431934727989274322363138379144722779633436000133434605270234974904806831478635184937204029105597445372407755138697896450961774449271828886533477013004818397787392918491761475933501166182987902007107971696026698922042609909682206681838782886962215124681923235070624142421725172959350843356763156825948576616276997773343622597815398305380289883561973618833825676044220868381665999341402672289418086375496875758680810454909942317437716629319836533800562004661644426492075933662163133516307061414902229914544376704658511158550716669902675743587351768811635748204999221240644454334928579202815456717484060691023653823091410090192101838536673160305624763295368638637388184723281570993562422793528745989481980264823250475285848005938644171459083766980348353471468774068877123594390177698638424169185677863595627655990897422591677163794918634625523716847870599345220000698409419441536983189924941592049401206206358392553986675965426152394228235928389713105400304106556566813438516303615047178708364246786462868335859224877487686289039676152709128464382486610774902269501136123021308368280797241094040784703270522453444402972757257904335506729329893081687303334078150486711803694456492761878184913516412171503570843536350613753061450752868860983606675108821508468459576556261080299602369553470621215710212563749667336035723909258489361672905605601690452789441695731326369457196610574113525726364439334031594305771950079391910341076955740591932393119790163677308111559830769959328790992142429191866253279136665140131138351822619217721162098634671018169587936353964122714410947983212934954108990603675668016135152652281137553416288259390466789389674340792713902297186507612542129126246832608229520236075395932925162653672884013178757725378013209658758571066376334284727960850206941878495368102839955212784037435320514458634806722043151806159841369695352096633075693164552088523471280672521398783011568081345026359066435166280022382778945307647259957157619110924986646447153375097025632188371027488552348652532547144096786196341552234162472376856177174105974844596950575281380043106976508776281445707964435972114156451919724592641089469830806796394058225142113125459805569065862922378701463384620492663577561768328882958406631546767794645137831550879028303194406009124291723253671438243408519424017663416490604133451041803771133273308211394573542941186944936771558330963675932867011731420332042114623073574345790765601940724335101067024532294220402578263414508512440881444167345652000433592340058646009789655522586731115239787550745419153125385200490996363119692269358153960879923061487998465147615202150622130502009663327141652680999854909590848621448418491917971374020112879223345856548195855972477370950459254783020520457203977829054482515476104369356282863775847619564229725266185340051061168938479309390897705858251616065077302720128948018523925849806096873005921651230470770079726789676601432391241394990927167409983507960261549990260942093006784702808044325934546884603055827706623828091762783811593844570504758788134938750694090489911186531679033050363785434744554655732785076893353761481140368533403195489096794136968902229416596066736415674474500540111071013609258055839393908175619941492057524839952273892306221701807227913882569954780970673197805864488560466822730768953240317994292809610186966594610332385392411587224225447890609293887182693593705860101133854331257797497529327991294674395959479352133226525252008252689206143880335149572403876668621735611867975933487818687610165438878351949994518984565580357641195902834613899105419336296340714614137521852164106269754608604745069811308762113017682315686258789954474089134824191081217624117375240688373656395742194214149842897707288373666937629864097161062939431222644163748372233774204415911469956399810036895234906226032895584564277122057216202133840299484072939691417082718886742906229132815510303813555324198113320712012281962763946790944871710907601212906636269892142692400107787090345760273602525705982486588129776801727396809317895832028177969076193389051401309448254372675595634317275783918610197046959607867461882100093225627975870737679530693851557375066098054984014274963737064441384745867259657719137839459184536264265659769012001261490715065732497560358635662911358374787715172824319693959697063099400063185903573565245237408155995904849783835387299330526428816611862255642713103236082375384626106825617979093979496933667801732232982471387608342287381613638426142911423305075645616749385130344985844597568865126365924050802097463954214346815876335747321073832073447595149209271493082954182895761636697111739302664542930579661595631975917371588026972209961611762132535574960431652211011686682217733497787253315127708165932626302017923556244988842768210505962326109608792114413766270156595642644271812925192426325186447090914886888478086194369826306743519604644093135770862974038359831647818827280870469891079925126721957370927621741398810776139576412259274839347311208263715730320455226545477740943489639121384318677913177482484452807696982816918806059599839626305960906499692842328262072424112594381691628413619422590717114912558154992665181484782681954488677055265476357865129728459444619825130920191742060809646728072471759663270515454923471280286961792570672019069857277146806399421016401818237277849653709796225468018826934919295337158741071780786424442214960855795959235150228629133563895186089008762660005138464470402998634301293240844725998047794447296747441279157459004197089168151810083965972075220148037091089469503802208505306490028400947298098322655483907279540243299349315886058251991887865180006261459658607101901269588279350951648908646768962997812078029293598264159156435810573179999061034407918562070320256878861136676441200086444227653536426122059663962856730943416754141389361638042015750073762276325877429956170466816993380774173694148582163092259137361704416734607437844994913613878350361893735405951586885479651942049255604816865090284395232586098163305029077392787501172817379938714471472006977112722016245491913403692635879174258470559604236832675835146295703838940945675728272231931551429179064096351528197135139136238707361857802526450850523332441751980507115975784617292964961523180960250518268231925025312807296226505927968293838439699172132269858333802702340740574441133727734319180173162382944062164921243798916534862659426824110439007885003287433952444140218565285330096567192380535028836806534724325928689747349793951352755565230856778316860573850581419340559705636164353305142950089953780675732257764526906108159873998308493517970849718045612325085688178348432537587967989495755484906953192901548626741526485141560670101305337362374930665405126369085317513301331720332465209715978215574013623110891628916935004662502540240380437211524302967650026823096022756601567886484774484428337695035813520744291999008428916118804260159644354221705082777591451517006860438376701390634021516947001981455035742215745813899374675801772971232032301502870908793567756211761905899647632088729231411899856349503678036368432955927797796900564311688147638958237906889418332751102746118195932585933667955519915667985357597891061988544539990958553328260563273401100573225405996728040541996646654265298694134374243745863470355195724371451848388406152306591486229748944011073320074723638614053466984440443891465489440884029519566824815533745558583599190633802207410970187143756810809305333926457550741521156750947595823790282175685016189930340763449682372806472891335272349928032501902905937366353195943316691629083909587278230166032218752503895975144042453561031853594643204101938933531694933129169060966826893806530729733147992918958348306563937993000177393844224083916601135166827649524243463997482200211889872945243715210514754701331880514812326997612830791287754216718402084840558693534794033452901884316798928405875694803225448098918396429863995172469116940937737259915457610462083745530948118741402284566127615429390538762527967104561346874611307412701719004982023639849466027410897508874437680487018362992194732235384135355258634905078795342720855325152630671643860182122400547537435456971285539679710317069607146102543966312842296972494334018602014855018159033962722825495284801513606063850144914042552197852742791167824592236689044212071372324581504244637439745722169352979722712510637922643643105394695265909520096538806223798293965416734767867960497548681271235413841704967016468516422295717520428650388438749682331769691326555750075884120617981770816998601792150197044178247010363769951896533391703460061012602261934007667190626438476476556088343253145196170529352499920577076762492180026179112634701528677364700807025383296264265732760423340456810347302332713924781623150712453431899802257278261827279798724699886374204097434721642489326884469738334829188496171401811424212669981849804467410268448118758930522504966484807009085050761676715809420869042282452645084371922668894857048970600935064551213904388705306257902787048937554401373338681859237541457478515488978051698890210154582908736422800364648233249930640743897597992062221698714882886221490220312260541897087146630674477847219192116560403578669871651980470263826845250585953429018432075234573054143201849408870304492940340473925124012123856108469261488780075395591675006007458050466957483811322914657158027921207358044854363618417382690098153567673228214155367087104260128127611066677693559398961364330671830590792739426092994019837582303910812873183874946241404426329922567528171892443592056672831472252254511385036226645836381235674115397792441578685965708557726277215355435221829269591345514479070647057854508467884794884873781349138925063161005607890274754299219326313054664273144870634941668349389461231678921352139250709067994071113311964389055794536815688232528946556777924154808392970947494672598659996561398342082279843710523111115288344779254165404349811153683694876857970107340804231059163133301689606937138840959300445097023513637521555017968847510331425234473545656780990353926488463180379720128322684261608718625203850755009601154365699058094824429267117320439090971548425193169247254613263098032065098718150621518523485927032444065289316248873281119244007393498893832550555108664853045042795067230191779459847557049634286702599136115667779900633890814004031374319868348619281769486007184343841564780463912068110269401133282623496174563337238550487288653436094034251219795851185986227135767206012269243259038668938060223470663348840243513784722652239585594542231785972376539785671275065590384458698076485690650809785487061733742599849613051942610312955031545501751144444234896773916184198404613629623679221173269954250478829081166403779602987174307960080080928570368700087168662692658790140356040552260468231855305208366905702434668792757480627862367707348296975178145361876366647634615848412089101537643824038607532230436977093472665693589458797901356674237336012118847734606272474158302557857982414046310987050614067365210471123895894451258960331026907263262735880755408133758222200032416121554545614417833603592627076351777198601214261212582090484248137450687947915836359107064976012736706143140687898447795610329322207027168780339328204646177971718943015423052835443787754765433716169603615645754825684310888385091604239583036469627255422150674439308577574936577041247546643138342519973305271894360552433775637300888299491906927541481938605096364885614272230554835825842642618275604234153058071779188920024452886224162237477360004378140638494283701788601741626104221616275275980555625432562621200509265286772431995849796629709585304785666654796956128099601450007593617872490240301484429452676237769679334942874807754189845416107799335470679770575795355191528017283781487498113171291971030594323037467499536933540946069886888525758642159155312609900659551014783355829386582007792456488544516883602507927836516238536497273019430894891061195299219503530380541880840777649348096646541343777528760706851498593919526445348209223928937036881295916938511844367931241849505134463891937291743004480213863672683187388466941869774915469340943556354898403699530052100780042950335858801830859711938520651303700611139062654907959117311303415476938213605901428922766530337557462601182162920997592257521147559343858020018601480237646460208949453612166971541658521632876114312674301236577950340415344849654143643503622949470666372863438830716203598157020630398670131889083545832671675343764197852808217452183144845748262752227193180768589703905114437419285283754689700323207838422816985028326160717929070681572124577538103700480329924392876499770193879391612313189592716531225679421492102405987715489002320491707522793264383833568794910356872291158727079765896134453439798685398709387047767907025314373541795711775748405452218757005163989159365290594614543585705471358560449165363248762251895329711011526106367137422228369831334835143262691982036289117265603324433565852006209017580690224563900895876683505599125561269227196008595514452897116748117223614326122951461556826894508135986847785168252140783393296839473528523995676923540730091017461755096121776017118259202290912122608245590660752088107371293961516259424444750415371892321895853019372557771863691266907781369661305795389889729722310511678296751456455976909967024771578912864000291832458935524735888152618230884080989603943041885324586818684212536021930799694659301745101079642956653196634390428032348936476322260854632986310496381756983641806461998016916505102320349277153089723885462013635224281591901252891502892919544802422412991056691535012827534181055536627599919119873679387075084042916513525614518631058337714132362785517726366496037003751931705176800538746170340586176485293193778763420957437525623561487568315248520139465749321297536499623905531520275668738936268685344733885397796917467764468350676446756497033538181742411510123265242091436301562659896534769159383728334354591539006166547944589165190464295254637498277141194222410870623670996606215950706320463959979565858687166963779482299270085550616645383488180675731733001157475472593173959412303244825239340528110935143800094455843920632537137663192495392291988906926836213654571574854846923123168320211788970766033901164971870224264001818911817453048489264756755107181679632606787434384015471017642826425063877437156797960765935284001840046827887638218932139687926612996275222230137607062036966004031510843931245886008127350034505049809711126213297957451407762760588141433517850524729227729477775365461331710278454901813006092961111602006376665770011108400877647548410077515130386280593339296956409426553319346085353836079984803523978132385938095218499543938465917657543810728046314657172856066766598168697011297358637122439656046395615457937937532094397506105391810527351256360941593341356612631227797143568179758253127727300826088041462098867111929384316504364988602699862880459845271751999041870171870709718741527407760145896402458989492041648078119716868438053335386122522175640008817143885392116229431629480867948610460224760646526699593118866294941289024777436032090357792155161660616758065066029583901390446284017902645948717439454938318237476760743404147649752292912083883000284476006479350186532367438577481945819805359072175483802877487993918091489152481838418423009738086987065156762211234313791099858231421646622398868613064189292577529201524394859593693198363472664129597290305043452204170074163590707111784439724128244800546314224546818664428140297782662685892368414334711590919300660552888953082129970946094232566598165958974714522159833921951208013910269623110877020583031996923125537305590958707370945060961412701866359508300157270784300055792577360585810414799738270318602748239979057969945275074681669968738766793983134568111753121405756351142443913034489929144642759192895017030169521557730583137653435426023319209753191222479084116216284426109642988944807859116378975967612007719712088865978305922265536901049873816930897363736655230725060422940531455002527007490344407777464033009405068929569289168556154683262842243166334477786133038883675920405941401351714480688436329975409363660107205452375431910156644482556356010061199329347334939620353489112851294083736167547290411531549967107013377391834403627081716675424553447437521153474332971661882414766379647865725551506271763269535935552524178034263044748175924111375925206825510530900415760606753217907101845827035265168957877441944730907929645381733250163573513233153785892874858426834216732271770107150768686687381441218218951506285335026608855680934278920096780344900730641005054680650566316945657540881539793685466586796842285938719999500555953543697105897335906884675271794805045966962301360331224017906121707889491770863254976862032525329540040252732994940715984803020568688457632969409757894473867723992407405290279345854368717959673430154153047129474976538400311628036403465697352594210439987789865521686398974835052150938880838830509219608659712503016620112356309847775105797152369716584716726162225542755578244415131629212192687181598894578321721308469498942558092238688604248173102831920493039091776918517347654103541570788158515111398273225805728566880094107554281976852005234104437670622248510547345880324602310685983614901887704633108276512986752693836843825276945825300402267131994620970790524899473173040351846317013327824480278428988175788088206169990002752898704214505326521442362157529692803679537723056685688413380586220669262717211393456863771484449581636255318088911457787531264437720467845508804220509524221318626567152853864507684875166485895384919612044370885893672390922725729285592423815801127587086810605436382519104178484103308875478931729991985825196046841395004793714975844176175010896540070525677527206452476336838575051622929441111291502722889057685054310497010479707767647646633292666896989248289901576919079564669330625559703791209209614676094683632940460254728432260607277135961613121213705951484661566064362326329087923018364422933445588132941450723538310315620332258113429251412556590481699002262151462974179807347311243276422930772716986784208325237047270763395764208972159699782273057709939408942882643649211994213465494707014826852368186606569985706288156259281245262265004905139220068823530626664139325921730269982434213515143508524990409996612642127924641657730272742826065658041468222803202353627235920967940146736907369627664282246739096280111970775572049602547864619804779513305150440806510842737337086922860638068097491835395611173052071119961068771968659158967476703138166295179521814966985858675260941950952213286227483577431495782722807540321100299718585757606453613208930450117851302221805497500063893672525496643466197145987238987135506798024511870134826412678909585643053719020232128103940759070049756128860445105058241764185035209429843861675761669256466950655140318959169553518402201812849087492644374078437519575785635727422341321685546391621348599329399521360903668776586949205551447524922820439482773092747354607852910554988738256581067221611286937444518854325219588579897401307440518617255188738420937736008354749765975236820642594171713129828014486881208638550139529949340275874401621555837950516129301196267184737935932353164898529453458713517072656677165341232973260665309162663034787865651589733503789896182295248377200746494896997632495801384617008251818129567584994646808610910208374218312797398991313109940666304522422981065977787753530203197864142864106570517407169556503674319737585541239472403919749203741983773055156682376021186973802006652058470606108258629287686126374492914916035052808273790450016859810508172134832057830333413458847862334175291383266984051634083859977994399519165344378612230047768483172281636936005071368015363287641013757222552618510540129824962775342543195866579206784269517190463513791692209341694007291750954008580558565546431346704600385222630803654553894334439934960430218210313691163070788598768101866728878555627162632037892617186500952839272455055337133313782857569924401090388185127316770310943130767598039581356431976931785813112488788879417525669861107005803720440299129660412493617364574575070178381420479733025513588981483155604277221728889713363784402099155783266400001365500985964655455533577245839421690480498348585668261354025094723132022291468342276415733313135577416385547296094208722846071434424369186563180690934908797680501432985584649828152299239970607612355491975764097756266327492766683823271532639713168168177157784257230959264335108011481157102705443538456952217607052583481042577644105989490478639819081880902882402056358671721709948784400314228774988599135318170247320045072406156632365213795977613260172420971628499101853887393283390741967876979259754168474672234758617548387244120686008978094996685599991271484273527092199445438601185845782260669346348737827273759851001237603081036085487139896761357946995727188090503085374632953046025080800504041817484711283828287170999977693486458167203587218675677490965538783959582452960837480534349012668302360978293884127691425243203956323797067621140545274003062448063531311303895613567269047823519161112087003532020370947068504133539613074784519173777079135195374697211139981076860718326177734641781290087215704642437043682099598489823801973631025157640191191686760859025251743972089055589616547496814444101446481667651976117790805223146556135045924546586085662285848144630770833345319606570958691655560278740605211749285441237585177115258981821379621939134702937532879789220615229997809686729329896426581539498185377612234644152122874224643391069956708670632032285307328476674598694394744331205459457171347682947446335551569398376815318711285513938898732699349608540495897654166923271007849224708935065041653384379093633325891888643301211088995256348865685907022492228408695823616938209737483390612214897393763730503242131719074049327465814200168306173415227035602145642365957517085278278233076395056124752386379154714227543503839688934993129418739636024091598981325654380186878863646230375795847904640341458917905570650605583314647880153169257062382244862005289596555213212433642130206046687320339907228944482183420341172985657663466742968863635413124209347042814203705707883208000615526116797408514125422283465686042222572105459859675349621836439093461435339919116452575692532976722029339475476795903053007156320103802680630632277829692613615163661813060320394474792604035275411042323240419298226016310294601779381914976937337980977745940001181103444918482285659202557920749944734520893385222957229845856028641403223234648767421007520901134441699051675687611499595024441545695962927304489201459791823743431437246928763037740707296929612461708645208967553865320014069189591856584508196940145091191310542360464270283893127754410901971674480260610839691116942021176388206876001353211827593147805939030135783249189914630021360292475633094593215283256018878135913108205764175900177242825450811107789440543576316576462826439731124274160455284329660720937690279772038989534402053398476652646202814972097708699890472710687323068726401885220752044931408459297702540411065900622170823759410615017702846539332145545502090262230446467110111030122369035217866455200421971752728223580697710904996544631917400349027181359299195474998715904893195870802180660969421693892149081229623563583135188166112434415073983069325721598277750608283570466856645702558915722325279023011801094148775520855503476461317772737097810628568083604224564314132940606197386561498359725645445539249662923026751299232706418392928116162522927031264013141839869913736305380432995699154371900509133258279431441559739047254215882929998674624741579093710815571889560238993994991916055403656139724854745820092122879584248500664488125436311771696027106881438929295894566791161895527848956935021139127627037521011390640555322318187625867258309324001775868866403909535224893725613669837483877454520730335453878880946861314878269557312767828223420712490106881250455920662546127317400106706744771727991379080304032688380430835646541579876855113145293747293982831804221791984144658962862789599098292241499178700762359167243543737423734244799600195559770727450994565893678988466138838034214455802821484178761872688729336399319412132577391609945701141384217331053504832821189962376281997068469970409442054065981389994131408597949623589501287704714487720664485964196310863650136171815930606594852580056575881367890145000940205453864567711340836442941982243504766242243317224094051924751540546973909174255380770050817384900159980522809251772077615879891722831620058238046883559816952102792454887841121622582120459055750573515915705660007584986402496633530160324199438801944870920468448960216652679134245635702291141948141369862586970123247045981658231696874196951807757041053625151405198750524291386311077083558244594696765376105365831103895131546888594368359212772607708166501567562605520541137552221986086364810514874486868868177174327492765370992511755494450509619415346529159053756705128017990578407927861404822177521724314924061476142350834990969749794640928788245997263727166611106689558168654879917716706800250414153313445351162587983208489606778374432553366073047691708964612476173979301128843512551173499844551734998293335213545636533277091091317879733093243235324992898841308643133040193207878220907017782893750964466561554424935597673369594529783840310666615029415888158538651815264805431110730116642558033396582177623039285722839003373799918749298893661253008947758685547268505785613664309349085619736567336772742800931091379430430369441029048626807959674277276037072484111102319207128174507384673494716713208734907697990442586115129597138872965477252243925919700594371329483457281227669990547541234517617089086896708240161716756619647009477255841751945394720054475639337454961863853388763113813816653394421425487134773152644274421967621991932275132245997706440028480529284188087426758735412085047223968887505459848980265604902889379003733897054415848650774081789595778360635273583805314713875556160633601683214537445411136690565385596576686170370232293716029997937956101426360826539829126384157000178422822560557678048346806408968210611789941687921227513673635015920384493712488705195041532143303380949302293204813510910472275185330106614167388515325539716174214340440229577253869601810779766738063116375623454776744130981507836919106065846128988669411694806179205604085303054235065987053286979427197227289594033288006178571257778528752252353532250208336596297017262280311769567301758477000746341707247054497181590387179218385842767882410804284825403426991248294534501289663845603719398285815192093112724339360246998456069776810605123239042334906581340411926492790180868415573358382199173815602337540382147403361051746802613822030504715559598095344545736876436197980976327206584153487401671591846376828269262000676274937398942528443328134163214212906878442355150481077955476510499801956520238080678642216436918160900038046108422466934570487499483462271791162933051072641505823284243740698629235933623164305558251634710702607673665299082710022869863976572077743701902328301843461736081696565467031365447105878090976434608547512749616466611037405042299034163823498173365171604425624914220635484867519103010583903771412842146133632468086560553802864852869665975440348953315551822771599172791313964247578351677895040905792674116126976964077228172105833396927714275544773655812643518159135199887033516646325056404478902534001486183103667173605094492581771247571347966543778808571088044833466357485738690895497905498164932688075619584690919281750998163434733234879096685102482192724255770866900614520991212059507779581811075081107035334956374168784314910392361315850543302257323979169777125735022257758466553188646671435184343739067504082327484062389503163652635488820785507798758188070213944473939168762570087148715362219165364023385566077453889060672491878722698649353546960009521377404064130825684804437136709569900021151145933556757213925123385772122702738339921672011508240615577253219285847302720044971273837582854889292257867184052515664774408206669114076360326440919962864852418160501179783220264195169312182061307377890380884618883037521481287901651850487908800625755258464678302634784434890099578483085081980464206509556976686791436954869662570155437704362689058724191027950302694733518682025996869857473636603396616011459855589879330431562228303755422524547512024654494657321167316676515023623583407250488161199771589332111754469225149678592752897063737960642902565927217340640154654260202805601244681890785090485302627864366700628587962854572438289198182432247360736866835893745315260783947537076285099973358278005608191060594946027585208000144430185827104413540134368393031913074817313114450037569279630133353522104905081609800623492194386379282884165483917247459383285540659610038888904424522167014177272601090371822189199296321759339632306696235698805072528583231782622828022485765226371934719147894350956470645398819509727228230100454704328588365403884107234857804790511753093713568065387692582956979463622132042340646923702641049249171087777034872106548770369218137851586414731989959445319126793714451686793660593420258478847421435292677509520880381967225292316448121347838172733209640359120784028044341595228590491208219795050062994420435318894098070212322840738962743560102190840415043625040832714603363252804770511334877578813427795846239338270995382248680930376723272856169860811571141289152106162177599928488457913185201969453962037271690695292239111485694513649222730783509607695336684468631923797127081496924628164467866288729387646253154867730319112847673028775414968767435182318452562280425792566692396756441161181060047958950003964777323787465288941090957360748628753275492948146772915038063560427655311472155071493844613156058987120715879101243246504595746957070046537064387352543322755791620913879052474030867100975208347628784241385908025840454770332564553644642709420849858182785838084534247580304353890933982974918125021990252034855966439621577637738975003497543455858085266058795779666241620324364695974906599914454981684864891698145308590201932564226817364465915361336464894081821119975322791281558916314121779678943271593060193021643450428201959127319210084092492370803855362156338379975882082620257537311562169881271036624818786705072178605150910670749444753435825438023933539372872209946626433001733292805750970998970972214667422157779345237444107161346612754957512945172092613245108605417348439062443661384913785966982940899184050919982729061664832321944734648117157286768396262633978183506080246141236355233176515163615628942708537325353582570882747696865169826712447601771199158844542705023881273692430661971029878840159322243899313199211322007081811627835231717282286558420209574859718580183029304598273333034155056181268658403729413957436318046167692183938386160667091448785833419458191056513423044359488457406966688025149529744663695902484026603980706559102693784868926391012247711872886364899438111711128120860474797343933898591308703504989172895673176875058346144246707462950963122249971555260738258009459502210713479979543513067446803897973679731813930278315954182797311864142526459473334092314213597512363279414992789545678591071238879952059074391741461382039507971603929006723086052187835507283476724676329837947666156401346155163380526181654627993196456799271191342492362994907314956993355733985684412245223158562284406421177128600192437397687856865046745586822274179116577435576850993641902194063521673428083570379817409403599297004907383999832496873434734594564867983835612652703940403991843447255021929396941949754267805089665395510557718518407806819916030475892351352736410846348758866856151305134030168596035006992127868264881101798121599541111188542389289746685462925116462169029447094471142672012707570251108138917272796965284423741684861273190499815756468264850130116388874713072345821620679638782463778321982613452193597218323966561528306458982064552208487593716196360723656147071965381061427968772831528127851335413757127703134729172291957340871998651236179884333934518835639208976256676493323746798025848622852159366196357988354582392578112180385570839962730133269801098537136104977111165435146362727901004424038737908464280843206409929819363089412893773761289123437488906076051890520459015356682454686342003221722667219316708350617737985934227359851094915315379798575104316673119618091201784742173116949116345240319702626174350036370463315563483573869999430246401101555611163998163275231686495104094102992658400445152577822297891667173545080889946259604115207170466166577956456816595579254036919567271782303628500143865071560284653884422281468232076033143824429769557459257669916304892970828689199255421757874057602279302669470213006902838813625910383241328390904597249823309887304510606155536372577590559950290818576778688896298393524912769470676590368690337577122183719898034167229469310756737352040599356126446478282549981059782198596049059237808745030838069809843206371360164121144274110256010201815419636080207232955748544948016135739964333493286747555008515181195663747175915979195662915162302086520176604275607117272091040280841830101175812154983348287100731008932238402870687703068012433463986935363638703072235162501821550633538977839174830660892685934121719935517472931226492461885628085158177237491709742221846143562195956967978144741894392314181046862808889497107943970376595691192049937374298314688603756213988363783733712958966441947164971136339572113989165155431474410547518977601480964277414281818350044706083091098095083865998387798025687185822680773358654509605370578147829049417408603106245353359989325923712045857849386428953718793676654703115158981906181377911632874704135435054856530096145225345206923506667101026473425064504189467296858883201917651080089029761882094210759619963281514402325966160435009162135357581699922244219047958868560158166676529808618868156708974726875817794451180459424408431123573582746978413267271712847843978230950569226806647243141135603581784087608908500278901339579233428853470466215630272303610270963021564878380809180108660819879981124378075755310516056513204219702690643243824654079143111297819934057969720934570060001345240479647359977673831243530251821972261850028842079571261342334815748836168014533100469538654328996965388488653797620104594097279560443713338748723978289079282621353063341679776747193859757863473268845626051990327200132951388313250829226420264616687330003767176829212089458162123160167835880018144457740553942325950250860667886921136546452025376326497283240874122190330131951846124749322506972420261979963501565972968798349523678457113386427245932922433175707802754490864546186193651146012978295353403694264293629331024442166070713437096495380550043799819779587187704810338979230178968600918780622706152826660835339255661727384808767078751217222870641402400305748452697023694140854819874209621066040939740015126172924681451486751097538615235380278568294314994612752260442704710045020650730580225877997863159256079559867280799115349766864607943728181353886747016882275372361071716064648035285603982295049838366692049314565214676670728231043362610521225760807065903146801253934597318262531125437435793234378028391554935959486159916779033708114888049044124994942731386217228163766245181561148374141047802251187977900393397669074872441648286746000955699598260065212336387696133255490875941266263902100997211270676972796509744235259975939853736389560682347745222262336311791892845381556137405341250292878344550121728017528669024421770635018840137789864645084787960201906698346029350629106401490852626160750399862777369386116042009845450249457489661722876184783813017091801543982939204954108314993367362119705583197507369043111418953508877414841042979901123208344253681195531240286150144939385681434508920689868932011319931261569680375389484178125157326490657622025604394009108421460257261607341257680671501123130633177904413795961629366434160954240127996417404802529828653078507095714904549373344065431081041128713661437041295854932273127848597473208924759577571129775679675633618425834413949130229263052030488779894972203731377172635175456423546442540422432342594032696930927333326430835701470719326477089857575151609714337394574087405993992118032152491454380328756453376416732753184456592519532409422568048811865519503133701327061868260730997485830337126209645896916019214838631589100294642829060060049803953165181519502219446809303536138491881344280721872949255744705342236596098069621739259699360628046684359942252011068485187756409627251783458003707545173609062291631975342365128286855443255735357292161793699513412656588981240182034869191393460937589932465677822347497628789808855685169727196805763184475383447883104833814346198564333902346785862031059782156299800508826906348905826478595784534435736748905083746323375461008110163716844327052689963458687422134394699472734689354871476508145644388263140998000272106926813527546523769944058359245982840658141474740560326682051330214357883863886248412998846647205767719046193064412859665752763153464564725072457957367818562951479589182543898168945932287777167166133473577040604681446791490902411082559429335519475873174140097303227754386899139043365849299914002852708092125329784052458852219015959875425841708315817399658287352879776348721839899598018845825900546275441310677372166267538815141708394254717165325723012045761385526274702849107136131652101934329996545438250544302495310666602513396806776755786257701893153975143899258120345993962313760127263021570778373796793400955806384355229909343892093463804754281922095292910205872897793016906517576629247833008923651515231794167524509423767798311026121015362807720780708195471865323620043611593249637936140141669541545634168565512432456960816442176800834784729240584141214321691132829718595748533007547565311144306260383760232832643684579567724592438339457301234087438209589348064338256230553044419651429280890941943342706275056995023659065123160061173893355167328474747842338819284431417697427938279170668527991370884832751985666874803937937001628655787433345262181828444219712942540228021747686550201538755432552270869609853253929117124185145563298575781812045602633230083395003168123099313591981861057356175656344913059679873256225741860768058481772219113532738441524785683779979986604356537157513082875625971350293718969509650150074051913257857604974802015871279759789364540048388164523627232289846705271949716623916390580617050163410542237185636813310487646283636777975459101198699389433127470522031274721375144104863895660854690058315618818954055689762309361414919136803772327756051868450251012457147464207905936346160867232658528129523024398051306757178963610014229909152049084675765455576791794105006404136249956212914176358332365896796973433726991248185761362118553889440033855688421463283292248791272211580001907839956500187306230283876301476844568848105277383495919493052644587498126665167602284289973220986520107832868662704896410672839998642550926815569038975723686860986412228779992314795836947413628943010987191223023237215587237404430333836521092159063438059596191505647549977837603406150752275704061661689727515231885572709986427491054056833600841520399116771738081184877006078012423543468886093104073771601004316109602236079658579763902108763675067980045439709817817984535051296131347360970298008170248154344931253142953752177992137784095409589414454870304226068304417490292180658813912241527029598789814951729632205420439767911199945600521961378215487182076905840572295864966135754722223076228019361866346805802812460001800831643462987328386161139509083717433368292520069991500356421390678333775081840692064403105691964271549210982176298935836962117298457697713854840004801080263102804164765893386144040848367884409874247012188574966310979338261127076179768679695745957875126456069604181910714430647036163075902971668450882249570219393802691479244827149715710158458117082472216626237213732831408640721274366552945329740285082006275897297937555023932603403441352003194340392725208658134792063779977551067643029171414607566318018179094478984263072086347879015520815207527897263723055807916137994596304379760865313394186498624158815919023354908133533943389723209158270049206778898962171050840904510339749481728256420502422202066890619706252727628089392780963699912418011765567178289381890417052398748307594278151560261944838945090475529985452721555179803532059835532070359868998455527356015165071452429082806868804246943877146495859603749017754896151096569897153449653611861028994814745702900253068758632666059102726408240627357999535624889310400571333255342904251756564619177194177246672983232741142590963443477582680473706448207885243504607147522948990835570629369426462372366940739162373885669192772861956124055411497524290218324600861336505983647410823269103811674414567761313890965477517731878481856882548901181848773015360034064278463367557591646459192363699001545516319704610020459938435504929131183377687135659872487099408288692955823929916763091176597524224913452079116926821718481597771450921925733117432726304847202029485134041292051571790741040365089596869244888312335089861152001528452908844880150466948152392299962545787931740473017481072747059011541907259076122379316616386345391010693551318732112192234405978122746180915416820251718226567759619837098540635708354623527419406296129959706350568117522675029435027347345158266869347109174864756317242235596880019978723230369524276779732016554557764835441808289282136728785943848188260236915519639434169003540228104405551703099359845897765911039358759061537999624525627899716439731277570822917924103777346205058811165379068614976246662164332483130625463529796534147451202382279964260414427564963947022048480216663682458330782946388972897702880053731573015463942629411101909360229251171780433250998498987050951645440289388982655754164094844009612004193103616646636584687161166688318871362706913447662928857123802859439710531743590355497348333917706737907108848775030935125290881065322566902643254999223420761487465419128827079333272885408393648128117666237943863062415507502897784722237623437205395088756917171074288772277660298912041028875800540763430794634038114318653539034366751435513710949042095308931353435480122388620303001337378846779996490915567477350508333640676142098589188062742382508338228431566724429900590098789265990283560503078096846374713812565098618846786420803921901060474883440032837646740670430107700488954390931976342970437245786217924881425849958014182885157748280158695922303240280801752164537049155921430898092370825782399796867743297210876812343255345895102640255820819815459885679462365010174370118487425516888855629283471439505194708068490616420554853978785987634946357865842060964286382160940031779459291805650676074370607547709198920371286323969031696987376437776111968859611343011326464100214839761440690241167849437109738718666744523426237159929508607131402107522165667683656193698641224832526184784264410679469681328533722288662662236230447903624284724507252072149985316193890724749514681818955257824332953926273917534201135169197667375191251632033464828997641608004683840774498072857278485570813152559449356602682691728993577210780445014854542507762885421242507812049696071970208710821978365803647488270309192819089535987821962921550701768792445809609220464012296637157305593620948151749001771565914592542995282325283035753230453092218479567648614235925624022103192579845469980380273796417370944342125476646679567190318095262397981102869045022941848719599692683173461936796657775442789045432431461053513512879053401107155744432031789209590922603088952892890612438578243761398642849126828110007534710098813766503629353447121318575273916445168708146828756129436586803111416868291859427505230464464724170452137817518701550361451489510084934444849131183670360754999168540155457354393991301215566693530818197981333475695137970742792486981917153905765651320859382966963644459217921903354240311763436646803133819560007703063337436175887185801238162382992656123942352170708596292725162307309098282009769366379731817750585048144421999294040330461501718775366453635409654088699103879297308023929958427375786061283807769251830077191883789978026834371947785522655708071239603419506782786095799916397972476290909149417259090002729712316731386942312950589253851994801703181619875225806983319076635421757095176352894055466141048062785398599165018275164220516554405742751855346698742703696700198856953186179929405170859732661946761334547480417238604668898588774698187833128592093250011014093108879455686964123676867866851427892408389330588438133174479386889251415425474506984973130330231740119314415843075425095014213771023090444656953204574073490302169628018892290507499169910943782965997949006721453147908114984129301677129767193488343686546079425316939726187910614385412002407915496965153311875463841787491472142587169329685157317647101916041551642616882032376427152014712354420533244780511569574921546037475811083016055002736900271280245546507034091485599354079245703235271688496574270630800826398941409118899790303314700827313874408798077863040079812830187183472044364733101007323785991285038366548757183049832317572789994933800053764835356359389788605629992483407785082979678177501634819768905235462381765803683742372175683748476531765108873512363107434158468017484727647603086813940990793923117251235182768643844979233042647559727543729276284050411173335158396372800612222317996700171905252137602079063328905006727980021092261142732997551006511858189554391038870732896729135667471753333713302783572327832505850682251809895322004468618615994589946596291633359684453304183201172117782328530174977890955221670179847027911434473556711372336342609732392307929545631943866698457027689266819664926026649936814603127618138901835139274460048423627553289639312918239810282778377805734419886553990712825965504391952659184335519105668595942350518321948307212774894330216528297201701277490250106208194470736692526113398100948830376863232822936690416616148415978668975227119364386466201375429221871746744460617445294738540424827351615031354449898592815506413237985504672916898827800437818326855189058168235361892359476408146953627967873524189108303086066482175067722197174338632188537065507817180805311256051839999637960362838522317994992876645544103428205890339403140049486140359048855631055115494361043760096256785776352692589064446414649417969401084893029745410587409728317339818703916458132138536201861227915503643811860442084275873092794047182842272138296544477787132177967036107734818083965368124111780749857488529911126373145037598976008399706485023115873779549511569078939586007652465624130027052022037229988457368022462553854197327315740174694540144035658297464422049768409854831250869286288569423995822780586455043485448412702195850285767205157378297970859734808421759139176085183278861913123148190166957427791509040318909720652276474818076428151618513315452532108800282192368538403127341067943367066494295409733137740219862510919447439457434717161595349578965430881792090912492083077733200195316416616476288876120483534417892312368250602729309485672018889341145258997397430766432045101859644174749115964432334503905767377884990526257470670802232012186126073670183508670542926805993351628318034887618322960770388568458130178175667996838166844516241905201572303197467609125073300509048128829816965897042425188028610361036436675306469818922396968186975837983286391772407094272597717692505213211803967675933940780346933482035610187080951717858838955325829125593942622539616586540220264945175905838042338172359983038451644498273352016109202456070895365955312256556541260684158989978317034664292631286336596817796718328072356711727292216146484515563654537110437560274279717309843624774779170687799232517025866171191476756967251608952087555943913617659200875816566798835106447495682270734062022491290811315260297940233706966093037820111929473339567547388946592472436296151146974772766179026677578488230531090015755080273320179810145925323523251872890210231043869663349740119966734553802227121672101827719010331420495438685227684827637577250572091432607522539456403583660853880060675079543243071802666849178138351144079359190265238373465105654385962708810556863601194058450818695184190877558526020790192862262931270454441083620664077836823183020000492946492406778360909207469544332805395284148137176609533879350818699110187448948588989580664080608669868713136834946383820767194614124925194259096663373309270123906984378800156771412031916390439813937502536595807462641771340956886959780311205791755470590327483453774729415438900471092421803352392043978080946854067673450936966395272515939396525231378394927628994977848500793019908185668101190205916052485525845455111092566418624091611094970266273177843720215788891516024718919179786466191644179730709022087411241487920378749535627900754303066518317001642784707327429774328618203303999550664301547774508922967130781873143552739825456975239084224740883369845539526147479189077270988155259341197505449919613242976176840307959901323275940876631780737967851007193611611722925247714211560513694510943427210762446162927760706279637911075845440410808729211653720034144640429711458454506160937415429467890128716236213026032364176604365822658259380737766311849944905716486176822439431245389430986694737979525526772475693394312203967866997676168023463145450499279534832856100725599670656146896082457865581220512363733190219424459470309426185607178462918867905762788836408796035267938371007847852930259528724425173580458792913955699310245865876141099513839618068090442194135583358156553575219040381805725633513750205164331696155297670167882153644361418928196759314433774177582296499807331505133488642371961525895946387159877658056156528071174966311904732151341134737444142368807187360458829379251591911183745543962808208421111323358276223272828695115955146719087086631863517308034876081615336615580709883892270190045919468782016164521187473412093596102106763600768985106054107147543180850085851715609120604361822952906249723559865015260050761110693263282486593022000872748340125553682764974819206715094029209676579255664854972301752847259256009090155901611240253457121412801976396967172912626292952275938352313481358537362768333764580031472656624889435414236461080899202468372808170361399473156834359873134766456621830251763430376451098194930763864168320944555331757234640632803988204042864259397194871787971470044671207360769172943932239401046698841650090691196660124171891904376426937442156577436127000088407271743458811602418049364922455541041863636428644206276645525004277914835733990433005776039587196592071200982950799788301852058061593187567793464904522953751271469378132542330795926461601705668698555593232428919571271506458710999866310678763836174354310125290218514784580281242794312029758043439217415042063950935751484836101007271972754659168526431060578121540106098205480492653712927332362273718349624639132465464222521160884058564781387515336787746947162807238852882222188709503054029382286713635555634669820878892251162457333853261364705288517725761424193076995253167950254826652268624166664760408805866378010912797806579530370976717257822206529279839925478699939192756189788489450054463877386236606171646231465723899753759879171016724189122983660348664665404801146008857923430433999525052591388441569398712326022212028075762134105431695464183290163196492755530622304225297801812662912411079679233676590738946366213844529512231891242156233286825095245782351585719885499700317572113166189348590558511327718834519900466499470340038654098740612324195201825586251169945650899253853977284955386455132863168968949401106569451075097384988396727233152093593247367061538409137836544329378952965904640344969181055421588056764667965792189674006350982120981852163482056651513603970701982173177736272000935176635209431543224672782336102320059229657449043692012029768689322125285578751753235228394980586218378807001469827322283309542203324204316113007904793580367310026206712662950973525086062219043593856006632606348357126600586895746811144401003346274925193156096897234563212280234022160649623188627325024448177750874053553210432649537176779529625039366589344244985646013353641470611672068297541909517597801117683252443728488674008978208550578627508073540811439317515678052677210902403000285979125020641244554734380130742449704094613415992366462321977435849265140563251644774709726548560514395758814478634532122773292603269159045145096338496907842911013990219469029649777835836636260692960114747547927666148662112837009192579809089265020670936320667908049829146401038679132897550729502769864185403800779938965846618912856216321066628438587620294446833157992010530020939678332753304752238109157966633263403848982887962789828886742891458402542834150618636263882238879721238098202355701546779611533033488105332498622969761191735545346704821748442373386656401603407300590875321732249047833512694782688552282322688079689872975984490792276012889439568551199563595381149434259955098791891680353903556614900411885544783059628076544922128655832232487258279939190883563409103102920501234586763642679448632774030865167171248490496005813290090547868251089786735165336459902460337756680532256939585532835979365340779028913942764987180634753499481464212144373929210710170127206893940848506864466632466050883355524428910806082663607982381732902224545499531025698967577618059844392965656607158755363134652157236151655711893022587537043054943831793959344735955134430005881377561860647779612962928031626909997580952360043785470656814725510614996929412930913849045964781884870838783627020531751617694977367719000920907528377112333973237220889612778944112627981960711127086051578657534669624427474510340563184581464631608361153705283540995022651184314452024743345303602422751480639378117011979292358881751335286400711010673780893868581395396727724706786604869612478316458447251219408117071641161593446334976586981088069709672699040896226808249195919588043628591418690664090289362572366519086752690074012103291109766290776014731254064437334978981368441239275784246253612786768650899114574487145341073430064147887745525369300362403502045043283561875256026510372519605889024435003733739726761640960036816493284522783476024983519666694878124069322050507855681006012048561233017648099933684576056404322790238498986014685553402446548523050775842307061611953531573687711040536656931432151089147971371829807397283154422261159810726922934493263010914226659407198987773214626145232844982470948376549379696562867958187694119642903225106749434723677100792302305608581808826280660670081762350819916938553909496665508336541303291967912005162013717651419582746092036139438529803709799270252329954319542554580479812968272581780312810382316116175315482991186156409567919763402401128973224579052134898647511898000118299824953556121950239565110176092433868408893875596247290582194552903315422764355313675889824347816571015377882560718663561992558033929102766556671237212387380150840111876090298946841740942871828838457329983265295465193616199517936948350185486912781143095862882633985182386262453400537060785070372995751205913192730736636493169459556924702580049791512597372760109698263998748606450865800919093356843135539970592481440596786153514723736433860588643642802213242143981776219153877749336321101267880150358523758436960768399609698495249956857212035468673986272819905483705544159628727991238181224945394439532385490335697206213678870343977178053104795826079159858837079388454505646987764738173996725784119967862872562598547892618181257331485869985964981158904318744858032914770363061613724658078699978167322980022979247390025558564427621478137172300330467941672967821372733848698805694576907677671994784108781290967655426623463692684685349379219677203738112805537381759654789001583144014898318219287747473448109421364866971983985520134238870772350737477982377342371527426608598061113870504672776192846310696228008029975242851252881426536845471419913698880449169117775082973481446902644689640535779484962616532507138273434590061216413718814878508397875155906268047096795362365348454974762087728665707928872824705106590947810274184649313038398934619396774219603231228619742017296882153425352261156410461501214051490165380977881904194172529822215661019958977444200413749714844900854925089166354119126780955779068365348705741235190302912097056954012960284483902199074302300077335807102559243542816495604008121010734191614978501151736654889374537429471842486499557851014055721583923103611519814351703966346915539342262263441388701710281606839945379204079720219131657225617237532721517332208423852543038707831902008344361063521868909563620873228549739214316914574753329400811954840391278861679998165120972360338719329962651441863666352851070016540466708640637610985372738496345111750358475012349028789336596090926768471947665312912891138730941266345896723737441449095444407654858931294010165835668764026336792507955857288166828389462547023440370978853640149513856157784347708047641731053219145002703626313648395942398999045521920569421745272811206915652398573817578243972654253611154371370669526593749460175115787559389621626580125749598931118962290558579418712369126284560276129105472803442563127261397462996299487824059580539767312309574134058317167857856500757155257691470699891891625858441652408715972666549150337319640062629101152856792407124732422385782175268954791178659128047566880982198651479784393220502053444790498994464021658093913647184491588051106370801284612065510188490965777527530980922357494345975809807939728646313625848567489161459438159380310795765170998211037690847101259811275201862783466127573409615109341262678302858057981529494851919267915347848730419130219872280825451265097977738517061358732295217536931178290232691567602477985808277918839231041270596181844413216513679336900556375679937851572058271528547529548607881591480891185436315725356762224355772937818121523099842683024504588451510043478352752809226690972836255151654044515194996698827430099984965212726443513883834069110116442663670965425794874435121588837281635552903858496066742026626185123885626167685832138830464833622716154624324025962925020977864377732409416923499640852182373552375272090870981107184290349221669888240265357059727138934288275265263982507979831298841660365926843822667396870253018847744811235111334642874558583523025829418923908908101492231960402544368656943094629631606064489529604279316174355258174880405912345464875954929226833979281465754487296925594919428928848388362593146926853433458414615661422227400817074859067444927962816842844194583698217955254856788828432034927708432206036935685176735126091410317784011507961194606601748384541053609479960116670301023294198085323421845240687160904996984764967510465569436912205302081332608244411942626863191071707585543558403681113399445508096176581641124907516472843214693840028492254360742205171010646034590772706205701389713690183373600114012181325392613505668179154151912508144556238090241263101224942949246966125682200274472945628856572369870583168713894520687448493736546022074532231262443192091738384517109523106219170652534161338472493918768314194622864303877183234486048290713775729808966225103562347714152109156873776759478916851140450297916980108492564333440940267200051455841286967528463760460411962446529185340346204188428900497941711660994746821647650290944505173181592596563150979267783225734116462385163057420838235876802067579518845854422624044612908264628419044102360215583025812165981872420615668853889024165903104651868174046184873527532902716352200708787732066555311743690039101303327384525516451200569712332841260668499501348099219066709956355376079157133398615882115478621165898217118458065470952697115044128014699648554476188622669724992736545602535114797875337766862057045679311579619838312859067482404659232226541001160264986866406405124582439667550103575352943074731543357495386100704555631622619611103766939251692072491929836839015885532746967400155813197427809554982353573061650688945035288214051823615264491735237572793844741184139014849411399605491073601092295890529718397099814098985924484431733623028661165102030938006673683540301779911987589996615448996253419266475860364854799183075854074427454393936423206587217421144544798537564694870569843068334805253870684064729658940036104418314878693883544252750610858308286302053314218034030313669094905439027447984755501812089605166863792720442633753966419328768464935151083717376387135321286242188273145335697391006508812170416374086141725517766665439711364252185097209734021518857353466540169216563574834899015764740087359952511366763199557488650092826687178000293524735898181170469108701251837978960202385783851729505095903400445023488430536696901422127228970414746651552265233177135259946580404259321679483386177179460917473251402299214551697709330150918279846404118647778691794917978764617202352553707187790748509432195157536188967124587065332027703768328886122874450787331040789547064903692664952626524872368130267993991154927883381721772426371089201157391661329416146455539999653808482260112262014956304435674970610046564911772348201534028981276767014932166954422134863023717953579248839926956206309986192905994646837105576601100259585873101181828909245224903017238186280132460549483025976300129458837464508844462733147953909024861040378218289990613194717230378697491269251007587193818008604745331350455037384501975866651986359626901366527330308612822228946957815934949414671964590612636020468611853189752484652576530152727831064169575866457571289966028828815770539633406923876705279137816007234580565835119085901936889206630572668594682052348319977044822506684913854775299949677739991115170313642399609876509913326679702890518335591734869669188289166903096976099024511940711203237710561742393865779440379582809579458787771816010208562043950595677646460783241979416112553237981478929822641941070299071556050949732189009872063657658502237970181179251347803250929501670914238021604684396596929287009631350324369441151028675636586368279573572956018961748198500325910149512201665072912129579995636372701174196140046037380861726021207761401983673514525980306172844138934584482302973621120720286013924229984496098579878043872660509050106256488730887146281459189902735956756942541657195362068688262407974051431376307274655889560156863636317098300394017541925317982980838576147961938082786879158924981823091466949263694601115817066409508203973806196546068998966319313031148685892277781162763386417754551797248950546280551203646558289998311508121889565116256176881212181695399166510119305894012928813304889310178366815093295225835297707039279426169484066677238452464670599716638725688364257602143121142366351141975678096092888044899790051915152202739335727911432202766583756411973033542356804813240529129973573109470798985917021832660271356978865753324977297215427442320495784834629567858254495458272938505810895339122309701880553145596691240878279244620487897002828059060048141963811830606388452290823558933306347812173186547034389422858911897714871298193391686870191507564241312514807782297093514810423812980886544611182792621920523127818011128329843689461286999671954746574046923587867878343279670723466108147099786892344652834584339883761656344414721151819741211231227281127031026811311095139369591847092183280502961788599729608417334937630260202873965752119782344028953275952410941601279435324775547268326307589025442860552554826829025013972288407147204276748027061022776693900084724818304138254501448810860632961336302291211989901189808547319248743116610711101352713364500956083361643771255929515110386182525736457889840721506056972709464453225874726037452863723621206574498628593845953087245666252480119046683851895506217435784063444579920258100602001812762733621332913407345964424325445049739883641335030726938575376240852068997446865782282682143646500377678608277344494982211219205546068536878936441467562010008856161628769384269657624126549094822112788741753145892410754874693825426125131606625866393102644761099987644833172607364364189448714050237005102945072010788409872754258724814355113649586710121689379513578531906345881469363926585997939388796221483922822472136349125167390347558243613236844244446552601639285894774875824824003270146506310159988378159158992626546591457421488381908134037213015224750396864676387122525695854463083083463078633188008656910284242161612005605223577699049582977826443993916079294446670645041545968108456477627066962475788435240229036496653755603901949758563825817923358369520866489753696407777684215492836209791851305614032789410005466111347077158105096447302832636934024935001570472263475031218332459978651010631924920397857868346259067270632013189278549735694906053605854992694957946099941151860623298100429246648210601030660061891506542374398256243920927154791199683437331589219230221886168082688730964574386435539946227123790794801332073717490688566038174630881841181661823531329274017903254566460868163227108162581839646457186022291674111168167139034414606235422096437181651892463754232146734428132096311087604915983191127131053733610790484522220025150290499727561159593112391276899220697016621972362835996492890255454604120372155041825998959828781557023154179889268485884348686781715903781351260554292803348745380547614250543899538906493190274343074875673733179788694804859360390052306574912029353244657564770631928276577371492398359536819181278048588089727171692658212634236680996829838687226248609000922873214798205948928776086170065217410108197444804604889170831019345795948338559159985024519657035945151937921527432056593522530635263702478324738839248002993323086942692674679790596472441717779467338693823196666047409840628134925136634456364377245227813585415101342280230904904258581711956368553043173682374988263352550816610005611657178826029830049273570595996588991355157281876831703390504490164786064039346932976495590989283087301989502641232875312086782211173156180427766020142860131679403380565005977037472774297811375409947608500481015698212997842285551582129406767051625195371108304429359288873504859585531652015014944117888198578458998210129668043332457863184466746678377197508339769552790256924382775221722954042018102890708978337570407077105714447263517679915269551109710581707732043765691381819282417183326179652655459411726373881766292071003273145493343629768809655848510845308660649708242195085026960840845676240688495061302866184154491321873860990665555424272017756929254858816764293997436289989684711138639352944858773828628192929576205444755252504940183633642407097001335536076432124721790061568925677881214518217628615132637513258822654355916473897496186765479149521038664088893786099346831279364699521237658505272430990794756051387765308203417683667476289254653587882224188579924582355783774271303465550127851484272900702935131617359057712946146089799729417773978017720212680089372294837426014655584212811294073095607337826802054188418631272664795097416802648521340859549604975701394717399770035623831947190225968802234123166386482433071922661674635871616144086621782788873001944231742648676509928263394482515815568412317294773236408914689092499042671591176096158550703622974045283380219823434780085316979829969082259044237449355731140808365623496317834722417486317276671572188068756372316761183261505209122413497682869253716806115006979144034815337172792912927820920664538036876588742590754134194785926833559868908954715032691997016994409441937809048269338090324695961727576528735598185003497059597200796654717980506313919835748599741073947151397565125149613584641381148362004418177887857720858215391460365940568798421684341779661752183972231018135141943831701572722055273857655982885276726339763477046890194551889168602855089088026536778972919770639010373512344996219497990934284749603886958319821760212755620242292090506714179446559063948446438189034072150058244235116190549175856411590509012508177236885029945688190149507581995872648401230996522868850113762681231830950919859664825907014098990699066954678211589712148786558386434382719805849390697365822481038184594867101960664247781636623942887762734693490100222618706032835485069215053121731773780488831997266237725607467263758804240757541450759683113554753457368998007150003628165566955713139740377163533673970232097689334637908232412960398061690300431904238686136900778741840300969611660783426957654496137466678504664229127532636387716702860790373532057020805032038152714207462328468096509347458462104481227764639612495748032163708098050997078866947971131234605423294719850374653615831527333459716647875814236167215594952825724619902946615601967260743934052164301983923724867744072461523123375790658574019790173215955251518697683789217483242257160241365364245114538291563376234725848287619605311004769383304361703083231664761516564381821312511275063546941953041779804411796073754639866809465649899654776989089885316536597984926807516053016113088759580183005533497813874380737966648285617171733985489775344104360719520392682672095177354878479697935647793263202805012648619255125049322876782102387029858970835589400376739395899331927112815651469624987760337526488696263606734359811053186554909859425981957918827621083431822416960750402501246740226377284238088253795865410060838963657072516597399526328245486391500147001818041549373342170656550602639675998655479877133562530692990123642792358960158075242841241706708028956606513209492718548708922231543966545842796783240957497176690276734146691901658338627761383504417312237034243298763361195056559548569092078607716881956895962042199554149420089433197672913797751381999528945178905848862396951793519175818015434064667432570598316182778672885998719398035193656120900646666306383255993422822101926181394772498298183960733615861677009648193472002053000912341646980449019392349571235149363058129223019663524286712845151363760200865387970763118807556457674784116645668260236261015930380322925180815975067872052624412734764475239590517079650925409415580873589101260099035664456784628567217855247757156347716154111119453644477756014230851306821189284063647170232418019571338095729661009991662838891938280075932498407538323506070046914173819558126486116265485146604452599717809126605349674876754939351913240745709219751097076972731283902093869951980162236361427700169894809799473451220513031277594114011155855330580012448047126759244834999858400879670821717083197710543118789752952187078587033704544688657725682041865988158072798568418204134728609794042970783108640479122871398601742248344216757735258195807835287078578058146627044701059618141315759587631584360464274604704842593896869180309687579528549033195001948572220159946894718270757311820031905267446311304076503064562559836603789672160382964180370341889640923985303514175443821703483209934626801667657449053683714243166390066311541864488451408710752097320220214144812308716366440530852454090658411060675666493862840457378505711931386556065341855192053589154272578711127258660801397263251052941947517894701526011658133627603160157787735122377942298208004702253448585848445964576854594711734374816358914952132689052822568305768572987163064194530686781307534708285766722618791814149785533378160497922436319279466486511987971690426752800511068508765974324521526556509103477636906469380506697294863810301195257525380886757952308157696803847120410877593424205733022883413547658056273332803651079864637437799505894134546998682454029072002132737029591993526073982371997681395128453751597447596380155362168208284085644670221423002749660651741234853560100536499692427598321917357403326013283691074565017518894441235634030271776646901605343224530518476835526968170640385931120173565237008905530432610601365161995664455740459173390758803041060109751486586193708276319168111263025386203411656780964768105023437963870290263169042012754498582676819077417005336469411143879395291552672174271581504965882571285794636952264124860615875576591243478037753594053141109468246075777081119175596248840774009468028855018403289040163780142377621752972757815817198678392073441703895272200467706707446418884811087339644392257100296361188045542274949039899030952335285188911589130762036055973824893347502214433513389807015388381864920874105060747297630887396693782562727467236285221556004539794929529475714225735239936582357527137156818318346696020492321272934024567877163882133988279848781131370972847813883833473811467888300216843744147689808310442467089751562619823072204097543752942726065927277317781145059589822226946924658874132811285728425721041574672755600185900816191845171878424493891056277648544534636293894726748528843280958200266038727301072550403256138933193307501402785100019692395717907702370405041215244226426635119033359159226114311761117028124046589418279714289922375678261796808939115557852998796354761588069188419364626726805779797102383727385104227973063227472088281784161893246758541737472155142634037017457271020172996747801467009273563158498428393735781113205962835836061234454936495842780265458187558682477581522382297752508473716984351783369690930014458366706568352961005511702238179145196230298813825192545185539015032765159833820241844834472055746501932151657614890257905669608665277430544973466892778933452904499013938399883542808489489889976413526775328797275661437599047725683639064123509315825057280733571779916906135339331294873525364102109143695554661497872434383349969287284923568656160261585233952499234821984803308889068325319364154047089944923869832604289546433190956695768882938326848416039693871930463942018376959027117795403502893843495135627346429979078509189176962225792463737760463228767713700239132299385324488890009823924985888627136234101896996498224984879720268968103260862790363542893201711377052054096447094697474666481276840033226146950690516916133494874215969842188301383144459565864381217331039423224619763881618857595972341572264182739340652805899283459293645566034855094940757022081633840716127379797262562085180426466475650319233067154197346092843537084493340702994926803747428636940685340525428728724238858155000130968201260037659157832669679857949484437754257587295865065919389514847770563766340947828443461874657595996309283573740399617631049800815641224822859657671347927202740786996153336529219164537447383470371036373356241097497021543808365372134136565452203191893681269830924669007040505535337415629012659840568870178699407399256016459838696236361441608821336669700277919140919857668543998107467916213482458372628446243134439387234114705317956510290843373516274030101358491152549711956982860858026768563285234791910087263891212786882680657223692739308245439132075033701551673595820153808022781204509752974856592850202833658219048787256492317058343008011945377880923974677887499329078685518622390250212919670897657247810750496057608363104719475793310811476889646055061339556261967527125126359530669729718408236521365366257620670435429286621225670006964464794963593051703381753585566417846908546530529803937114117810074754698406253451893644940631935310897865803844910670897116631738322965332279737707784644107364744439231940695279394967209659359105951132828490478136355316667988290515102978796175985101357108799820636367864329093550183481211826413120974343782568066288426987730271925572483732722953472041150174002448035266800360568512021274194803440691598644529432348146145085143774247614700364670115436276130711135154085456760569170923862693459454397588195011869587025254709873881644394283621630390030556265306955878064130933618988099248302260470483396799886916804175357692756397452443262997535288683009643145006502500526181221813077800754103918466568229268192440539574013568618797594582721903360271544754318335377200946220079644151657417906263457338717873588363678952068494507750391435473428518844407085674719817083305629461498139016597045824926873697586067862642624914883307023047909721933186389231665032721715931645762439587280563588445382342855247712650195919692384016830773920074784564592260161301439101498889676895157230854229312054601653092805840381545078386076271295623062493629724545004855321681712578730148915528106327113194011682200901051840719855428400981253131032530172617150430088726897224390521472006623398400408571011813358959373966565081130901115695094939653495139282240949347655718944655751555766932250721941155993340876863888589841787440232919623296896978064698055777738059491223127469513746600987300975975855038745306640343969562850873201439807426580341741425593364779669533706157558783225754906496308676693062263114161941081375201113915000574416921017577123391350028693625483580004055960781611501309452125198113552758369557491685411638152153950409939599717066000705146538534985258540910397270083660313122835145289425129761703010802141634978689081198006707374361420582096881440517873202776926801652596432981628072910586885212513087900190179044162018856055736536402431306305235146962030664299594727947089370045327717226628454193460348324255551784184623677699964225399307072515979497076180123750084713603802802688969807141250420847633412563447285211644186690183454022329214104136814015601884338649127635617293955379126014347611715794877004707259598566999358442117323440348613465357584067390114273288286874447124432206232957222649668467639205726809055433958810760411295600648351844092637314943426970805792943032559858504298749760037349918369058023933994818017261026268364477464484742454488931972152757974868375370356283160137852358897569889351158243326046802457260568882513536169320375208421207775846097222124511324413392511639079877799051269072732266460076118401749418552663838484176259149278668145447500141695131204906363797504524455222843189908585677633647742993040646381293704476801649743201307401413526039374868450209256357483473379683853726383159466927971805294507163155933290751323932889224914685184914170515313745754581890427801295070447143659398351012273533916775739240282312135978160388003402113156724148356491795112168166256250410537102120966843592712304014659640009296280043626874172769805106106565819347135574806419828258379276671021366475886311469856938763511039406163445511604635430128256539737275064474167014464227567443244405815542641056353301035146338443600155743342582015224508109980159551074149569141969654815977254778147544030696342094070548112403918293678233705779467155591544040563253820146792735957329810220827613445032615087353748656805761729095475252241973343308939304948006886674949585267921456464154059757569462188889888858264372328265070710536104869907405310052949567491161899964626228936009394137764789967244511916816148327294609238354152637858489587050021642425260644278116847505290065208061662196577165875788598834312134260132727155761369235554218095263589076731942299755985849811055332116302782835091547659203072485836351269037651454594535574654442130043057876382940516745483029864596915556121267624970335843738308329273437531148583725834694454656794112390679473213233651472161137137147374905971226875416374457284633622297092925048404560670486605285521424414492291578710189474661237332322084785858342916265161295093574142805125280980271296029144701887335712044462851003099312426791481071077508751451976572247361874730259723763260400684823618059205731075875248588839733865877594426955957843633110851987091678971275779643399455479086846404544373597886418235141980233219280970654433965457114977550866516610649475147542496345370558926188582211007056028968751824969672264408408487229446181557058392481255887773219388496521520542176325382151737727663683496663345958179986647085163090223410799166234665019134601628830609345219392469655218063888084575815029045340206245438907386783375503929876748197943510284312515566007677355144613776136328737596146698067292384994595992050744563513981014345392933727488197614971758867245181183640090790683595555330895794122888527357276541970062043133433930725992084499373054557334999874539051007929671402941721719467026358442743510381419919648811059767113772727021572304163589071429575010734370694529186314230028275455591658911788818894180959980421020854568401594761506586854705910259741448240423636554049288108540832717843323540108227138954221415140005839062652409904920539300612469242168884042942265112739024846625305741668701982499413850998091012778500757600338868481300397405569376000557700648103279535890849057904050403755944839679494295143359101686082312102579804436894853560123020532190334211915768809015185738217001333881983680730011887592400549119441107764830278410304614893629961902311561413698960510882319673861834632822367100779948218139560575450892602188540250677822397661342739681178700876315449715890954636458316259152737113624559638526047247032021658158760858789812417418297644624700420349502087876890487987608506944011441445469591896635033455602419678155333893818257208293937942654038566169263863703645727705859859477338776103193223971822924095766365984685812705072252319728612343847824967605965685680007302187870910156965098245277040692891890728183108058722540643166021288115394420703421791944350841216446850710405286240589025121175172153093846972936432981650153398919247344865715995971643787363429238848194563417840637257599418633191981895323680035816755838743028850115570782111644476809411322114560703516086535045107729210640613887670974299829213302062940436687624727764493943338039991119508005656763947534644642191030527117489699220224707322599947150858097449302409856001057235915297772958630764083953923197681889049783132629796653521380986313302331114681242542167273950096346728809332392041113083957444189412544550804665801645592397678976482573732956987893934842869728320273237398174452145629582119946630305363641248458477676944689413407946159212414561336108625559731767107209603301041707049984090408378208989173697908064232258808633410624409076789815511982034579300446627004172711619653881642436417283484049257816007144661560701885881561876782577026980014619580479875324543038945789670742083748917853329405335158162755183811458495336754490204518044323917544195607578489675333807941047611608381114409745513281460521343018178348263799833829256226013514254167654146214262542229384023967939082073236370418301605603761407364790447086943132596181183514051271832943836065606321307315643096766587602938085526657081140558517322404327655972306918911816672855695158159011618496747828566329175709669472720225601687097076803505736185273087217821832096264751527008575966100764765684792891773211378247928841700322591370410304807177385678120860597136228960820961974228244740877600744130853289941450457371890488823707237714708667556756171705041263380803832123821128608129532882088529764554036843637274820213687565747633227732487386775257495019663729486444285209706631273968257951757241693012009755089137936326446382663241334004258029372653921101941074637631603939390973781679428193107342771437649877255468199899234967396416223394860979377874582260899695104031257670948617820799339504212672250097215909739500749551331688556173900949340497565462118574876787309962700234889047070374254421686843616571272064727160504397354922594417113363020896046869967896222592411911654387102092874059510748355352522908337295376684836719357715603049681471923034386925478392178252363537512671139652302068708534752188674734174755582049267502701354273300852033802737118598955402142292587062920127370638814483933778794006126621954798123951911540056262214006896769596283296734012312666406738385129466603108862549130945487545938252156106618946136777411328637865551961738531682182385520004019795189098750357437133798658968193112712941268360428897973364534650185215992447511819510669977371752745240325598090929295552294658875531097345304725564678428191935488277317086787545330914933674718448006187174905663688429205599192469700800974774145552652121552247953673839695793178324430964791326107952981784800853290366968873378886764763619439308928004719171453677389701857185605301261382891183043875997535084823061123053970466422993006070077166926285884529206644794320091698742199553329213175182990205222567520313805716431163302690979300203056287293746845594408034253727088067332790703017129193273119151689405145068235421181618938359703304536948440885239954577200344108573399535232431370114740122225977558141308924994158161022584744827104406225503977791196631918462540145143622673511277857260121332427595367032079400826836809884398767162058487992600628118737031753519650002323681955675335255026470933026437506835823208982344629494872298191762693651472458914822317483106770047592993819773770872234011389074431912569722523083301054645544493345017627897482277003996095954693964376892262351401645071655672110538463458620723287415803424605796080969487865352057798349419820873856624870281282080240803985467188847912630846254231680178992185620307460046195940458254281456216183600916597856430288008958243838545645933027089808660838291754358365733819939987601774230455826933397197337982918487777587422434966017702269516824646685503102745113379486681844980970048885992250162629660675425749205602229408976304915426390020956178358198130809618402509589833549345608888981781589805214387952369747255450731090305085617196549454171000876803661653703524839221278342450034222112187678762603986358588180329003946542719089115268980022080543390464559653472129897443849459697250479864665167155715636375130688520780720533377721099685078286055963111122056997442974733627947428585501426969945050260688373368137697696291976246562645387123068610563132204772134278780842863561837831381254089610301137487772712746763045131471792429782286699812497214112399009558661547080276127696860780103875000433385933511300690558504577363856947714196860377318455765567287986695602266943821873250647787619278967950170888365203493814696377998024868647075359030279516822410432528150709887673021125729309222054557049047692669640505052526029665141835768712138698891955647125641459727226875245651970713353641800542115724389782804499715535241863027444686446903287501866400016859215051994873317525459127303545987657064971414899036606837265801688606227030527244324234180456407851043266652417658490282150879917957652792004716383121444282124638401757434223439389555440701787384123938219929394432442784308298584621269364397205889138260400184140044887712786669372939575672151109218920333102627874652617393404587863969748152949162670701823472491093596972814951674794415793025264563790410480540815166891063558667791026992128542782138858908826527445092901751205156621879917329007280487539095760079233078711015990149552517377964429427738343712303487237745937638698209153250021869730166587085079554284697054716711612845982566705719428309429789572487048667882199778553293898778464908288422700181220435011635557379185349693329722685705484845930504752923534367732066941535584299210008133834706785392781710997118261914820654535578410627843024579275885212084701200395728797381465207563040586128272340266791432056242176782556680493113280645553805985009912206506146384738974383857883590100144868459043631427728610538766719727815386203935924354617160688267902843132293700299349214764524352709515118684023679063189614128219203821686250287492094775202744914567092919697349117080764583983162569607100980907372137926823995477542684489731745529508505144711324665585255627734609146645713529996253788274816154104078439894771477263994060232789231663104579281624594316182776420823705164324720746114010144988747813131513609681605184248864520654563733739783635399153254751693596350467113860420644459094017758956115590395859280748191894565784255248191731053341350360358106134345082718359780135019870825991987426592671346152699975813389089071284090738523695507974611702968764502088474368845867222472779076558032727798210261385124199018079638966815482060719817238283302179889742230835802854338628324522040619960614724890940143399911072821856679441957600745556701846781764028404897028471810153321746740237990021110526570742663703979350606052457981189798395264736129988014755162203087042787387796871191143263283269921139770315461987254226970656429029306930946894578964032373712992420910232545789500722308131694596933436825902650592066760679907739136982587166365675101664481869938205281622214083688933695816873434911609934775423395998536421415385125185853085811716119410283378129546231614427642650028534264798638344394770834689679949934255266471036461619423876623646735250890931122175315231463696951440338940568650091825113120857148252621899647611409854278167035200390246721586707737616710099854973370746880414905812499398770286865110889694264951582122517974770580617535112240892614101058222286764121390491956349342099504627150361487377082829069612341907684340753898678445442996346788256805183052457396414489877018073771233297219472613954186904934155618576951646857447437368307500437801981305475845439438064312190737004185298919739559585570700648937589297423560987575285710573369109296922022414289574300204413608965731096956072943724521966218738133952914209232280743055747316969296550230970822535458276369927881662928108870433901881447578068394529831155491122387201459262899628159835640482955959892713163391271729799303796662294882339221205941479291228936323445846698967294917749608012102568282335395772495794993795864723181326348261306670286226742192848269661172439609123802743081470184249536869444131689998455375579161958438664753129806436890759152585948831754642858655805793855679903537830865428959367701918398842381826965175367096205067019743988203143099158564487766251109510210860305240869175287382485811350473966022417214811621258928656186516430774808769756492165600089200572357927230495486511932725790795603129133156787022983234290265906492161591347086570328686513480595644661094507719140702864833066250122955489227451414256142992262727204282773297027819547248913200131687123084442614616740459538419226107409402423323226716446186246197672658214787949412348001433814095429769149442412396868810452021074281372572484037042624363712470053994183540182620763637125184271585998056719229127248119401269854701463991887272669725827013475224855019028705501994178569253843496484557631113804108188464626341065702383060898223929970408816408440567100922360689690234420298462052520124362927744370292281372932584221574145028779283169433229671176803869528633910083636135454858209455233215034113643945045690061180586858993550889109676783412360625967386838364658896580446865702771334961581379832157558559662482954825174699170085376431992841901088328966964413034468149200190459410372529619664356567584947841954125866015217621570878272708031839905317217654114487838048297758295872701340984124140645002375351747265932549605813718622300751407495152829954282711384381811965191489190901818068556804472305064389157808207173645211809340075091179761694820362545693454752095732646104335958469034024456607011397104527145271716085797931124821596456916540440722854600582567753546694139950490766622987044377643589758055682611974595544572178966828218060785088027839214204679637802678749038172895796518756486294802123949221515010391362287782073550284577554124526720940178820126082810501567085455597504911660564804449087695253330100470606681767283937067163153469690896588203035011544602345133992729788190861211270738874386957245991025869793283686127172591469426138228786907747790620909660587689705893923907541794064103647143990636097817514808483524194546924619426707739041842201436122802494342125204598279879137315950866958708287723750858721515098746742881255221004238131396973801595399239029969220036231918943960580269716490568163546863600264190621095237522123861457707209887273948931333233052411231815974270687036402136126176285504936815446895871844911417347088525509365790510319127502442920884654479870134507819470929416419270249296944401656463862125128671121332494094168930216284065251841356796256609269665245127451802536194985383174605530385548284130200214874108114455837240607395981942285221214425659200341209659353446852299305416355595249503694902412285023945437216613036296625940439252839816333510338702891640593497982578673201020118768297849214178617663367902785982968624022396456790107458985300106937730000022091238598713229281967038314999733664113547902206811874956009545851007730805326101831215389560472644104213549169514614744640522353401705765702084673296832134638840493701632377547443484849690356289434370542128371909652412915964512012098688466830731622616543013723662102246087285994611010672566454542877731235738413704714267774400725811353148668183163226600990632942682372832244080550830437713044302496775901007020181356092770454432215448207297250883884717917703423022857769444664503859478020898071098456719631907350433378243540645986310605018859360968016473573750250022282010064037873705975111805044142717769514529773505305049583150237707746755140295964710976639234631630782509611485296389284092157583300034070051089615207646645664917734910389447705452428415482372572183577445101751668298175195246629026722523600880897750383784671019239733694768777279721268505536583587263178634628391407596964943420036733220587729579633614670211762764794338756976492954328320672299403842432835458621039904249474714110777389542521819473437138315277905691111546910660307027766156469365159775288313885851339247768798760329234139751663610915091111247091800959140698450296216142133502046915352303348733015524103637226046496571970136427776975169345643416159055529885753741916602532792228702012055125189188307368190627126257769500842578023602359241585095806488775960982878781101712106984593758114502568614142089386724771914158247282791678414312701208652451532546795707166195217629747406254845528397719616556004066061579460364030461262285050579416999956341587391357647254709379852259169168653848662834514810264130091415989489624464346394137523363153217613274723231196183907497985883029077947453191563907598335568522089568099297010093875035779240671713933327019423839803720690624106935271082924594034592875801278159800069479904037538476316565813051475867048135331298981216054860673674151289445251789185791926392006750869664158151611668938320556076124943986446759374469691077560643180940518980580562749388793401978752717577620935343590439870939399273056216860580585386642790469178657273032223164301140803000302054794016792991420123075007272168933002489062388585976707775449394900104254867164923528159275779083013311604210922813385076244896773219585642109857794328193561043672237959071327227328463786176277139773892292414876164150391549962993416960832173895878121359230114964217959928363685144613234065788491287579852413499717184027472578630535991892572525513960302752116029626939933999571253037243608941357745999475081819605669611020177164288800511156121941672142877300013089964518727791187768417198377559791219135776384651914744538648416166513999182685546285157614076191442193129697196435353329409187166715561280233929994986903230750285466651412777361416692913308651436902633726102428719425010498143867743237221644404893326628067085631159044653933058307449495954193701784428559189578444250952183259830662039466186767389951826580984904163536342237337793391684762337486553640608723704314547521034534785868918288041145867522101234797058479777893819237627993497882884484821007659538496506733243268430573084372792358465121662591017707692945327583251817023434920535186431745217903604995672737669969657239826964392293218113832307877059110127438865382564812953120130846390366314278514113349974330443040643879805476548924324808553653569540059988961339066570995526919697078472120894984784828589242729820734779437221504370013205124409130241348328695073244952867976806268219159828234461678267572852447395311786842740173748063238616040331145233273495130554771253144105748042322175851378643670789058345069666297411157668186651849721808123481041462124586629011451190417872961816194445161435456251487360337224475886802790802512290361078680392441621313075541819274124419616399422322680274313955428937232065477459157419960089784785510179421080319542343125569680713282178922727390950437651620336206192870077708203419939383388703659728397259130319809225035455411418149016095173432124078055157257443081818729160413011535822358246450800019319989231713327897702853133749743680601765732230596961775944775122178915499197534608742018694868189553877006966421860034739426158538479578450892673046914465653376521572517860221543129305054661844172007539399868517493542623576123631371784953609576385623071302738817490347706482363385710310310319759649038378079294167269319814060041212274546309180005921181816077386674464149412896599717297245379248143840238089735099206167883761880923456306432030345207100346092533196652119823526584596172454629896282948003027553254628005517630906691089950873658907732206921509337899901418034675895128784286739803687351302081450150284429819925303503657505484206389820583064643329114845640620842004461783529078786306106183932718843332505879752256370110350361738521465896365635610202307018861205837621721865927931626732073738398278604003780234729084620021477513988858627642518256519213670174301068104128775410591906032566403431335493659842042021466527236866669994313611545879412667786154520258461215879105720444014952037994395250459297292608756159191280158151038761619208871565330078705203714261591128753107902934445125546259485972861542203500034203606811203800705124131657074328066322146187946964302803989598563191948752066029920925522537033563370705696015384402973863707010968662159325427612563970077198234837532802672773654577240232186638384085105184889953433371284377455013101845537449279775993313241940729419868557718902706229705483072104828871074086125431657176738118051063749149096371710274337147599496739852346734510762755043018110232496240952240466650579020235220705739542137023674992284469430039365580043765246793599145714707285330622487865673847871242278239637261736192118918757065310850118222171678576554432815388604189593294315736809603532453737217273814971893373511797551410173974530364668034424915311063549996860630985133794322225929159096076668675123119392335049512183352386793704182493818651404621483746673756396805140694385824097374413463546537755163709759063803942798105695983482062861641022390307501467867812333640176804659386462885475515597955872004206266068200666605291717699716406120839936750026441263395925860852702849434774279701101174891324891518420286132587779461842802142801927944978373069380800232523946605506772811633906970681435463925938825784955892273394751772064870956151798553708514573209772021957643942390258722752944704798668349718255653504873576987155603081553734117998557769336879711560134325099637746803748552186456297546396596794081339001427759881552119085009398935641678412362777497512622007649779870066254377164466741444027916756121342388312681843935048367492817421074899853859195371532426363962116558030287235155121413290760864395364435948460420867664409396280061798916512524877476945306969866848479172092734062193830902223569947731150017839354368857987970665722811009979688551435315871821792697849889032734279455650147114454721701917803646326091438494000395326597170759109000923135123855712740512834443013572855865683490106431965584492487685871108197266253090999040994723290189658765880782236594770261316658637093361233207407104063582901288423327230853164448185105606464132934151736353933891636024525383628639178444126733426612738929740614035637863640373121813581731982827871558969299822212289013920872241352475719704052372636443078275476875024153713636946639233489340371902669582164172532368470057639707050223880677658033469145533100271988788406230046326300202535064422668503457436348567368807471603669695658508689242330094537199077574814716189486328587653317492154048349086100238810225726025151554280195397020811371739815513958207416768685784267399238364015129509891492185387147204849544992184943807876456826791237991662578633917680816175888453270832024168110022233382576887974469927492819066051270011236342024567628914650646110664624805049134918312847116884528846388767765059117532753266746195597511052756265285388790800045700392584030023317853918963008005743696247048243320716045147717783642226986251439143240051149202651994638160720255006720702334875452392573754689035635111812942712746559280357911811167352531397613011910179522171843823281335647190489358669472746518549340999578451325679620080941949564793429243388538171920699631893271131423081040782938713427038676505338767971847864973665784436436436197756795512640292754295295108245297204072998596943128421093394036934419713659161812889572181622837695060667791539279830342236300963035262481079845818115443611320110079867624970057163661409178108011172849620832041532510249841991931494981623631941510872767804998528449938984493847245329933006221068841767733268241265577832985229321554715211799130032096340180129749797981716942984670009447375301232911258776164571345110813676492335645151546490684117465732457201523301438239292415957213472741172469019666632648207937521074087910844437066023570054589713227386889228220998578620008627270921506994237959912970031396880524009853284233001326541243100495046628204127380796214283161690458797109932970651732104604998964728072683323257843319435337386411322744915849326204437423988912618968531081789668706778151097256021231335580605152268262316355957278291843471826991472436547789439391908129816850955136615860709585467073067467920162144213516440260079728362856796503033003748280321410134521838249817802566950859874046836723405339248921010074905291993926271534962385777502215940061913733048289075100437396210058064398578940178150957898289278521397406203560661916934195603166981049221491718936795954764704391171940226598889735766873443815697478528161151679404915230533219785143623693781690700852809806796408469391279132885355549939386497082518700052466487303002257227120017161755290961576658626928164549139508401932721894905545765197375779725682291223267343817564343540420815434888677985102839293402499326575784359328758051966690820394714963152150084132227463543472351916939708775956011223240478739302824965010362128191139896303635013361203724890654144979935295530715481366206144316357017558126498820017788928296511341614627978033597666089898957398220922585205587752719324731150402199713562071369167624418636816743463312190136019806793982406007534718086560778614650907921432257721983593118649783939712493778945640510333193212971530532404623654675564310390435934601277812068104914076104974849524374865296556878765416064249371473306676532422041514200057622803413479427799854134400258886295540802164398015680170480192119748635591982771695166466314674130211158026795946417156516805680578921526958099315713999279297575073214097100567884598397873144167450569377413287058869061555913947730417886285842979663775446363489334612755977515902318915699247389695904483295319313813980180066189600387404613807268415519448875525625604436173212814405929822944805201084403338648518039519812789766583183275625175030081262142081603558787211965033669050221880894770588325225181291696433560198031102539296857687591909444898186396091908755922324524548499971200147433377147559618578163826265149440918144834997995897343407582025135588411952755645508560870533614173460768143292888072854220730723196736884419945071323898170401850768923271752626619793086287176512710359702479884761152136424016635710197269169330629311135103968353129389455547684491328936597085021577178995690112225010752888298177608087137409758258903708074447839381296430265827825567805174972960779376533614408447453542916448569397751052687753260124398864141854984419963807050666479059394005699206505995612566355655063335878839914862427261555418766846247494510697777198735398778467526519756822549466795629147164214129957821473770414460224283805369786218890241824285145334195066502262057745726155776129863965923800830595557017942901121087140123842127821719020380776705576462252644345822243907691754362889065016236720896388322926106725253918529613229146239256932917784658578831269013812256814376787996208321079407848414902997818582180636466456042189799441242287538442317307913919774739528521149116110571970343506799900393198471621856487390967492419520503309824661515965439118825453323186232078167955782365244174389257426117902230947304392449955256234781876598329133737823233849724187215447467245547370299869984875639126118342310878583424584654289658995520894270847790938591956987566141296722964109951410498794338361367190577207765932193452556691399363902140027996634906392113909770343783645643667378358154885707568372549796974102403277195784866321617169563517880083353583170163487115216870061991038541469594283671248833026893298054221936944306779071567903546382674873066159120816937694930633973327320409980483601856543984119378286493064416668230224878706025029790043622498559730242716031310272911955681766487361434092149746321272275772574506175866599828621889915926425891366516353842888146677831616850515368118725518051094480656857185522709216866943454584063494621532815099113407924970110965281859718758449524290551442655354794992736062870607536804240314687718536506247455893288029400921662789776445623630399888737716565726930020513751190359560676795595296240803177175860560419714306385688807127459498313060988711790538109797135769972238933406956013415903398591954116703154761283973978658005130456928417258706373107783913401582497777351580887658689640657174392091891879957350551794965012206011034271376179314653632253811159315647512103402586496756417566254799747439311652207610755146112610715444686336231349529080320866784218505692770830639366494785377079698642800681167300786783925159864129212152387700338709090539757376262904223791630185395070790925103865782211447498176111586306361379515486202169727321628971417992968180270004993309529066180220345309652805454078141096183291409851120668723227972878714295225483126704415253264416852413685140997339307389000941603589548150456092236234897626415898769812368492617663750760533648849871660060606724267832408004757089966621256788719707790453776656627611195328318232527857890612185790310772985844253548221799844668641158709122606290291726974274813286725102452968395250831040531472388707529919259456649478237754860805057113378521133029171341422541468694574561300850801620306504432494358184142892744410471417051817868010858244983308529429788477634776279861369589291330922083989266797288470261510588063780765918194126385247141320682459376108483299475682441900313370676498777096157886280253652686278149443985057116622943766368679841771067899932221999165794356150601849031275914140838316419913080125816589059137290943231009201253109881741875556275476552165439986159294980219123351968721495403043557596574693485714167992925791041121649939169506561816589241649886607480302515763100766545700951697371220917202956109598328117080948339174516791469215489100223284194929704297135217507051844854245269251306874945820272564016510869299341615265340121767258298972312586020401776123123627635480181915205888772372660933730917049829045637795101723621364640199864579310396712792426167266533549667342977961012403725716588278521444545616611830696917114724738944833642870354725045024726800629399645724491761323435987921987267119159368623093850293471171144945951173431617259910818271250633974871238421602869239923471340480220920900797065018246870269098177079525854863195048163227853823713210299106404573580516987564462445311366809858861064307204325558554905741525888131637803786494546153510353412521674349000498328086780414114469354321638537870124517694276828578571696876391780352035215385321180078663816191177035498530003995907089161214490999105177702034063348966815495051823618939003803090827257133854097585943498078336227298531178335520330109587461263774159363736831334266557004619621577285040314429187386954755759747207511107343342246489364955121886465000917027458926855041349226877315948715019479180781150315041450896204531113460973779620178692323698068651315372644445659779688652639814186124404433444134073146427219167836094225793771842967842850262478084888351069186378761917612035422814216211834502803779213014387996050327098224491155214387988776087804577376439666722294742007518584646427894148361535077333629580534730028910321801398515660870838428780459563791541118733175858424547051007525510510099210094300529417232236746168194033223538688060489243655468122967871802123099359572872276031775099075154339026495284141900193729927954115750342503013084849752548013028006028858558217022630489104652593791904681115132008813613634232128087022903628703143973901837825190841985480692021994032158744334276735933377938891814220284466373888532693684967492907142188938521974876468155541935080766203099675165889653617917226997393022729696939006773131275882033012776995815950562794843274513774394277708316576106377511816976607215941037549715506966803689035464675020345038687866094628673625838640458032643172937352029247646733885766775912703334475001264029426635771531746973528398633009659246862896103593994150369572027527697580096281788957777155386332007623062010190788745948232740050633712919678605491084193725074730825042181911793464009606637164188426430736046028094756384181140827773458524450234958085548354960598091369004242503189074997549756725411299744605166295774310130611427801963164048910048168549196591558869942869725866021276295431455490428757576386294353626637768907929293216279755705294790645457413417044271726554262139403421939110364348395243617620306829182590389248187968507173268767412061264205724301382161889788551661485423854228677635635002507830747651054892568880535397458195025455953076211065132971699374580192359802222005614282505206436948074875206724847877010122922574545772676868244268540755856249316337502358005773898627475024826288774778507492708315428700883998661318714293588920481073088827210638829162818145280515179136827376875578704437777552455389895433521107728758948655694582802365863278296410233777306882209523963563475989715932944029949950427424344238165618054925497601272373315997107754831935535200254593849433898105015602385008183361994227826737828663453189835845564322318682269154621858533917020492542917086348379605291285763088094553469843441839785240284776475835090892594077498567236781098524266155672368195747816199829232646302299568634615306164287736692853437393086382110200513873067588746879299367017846038040793697653837232899535169053340193888420500531451918594010331821896017470191850761643658256891667433036543145017921346471554154429216591539883693813613733442406190882637607378295464613350100385779100003738584916947157966541466030701305082345916379861676024816956403523487129950215349993231405470737533373558968689036275752337347564238748757759652632794302045924191353470507085460386749116369349265481416470120775925366545171103560417245186476134533352575432238087547070510890124947860769361775902630071276724994159392352795818786835784904736122963113287456268163742503547100114445582196557488462440256970099148670927435861556106685939032373357369415686889210577031784224283047887039526676755696643869200412829793877660936579681387300069724002441221829095387952929212371876643804490296551565206253467315506220354114152688079081772161350643821544050265249404993643068934588729998228308339890092693446110144953205987824579921052767977945853822521850752119924722867174352993731106027454450210818054888280868189529206670239884587343533996645928031024326557725246562394424612580086464853394976458142743955772495848920936012042986811543951474377476326829285598487289056183637542071779059380020812003190438486463134265842168709034384997096026338755431418769760338951645661820677503847957236262784434113004738440004152682796500591801139633364408635844122552729770775464084381884840146585381244883570612013475989248757508868974250856724539115531095919490627713268937090198425063036778058463051191093789907285786399471299676272878501436127861338882473178193010444789354698191971610567264655188337026501736581904990590692727356348696198865855251662778701159709945378056251774739421104925548135597994545663477244149095461280206409482341969995618013668768138877042036860773491356876587507158603673347784305363290370705235019083224072533757931590057837654546333265157020814090073179912395789055182654526362490222427301574497307378622151280839925016823851910771968216728421177454911689828152488221810148223648307875585455894048910698952255891734066108611866750999640136248669653425409721294233531692474804708149109641229846797045430795563804820051916238847787206657033650836299182817846766813283305662597606252335706520500967283604175332595452993502381068759292075063799112083049932077925117884483145565767448190904086481143612472871384654081252332636144800469201954755403377036297114991153567495670088972312170796211567898498608994700723719356767218879406118363034692073724107701433777649856451575075059725729136211994798395340562121701951138491118456185126251172591482179580908440055332694286890052329935746320034716917086791553337427507027814840937946877174912450021149391259273239968690491995786256151361802181614834536973576178811060021220406815943314726045966874942962825842579416348792530154082171082622794276256836731525641884137321405172047771349905133368275674497514270764261578919268265594637883578012714358473120098899853703765556499093292135050924512826429374753581130235904793801284057080875921632774425233891032296174555414003366856366122160587030762560558852944500795161072090442215751342783993318415818320893226054077759851669104765153924793670173625656792351384385703749869382969329271451478719474386361270090073518358590346625488121092948376528163090619236362523487018520938812843392781375047820365714225118889799382516104897363978583018351184545580369090569537541615418699881531395266959720650287138311874177328469121425931498466207036962037568644526846317375529459499773960198112683441563326456524636500127348586727705773685000551930073707944965348912618406672682020996159568518917993606551992180179381313402688228282348013892216274658737805322827571886718412332240352452014626766926501057419694732383180397287901102589484102841856500401943739931173885154100058966017459621210513500810812709756261931922466075067962389175189840797589945613287905547606991716734516159488334642115058077829872366493976041423244565653746915634626995774883522322391451098440485764372871992393547091084765358949628076685633609304991243843753216544395967775117877145933387833669267940062656574508667032531839393722086083738329505613307857087732819089602459309478735061289462494724213018003340042907963938261949689809558589216480283552660706952152222440319798697703893241370955162115167969336800126909770801600859331742371957038844895212127598169600675865939948286904787940692290241551187403656523559092993877003925094464805843579373231499152254222177784993990799018429040636416356069881066373274122232286315360455043397394371005504519015157385162052689854804520139934892364810589699365494041896483139456211139540698847670626801145985982804436984694881286003914160775277775899679527723073303059448454192680320301432763468783326564013401958131277047871064740598345763268613558298496225922865932843752257297311846750957907410565797588739533722205728916216284925478993706396332513425766525793699985538569806086764645748482687029854403016038366808288358092038350580952019398193356933725820673031288170603210319657640907570729931166046501979918524868304247661956832183803128873702134456657954182759504056620974586269857278437956342877462803713112014117300604819528094834820082127413275381711261006412654243878149053109930384490240778260586547850520608808916797033659946670340491971568404658304933848102338490072682280614500825293679933951739909598228513023333086048034400668332600329240194181731229104048261427561590497223024833057428646529180935179557091809020155274608573005791080189812295854271985734272789305589612465554579522428797172308850910827367766497554884240642957950260480072375586006604961922616505158156539996092905463526568928491226180761112431497740945619493668945466967804109692088389583371187481209321210726069664012342245697939671350088726106030478321918355736193082282580177489814161730935768620481024299707474331757627117830496603667281918141841353469380872828301986737326114414512329277896744749556594329124302367478547625883200613742499909062473516769254650198299625504146523674406069035457189728681947808340922172381849279699229340309826832651114703132738936813433661967404804608083332732816667601305728422381414365057668937849620559314656804532687186393682862485031238738161677530596855176521524245358932125164827010892057592646510592053236014976166494679622120753872667358743193780136771575794811891782802799529149128724063988925890940710621959248286380193104520893578257085351058491819393423867863606606732625011553875405872378910584784054786739855360004238149670011517973436307416851517278153170565477073146111198706614928213152767172229305675900220977869946154760021804795040857017200330285564894600732658494370064975359336278537898988575607537242896509126798407202822757755372945752076056199031459125756105586622150376973244332073445537063222862553624172115219371394868255865144325332861202427829235459292647296412325936885146145621201032973959753311672770469571085008552126833973905809480068529586116981791478453492710698560089198333239234589668807746960962314536771254572937823872462505423237923337068709110847101374932979366270602553088478386618658444636753340605643392146899708925206636152044807519193770203416229495363701673076544246629034936021656135210006117384384062314006849825807845487656355195490144015844147920563490632468689930765925297086863060673471465562266681703783499115363411602274289850894634620537123552853933601572609783525588174330974654435042138896665967171132450094528106120701563053628185160452605789728225264630370164201529926890767921642748062544698345022150533880285345584882671497412710996574243644609368035233544559403390513495339700855638382755177381190606277526709810643694304008081023048747539980444359336135060759544601564847588442954544805897571978987313181428358587812214733708231121325813507217137767202896471873779958371701939929320807899374131529867330828488906553302610186971687771966470547267265554579921960536343906024039275508701828557143960519873477998188688226923608558333401492388711992089420439357473073100055141060412373868216100529436398158095740164963923569068875242242903232427483718226221196833436228876457317048312323478571032841077923863398276416239024296036653167662879699139815830243202335051453017773895109122306658010371698308948788357978805427313755592800345056583554418174487724057033786564839339090044470316461171569291682059222623287949887337166240422886692090170391861769517533497650464721939335201954726708704440548388543254237886409053039200093613029932729825327767356345465224974147460848222259409994585905195133336897928403944663516677252795338477215350148268826293755094280611416194653117785608758818624671019955187380883575944700506896400471500123021254461403236876119608069767765511033280106964393353658209035214021862117989729998205168805382668836804524340181073080167014064784976177500126752502682713274916007640626979066150139799505336941512603996295076690133211008409479556038770087477243153822571407815160824623222551607531558972689796312156106908721951722210309587656153112035061295154675287247041772391448128790321697200429836297791062321499040062441628368485053865676500680701515665229721856762726745406115367205633928060254333389048305438287073981461690313137692282273142963076809531192809909514933984950851121597716702093467977285508219539084727891437753812523079933952688008313880874405328108969134467220696650239933383388347717839613746191323825493323133789656318752175026698922811259800845775347841847994555503445649791288868973403849680848373550862978125147341196726666000884626788777693704038279676995829418984651174843927938904984835368336957506166658837493560241851702072929541149098507884707046935583885567222487212734139030002815163463754925639475441460424657511832671021917180553933881821018595323533396710007233902209179653454379693992969365679521936852255918621399366827796393805933697431027141265208382092563290786246836198870192684890778869833317249030052143174479822450552515002106740363365201288874962365573163134673645868253216282491279827603517464672624056459560129561034252330990764378039595831829700281407336390940817129890492996654493880397486338948204839259173675346268427996569909255713551061204791549345391352989474966312886838467702641394291351062126043538297976425431129826900734973104158184295217168306006361429668853349374008281173269882704046490385018004401194841227312677621161297402889098195151780979544159997568807563488550539878267220033377635335379354125666970886414647178191483998819345872363976622547063846212116280190017633435661519395474186531275150155337208359051359938956358423477852892176206839216982372791518153644567685370507008102826925568435599597106518643873918287638398585684064758560477656304407600006862028846807816292296504192144989365818200982101021411635840332325477484905153220818734322649022821076639514761240006311686232654031479233666760092417597799524546775969052294879211563938789175702176548974938915433582643252295828645961756841355281599098553646846340950158913766566255904232608371811233555821541149107869077366534311543075514091596349946404171603566273042257114789876992873136662985069658178043211739201539932730073572375665604602405255697321942294684810302287831569112095608329367817552877974161720586796042492088645609253798006933093776491666356108385440716396205039056714802034598943624631623102375585914618253340934905523678083372606042629694567787638957104346663402348937057378944417555826919344669543145674583333111969570114923012696081200345921372742797841180868498166811415897863802460580270521567899973758695740420566079418209361572916134344825297452481197802521908651237955394630893151428482182352021546730351813129491139230976289733753766544147690031500346135958608374149936292272722665474274668131922514712563709244467188330249689643445262302427016726721520697253154112249247845791069811602454606902569122069483237733174129217444893639218316681213150546397655000878653705288290064924256155142950738875979621998192622523206330127058846292168059874920685928761047509316991720840594602902953391374876657011681124028520902617783862947650010285084021670309586919642597909128856321448562083562139679409105963309761365768964604239168250661205725060327267261099860935590578235296419076666795269556358852398281978668404626312543725896975783257412164011493445922335519949400397682658083703195038634271363919312281276448863376896037908280389508399330154106735789760569314690270791214323493055925519028534186675294005644932168273720340453794324645983319243565881521278168233841391729976034391312799241238682541122543498387947886633917756754499221411925288618202341804561651684252125786011217230214204865233465106562605136976681220272100225791899641365771710582296674812935618254317728906232825121249169210331682017310528545061554848284324974505195072720651074428849397896324492843063376258547503026539474471668580550481386726160183303134988304606891471262016133036526600234484876233565380801463726351972583725158194767898461339988381182007572094355379694714611207700633432728690039466498068236244225841452983523716331877093858712885891901657206019202560273410552719196197709384738696011267499487753209291773909758418628824880284133765478859017128923461292224163485819815677229589638907096855392023087995661443649818247775529527427110516071934259314300881123307724759403362793172686890119964079362363259238810865644893032561760054819155588982709308811829191525065582857748927304466824520778812828485975802053827982395879388607229896491825365259013890255113779862865219641100311144620675838671112123533819169139510054931552631874990158707417998176129221587146443692726321962851759382958771971794466400513212844653089080881915799014076436936447860322929092135780560149432003816244961345211161580409322679052383628926156609250370144317876760424998952241121958639927743998854844431684073812972109987636298105476769286664048302595613639237317130556304089351233902544403383935531281910175572936091408463333044459414558775796834506356723695779429598743002637340054319048111285256241910942001278473654849704697853900446509087672570969086144018699491318254008541191422702686342400285826408450506577223321303102490853082472288244287786254747750117737747907852918791145627465185209104806119369655798817221113434502289815319560596839016029217429391576240522545219414198582920754372390411035531277964804211703940340391741712329719097810909494377270356033412511897414516493417205400930295393882090894449170218052721701625477637960637764988683899579588791552374225456233381600222624448620350586402604069424237194902812620353923789286106048528693084210813393531578557989391254269301743530163408368199727534418520783763453130183734527187474768720900084129741482078329878756297989482060792201787162046471034891576117837111418440057445783669063300035560381085551181953182129957240842481899904429735495439882073453315364496321686592343588456572437975150683264949663998895173840790001451181468835764007699143702928927431067996511795094144324753680041651802905606318160803895620173923748120382448404146861966730145081618107639279005077938326941691423257744511085671272267448075473271413707119717548707181108222413685070044040424965140300936949007697993437511936822755367811717974276294371962984856141663361846595003929801986982912353589244592489878809234647272960010675127005285760278104527535617626267602297187117263631858579987672124171557263139792843760417598886115951792130539232527981470814438425984669685132761482586644356239835801778303563796915063850166764597305435633678959258395984456507015577523935580027571242579000441087523443903433202698888293901543961550410601376357509777127037959764817540850539561080444293909985739996711090245960575800822285915077844988012589276134316417515055599407371696788996248829702080353084284558463833446332172797917687242542889780599462356299129071245100383026640604310253291000549586744125093830215788058193628180302133455515604212155932963676133942942473153453429777994357545589220227230335492515805568361020149464697166581196136219783672024312169210924430101463375804610703479650225936013720461970335106964260242468763974510106996634717626366833655456288062917858812627597600877172802750570575125439275459336409794077989874504159270954613908290506715925117082800519146253791385323684917080031316767513161497662188764648568807257668944274005199300581414785252193838632499007508934048299574296989375479417416641197095957585938401352646637214588394012200607823915194521107742093150734543450642223983103733218394195560113608919885764253960337602109094582442003316002279015253752073971310466293487170067901428382407647017444372139553587592670256687190795201941926599076459038402749453966884292499737087603924718139270604040322749234390995149594291668387653526738352211085595405032712380687285315777329210057499827646185524542302138352889930833201090075225003591527785333287283734811152146129985465762195316441969519756779729350760513255685095867180781078482375388653672892782944881371465148631779940514477873086342666638845672330181197338052094019709857031047471831258090411429166943081755481105737821369345888266340706312369327007918568819840686094483807537992195548812482742230045606294589051438104973831070783642458129737403713435839360016386344792337772221349192442380000167745670598412127561325910450335828396533977735576030709769446115270600964839935620766619247290398709060769500496198109203015781834888447568908401071663947700615079163820507266742631730858781883274378679642243370423029717405780114441330318259757547526556787067145399797413216198430666137924692387898585359207735152208483700752797382506417568826161273616672374901414608226430831317411356603792866201215008449220862985738315953107571171303793112170950859862797699294565120939078700175259417140998714806712655108080250058970820458769378306894273267221416754613523169433595772456346898557059240291800129714483806272294508103916646258044633416930660633256824878902661127089452168550763838905843983237846389579551590408889915145229855730989986621005051111761436888204880674985616270401903699888879836148291467455291332895415323520626532632861823664550649907866938350473743575158741447733565130258186213487599331848176912587544468750309006821858021488109999902500477786406278701307151827800039985560092168187246841194348429233176034975232341033304108203327856259809350144023682546045603945453355503657175975611066780583408925784452088609964295723451122726851802960109183936396994848848774416191215092638326454695536592447478277352394240241150470710896165144019159269413370784759559940831602767378253532862059687746967200150126531527300256798207931081845059920673996147579656080771712590435103601706298112584358077852040778314308301341597800753874707079327534832069761002934871085058215101470375844911125969024585071857614954369134443946264967458990780210879329195842852328409608433743376649208637130071009795475119536589959213584720289248627829648381425566414518921564361421233840459957452447052187486866302467011127504952757053948930022803372513804656013050694296774096549579427975710561359397144053262143118375170091459545465134898147535683672842943770485657897773198159958696710611315843979229203508242989680354385042774039196228937336747480941392591462795923283318550145517848311158050672519872391551620968825944262026239001232251786212136018602595350924694033902879897341081517132255241382405844240318306203238291982024076318319265217791156827892293385017634395451834485044543959082572831970871463126585317822182611142872843561708302938747336596080331654906727743989810171228331449191178284850178968893833792776455140818349313910655819020689631381790949110358188353290644314014836423577676656875133207830133404251279534974164997769030351206151762628757103954483462798232196433441070761791933913437444566765026492345959994766551372549009308914346366730871416453776268109505534340721380632111727123235364954514859743244607913901463553426080639329013433794119974090577574489144720401776259867354563087151274487339765284118829871152746345020541728166799227414731221345497279994310123912622283824787697152225097418446150550230977520383614485024497145320133042698322908536351276640570088271190030969074175540488360910885193037765878910535548680312918842364256719365686268410697852404944298795674114003976136968197777160759869388425505482239193532124270330180934587472372871689754087014533548319843756366160963443575104390687842710418662458646773002641878500023894006904497458998964383788450642128336379978246531640987633440137886321504779235007164632017118720353259284106934517961259905004969714713657374296902949416847969980510425907282083299280772800102133980298166145693188403122273005252523199984078579507556672736229849903782929244256840854991112983265907877335793665606186207530676473614503853186666805069869008124755780741636414610875703112094980450597425867312959569465439649852248832111121778741506101392645392497955972321504526064695490034661163183021801112072816435474467395626786993889418709936233399484281458556782515092592545244393361432123706893447177949782168106109845767164390816064937681003236463499365870737709793789576933255485701929529055899371208672425149433110115142599750163620999853612330126249655942784768665192230856259874559123409963116675790319625871674598419732156612059693093618293050728475182708239342509233149232747074864517382036277750581068977383534637392248242936065667881829313876517793045432677379144760090607785076809606909622257409887798243904788079785319602029821880114428443890614123377015631116395763016026872060571514600667798528107256439329407255315352568542526295619087702396294986415877300761652339368680306343395339372145356861957953783143237024439197432287127660135542822783749775732534037029649665811362789295380870344377375416102293158261429597198575774967772954483770444594914640299430141325265953473063932078887741303812131671911964448878919263923796542596935372285065881358790279794730976532746096754517554444856199350828595218878864412725266412821725169685547807208700744825514437370826403126146442374385026433099255614470741117918999614001328458449965975825765725988408155266162921112435047619663393240311511082833837928074112955822101724559468642492411044403745752562430449901963385937519928520559181028262053303539670858850568301170643062412581994499994871112655043576059690038119309422919190028780200654935408724145291323221412979723616311568104851611012009078754752427726957943821786432055160762292015105897549843991581415441420833470765146102989106347154928280963584384180850471411366099762395552876255973217663957187394852186090199380578543593744923448776572172414361943916151367702480315672129015431516767789834853186814184833753897762650700919148942912557759276764670639483129454086396171540062480168335070212044062748457520171110954866623247954897886874266161050630292611075707635657132729084509908995725724585217125496149390567820541006947282750580903535974785825085772358030609066637551040106853854133204790222532732915042737353436894854636344586931284421060764980025462786771923492028878291384468288056291393711530075595508908229595836228758962108184454364119834223121644070385294008221521328216042634155479259607332453529100380193735517436648801254087643478256892722467853507633433939281412031228676001502726298162350732284036953817501055488350025479014603326077684385763980977521163585814522689204099103091020757306775856952210467911629693922776257699757056117329980003583283770517008974258622181315949419383730505081941182389533102668658340001938410324481335581540058368656281591002523799327474990436809442477604755679739685938285258595413936550819657743026075231146982016569716959078190816971943000333089621083846182585091482944922259946548029376512596028880953120780979168075741004729279496359829443991209924422895097272711620531979288595952518733266056575590382728701016337465080883138903578987066014495133693363908396983536277514707099291208104701530802310060353836561582405446724626749956200204159989762273233528957733827491033978979639409867869309857206093996316659197915000378760329654645414317337786811335196076415422433796491015891910256521325968438313872359101091764244947482590914917339662314364981385058964866441516454851821504759773028392031884160169185517471816670796818207415058374524239084020116162015595896590135074584618561173016221951281189291604815691886539513424813485269105839769940504916626490438545704340378022817736116687645515424101984658376136397372316167737612684874182820624074427455165131414607905445274782266929942367178593791367006296328969614227931010346952539712341048293529184037351624469174813794452070606567099463901265635324069273827729521049099887572829569137794599524788935294090374629026449657048872702071737224002944156452690278504747793032662715616572518577554113748202302321413173086295108390132310269156706528279330554985694435942320267170478504134722890429844444991750599592653375050349968827684408614306929020300108471799992232962962673211469888321290616734718213679279178024981202039784614751183596395395631387978436717263325044883131203037408652056209879565451573922433368712687835223978281986307392019415852288320361475643352605340475282267288869066922197788720107524986045758370864026542188801594113737894903715686165878527126011013583561637263768949132941763920032144853646260005150062860143796359804624082957500572583312312853545415564561380742548908233755582166375296352275939765339802088510335885872172454992409075361083833075357113447179646871879578121576009434035416281338930696184038651423855628128402714191840847704578017486705810708979153095431324102735730076555380781386689479997404127904954221898350923612879866033793411138699466124629347989499460001454523188957998685337342902358237354744440647333841350164966236454475687937704582218282287140164641168691819667514051519121720586497114277438731262130283913058012849563893180902047703654567155661644014192174942056806941981445558243102170814169160771394893075238835830418940890976688074741397199114025859468163200710027082281501129691990872659579542142265591110839003220521416096333762492484424665448568562079989674014052438608767718856608602078856965896206135661320376911458196891296426604036125693085390299019703847682751506444444311127396718391651538231701460249832041255880111703717807954578130757803649384995656786817096739064483534279317462855859289999790421214549237023790449497829238324108804774567229381630281197648980387270179842613479541132953297241603551284551881925723328101368702331723058655888710199879705005537746311453534103732135449516976920421335760348707253190497765394130641521595271263205508936891705842448235109262705825928128812467171672236760137622236418518713983175933517770287263454999699155331487660008089594312165971874939492138510194979710327619264768401426005242529908215482310436108744095551356845470906497338813992557235775728025707329846574111681626934189591696288886991637348630788041696032461006806316488014042677162854665254787205063267758120582114959136785124873101749432897423054781054739539617068525898836796970692813292896179337755623956464900013744697812149017557140032302494124074240703622241446237598141404160431736354272307971823789751725125740757078747276703441089869304995598837026299668879741652232175237962878694320187186322223514629772442787284724085271000435040662424863900827601879067682201684631915688729819724924087520244896687747536863364887116610340003066419619403355720269785905729796222872129032271926217032988438690512912806461663410042660209632157535731441495941637602932176644349808280009326282436958356615228367101120036486546403066244717408210393906722449596679881073492201983425750480647657007522510269364305227256864761976437043110628576018182882872892805411223118962090368328099616450686703648977312506578393798155266414952972059252994058081597511362853962912777435734770356838914404847333187143177846399961160537448937897660089170930929845139409992397055015664677329538902639181139903138087445323389346524288508821647753909377024570619370876016594305615543359849563955151454982743273110850216476953560293802518239427801979954754004943023858531534583946242158285200077286981351105581477370130566769641877114394684223006783747179477757655217307152654736757056716575291102390062328888725270567224556720217720792913072145593996526448351123107092770590780659365009019669185891050155573985748009596817281548410850417107653391243038052308519820829679944696705950398565115549201290062388558862340448265028019243735855836711818090673477160914457616448128268494630156867963091415177113860112448596788080213145489187025750797921302023032108446279635835641409411590138040512959860069527240347269970366558007073727575761291450663057424804796567670541778870723374698511170582989763970828523060166448203046799063667285653232619984985185168847701861040108542981931891892568157729008336727513700075467059380252782986792135861432732265112032359997321759737363203851438263076952489715377185823280878005065903966330730662463872342940685780383899266639970661667608225408367007986204516131910332389713516137848296854625095442575834439120687068393946389698725874705147643272548541289984322239371191914449091426532644963482474265532565388526977950819209628112820266753031772509718093640171028471298274614066412371326874870599911848563936767766335720862393371672664315370063680992278949816193496695716149706760747428247838230059901618468375371478325076336918793905949544008516686842049303836018212622599271494621309686589440691133552022435007967468675001925770071513447652013298777514702433151014505632916672079571858331583845086150407509317014645340217385695567908907095702550601713162212004037758690774940555759255361161437516184640649216377204549814055930826861424975067837284649366818550703677720751505266455157681398425412996867827055807165073811584422540408808422065094108253639868836543334892128946398554220822598974708585558068786753680256540776926912202243917536195663188860070538075861304007823967431908776452851923568918250066004071417511722374295800970038303082804416497319263839195223380522662359144914403362464720482403956550135156485784757433083725735623921102833900212839072246532221188752348460462198395627128054782073143454771226938069435615185747881575481263260436270236654806741761373958892733349098277469346084945964100253906154792411861644155988358400194573705474129872416925563611730319976355641770448280233255989284606868146412467581220659303812890322383352349568296540161621050076137533307071451672112790318738183810035774650250777731349181027802073004721171861543887674338595153519846135253784607221916556250700650461822246095336901749093507602488003917248181475292579473427663080569693750381137409345090610384018307327156287387937265809849857960882078638142120689321271885237764391660917077883266930615479364435587761238530516826530111955336691156294088975329334916046678131543933702705310790301000827247254728882048611369829134423447160884284992703785554242959021914998618334784967932618279965013396086848117687257161360605390603412763352893662402058849564074037437572776561424321006928078051509839976245940441462753220224523635221086007171789569310420707010292001822571569937983355039621996693410950778156451949791226436882871212504593114456866241748809619712502019155176391144473499819822046644723874304740936548848753604423856738799504213248117842909024891954107952519420051118514916848262018976703464702966622392009795250291611372344707910994852399254926522843826345477753231550819327159124701801077554050153230960786920454896134541836599358535288731437952433080481333209899673479147998933474643204815358027012784533250468539696136700066251656814063092288507878102610881684387345681101960323293862213909212690824887416054689552010304709637593030154693260922914934501858619019055069209781018667184439169468934891472274835335565847040363439939718777715553416989468084793718297026382187884502549325870493364831442957191666560899192926071004346177742136663763381778588892291524209661604809524398299645558740565594360757201748878638513580150304901523393798692697927578567277169317605721519962495089854123456939420663148473296858365197718550555309527916872648490536759964289901327039423183040100256183432967834699790273743009627450526691553331278963359760145090064632370685424452817484439089135835643041982151845764177193200124729703038710209574005592882332749564395381075698035240335889115446196929574756866996466503997933690521301030949535108952624702421767939049618465196085442188720718027568482957190050485293460131547106111674328054174129034300858396836611463072260109148384223608747539859038214823613007471816338277965905457335972391897784867256520336221889750149802701023489791024264800344020738441975598819858775453239737658436700644563816230942908438505617307771440290385261991483755009080670488511558671364404751834445252981311605735004109464358591449086344975665932184106659205135314128827300004665532172225678423101380249396337044332280054051402918609025368482733601582475671629250434812611249956823987454185276687140942435859190334481110263433095139594957513411639017047390459396683153517828025087956168524998737679536933444363040122811375561952153001227816668795193586634608581851921259965976512049423630688567797458249482141788882045865885179425468315350017276742721838846359563533954991843049744223041337218821909816935494627497666098219743532905966438692111605019312627032003550084197214577266103241893616954231587214326334890019358829199301186364518257710171383978263950719171870299808863644338066626140546538681925859738151135212390079901996201052093836859076466242035035643423120846491080259758540056218893520003338244709129819861200031817962468698338948548440009451834897641585582985572359743971611998529351649011208362158154268758351728887699319091275584458878268457325544879395547231437307160858256313000336754359665646100388814577954639021562477078366645329280629963640197566166846150482505833121442731182143129375237406826648779348670448538165358495039958303747855940729578194207764408167060809896343463846848142788683422558506197378014257158812116505965712328141915984303919778948759760011329804852345022385231591199113505767412154564791079708280508486698968249820743531280866752821026154601456035937084958985763344871232667083585525505046686019837729928923361664634802447688440613991890376688099692755082690944933960246164788504436775584567971758907654975303065683957183223412259528270626567178330893900669961706140529265286955137336079334312019021426892252766923871723645530398643952434381311278697871654698741976511825229643042507442462099922738875056436441228679458389748524595662015452190088949180881245882074712693091879106427971728264843616003756984795761192632967459363190999724958012910803735988045017458499881666125716226342350555469954896343778307470143103840011680195112433203516487872663407776909104445461328874229946385710308846061514199874274704090373518568375213858008674948107866665074413378134554045345987739722446514417709043808414479617652101977643579723980512057892827057795013956725919064114199936196609570294913784673693731226928288800900674806551394579034361178535585727457957447069779777620620165915081119353027909762324287684782713078778166430831799075862521339823872340219494389018202581142499596536785776955331661778213610747754284190610592717082090150593209089143621563810559655800740149491425242253942836766702030866100038067631499251941597481175493259303175085688265392779449580772731037266555056851087816963044016400582239871997092766316797853807619931943892808012325184453446504585508246315082704951815950602764416411995513378648428711360417322993596868752052352104824742336116395867566916166516027990041958304653634192395510218207826269106181962496640480913495051856537161116860678006596922362817039245171222117915167531396677107117354913404443662235991787151491755115200772523144933438490398625815720059597936478792454296690695645598962913210985299087498009891045501655441128643542031194912835133962771772326468187962428367545366468104652474189824837748398228605089920308086036120512242279349605167989272030074567698436826934507345528625086052756476523435589469686302137162961988593377914954518285988615211303694527628164121882386826828222341292156911627192626957296722923737253925858265354057463563093405691382517352615273453825252864252540208531667706616302495455601643315963300149490724486225361805359422302651576172724400174274928584010765363411120941334329453198329405850321370357087983638366748152663357526247870545638244368680835932757040415720055139744998898752180296998278550505228460603674899845104917995552609694753859852600684616662000415597043194802240186006629674096883274499141297343645534241391585413252525555564891654166082524504382827551674607372145578623788881238374574079742882239130360623292126304264277741135778594142313074805683416055834956623753805432842979588901530205860085279047255898796951466593149437415820900092898754365829863710494002097731455204214854245622812626264804773139727986740812407393836392222891345266467741087313412000667865109794004783170463169485725988835013813508109694787119034357609245927394491405368780053593803391342979637799779997135165925314553637149609704820130139271085105880654466142559718559376384513147413174453282233547787512876856988673497860259248004331434907495651969131691656043712424370187181986580571086102573556563318129885800853922552382605603316282857658998904070996583640412330858055571835727689743464425221619725315740933484602202755159132885032090436232580167399715169139123422509589908180944129763099138401466055721282741497259035629365890491326267204238273138358210359059773112741264117072062871668896461970004953841132450401875521504802801387816122303111746885771528241275294205897194850875315662652623770940057807110088331532587673505296143117284687617436271473352128782152452649017111081678819838458092163278417752115438961874946017049165360854401698473653489296951559330664801939083280587424149917779446197235259120045410961903759031137631980981974022910194577328505834087070557584684995464655855039605068608953586928637617212738694802740729093964915485317797305392449688845078830520910386113391989173094215236302917591521265807437608921824381018576152707424904097142891455457470451311577752870710925672541424580070885917320653606420039020748332695334743663726402773276199575484982728319917698537468387458854325648663945439353933546363112097923480889329014571779020406685282493025015741945081403941981504217590262689309556752846716958504058832898109602547208257322787166847143280767727792693073920609912684599768311903424786209828149060452336562823339747337949093658967803453968422611097333549408672558167690763395506331268509816209783211474089477254913196588781846609159054799367736509620167651988402622909998743162362984725926782976550932634534949233202771913248959651286407135341297564523076316320753915382465501402281450163567315087214147961774531457044308642266019929337303349318129591614226418559366528340437478315190930233834464787444074061019033456845435806101707920607748767436577308367879070663783083049416198027806370882160756084813696372909667478001879754132608258772233608402508597699368596045379930069993608368005745659379529771309481495858417787713616382159124096134758091625501480487036129348489637684920202454148589082481314001249212657626986171031200118766428354613550054040342075878797665519410151063341078135021189136207927290874787083080219098203953374696484384316471763045534026242351231279154803396919394259426499592643302304292407596795316569803739332125833591967782145333690507831375689803646554030019194104110136192965927811815780776415971255873192565176379472711270296493101366672302779327835525137370696982869589474128704483768214478053650821624774793164056585495598949583289560034930445082132977319484238664639704555740562313554479028146656227771124588259725977372272318743489304111687449045330567464305298061794078115919008972076290284868196786693344506903100092415502143053809401991790763153406696914888787970927569692690252716417123044685819516275113674589737139892176288981068543853737344512132825633152172984315292176778564558655979889064575995483868291457945287532174378833618810276281897613645495793668602354534626747041348089913491521766557734347344068851921196980940755115702461077439628802760079877987208730095967032671388737934420849966736391844644225754722203464079219684441171467187378028547081897882737079838039662050946536226193368273405695541362557180188664823566290000776471176959338272611119525951202057620554231818736313677201409214208877806032128371045609700301757259131188028399970874886788749357523511957762814084132071319725894685657796953357155781493757973507086713443760819415094054023066656784691627971042912229937985491105569153129831880787851649370806090735384656395155635446044675370444737335037903039925787418453623863823188532785946412270970106541905664686770884439733364751119730888566444166255750037848034864615952394878311151748502318220557048449336802270657821730761386545614904564684800813304170123605010425970817407105055029428637342075256307379140779520548866201670146725322657455464494804089480561404721026052700364890507810433762318584808627886071988253842309629947774991041472658418434300920997496620909992933167629793653778562170169373549483838412553049033562457922868476092668238162684268145442326814202952462531259003484433192783871634184369310145201872331342848331285547644703389361176500229623277663144907336819311207422671432014961851814574110188121997815560314769327013409648727511682681548139977571612780173568167939577392413562613259528364195003228672463372743596439274779718436416855375253624018620307653278594104537428687834465499319385962288007738831149163630164009013227358300581332143034213132271720137411681658323815465096157787682139814691430251737132260323004553044821153278839345851906603808132814174177128664777738148774359439388957009976879604887328865026040805017647249566033681417692236508305114505755731684986380109241031801192232567303057463242955176653583201754075082260743668947355288897059716519987157644865958960911375792520332611853546139101838719266792160949618289496608551361065981168297974856110779117979624669295766216651549270481427604021802623459360366118937544535456348528129071283598784147584645634060124670050793450791485937505761198413436320405977639980597854380591242747384838950150638305814661157438433488694225090083346780830838668793542912070612388826690713714804013392991737180847025127630744670619650570372644932586110940990379799690951896510106481179413022166262377754666063646434851270365839592887668921097974350579988089156766433874727254703681702530215150819554343040055516317950044825093940804131484290778790830426693022925383162496830590333241287895546552295555190935267850742016108446095433173403975684239703306293150322597646312606082906663058477030870077626515305644065073737473558577153453017773804227369245128431540408919362477707808054902916073228521795584953211380833378451598429985808768581901448779662823252910759892811335523447252630831746004695484791377422019756331782091797013265351288201507101578986434547048855540119123757463116307274386311256132712482618650916774738962755390303367982892757834895958444772066688890594725298018966820507191884204996897461419613550641660204769575292937701718625501713015183865660534636685209360815684404897182777626029229459670048349058893399576048503827032633806719925252383955764233385070015758018365701857729501877516065027323768130192140505170513862750092867094451894094362204728333068786300802430874569800273299481386950125238381079590749038534067361235515762220128312624410767124426285186199440847227066092518542570637240731387885452324079716861897371019836013243675528557954453244238210132749383691171300109097206348592880346785858415484639888682454827866525056624080255352958339820651816197905419101873360419066658847468664949762496496898053111666739733235470041936744172890526483050973851383117768467606145439813182775362219813063593558540865290926668349157940756541470771873508032835519593718611087582770282074410283956427127890680032727138582935083088096065461375945372303723686665796689882971180413093880712081454997913272345034456022959242569954780729651217795933470013650434404477792793141663959233379436938217684176922494331171612666262822540255151614219537777832399560311269616794792410765797741387750551545340757509117006950013631092822221706189304687573418642508001631348162684984707154760807674854539544236676687892854534215941256395545263641205908834775900704883152113369561595524667841644049336698202762916646496564383670036471925305980618166394616928792920141075828698639953083441303124633253295669347738278258851084516512038483313304279498711342846129433923309013220034235973638560951787608953254414565204905301986294593785318729764867564814093699694815729672090072288590222606235360209026747094506040260417486610590642151284365831567679412366926903669008714332539735413407326844528305069470779804490757278410915699633373583299999597658595279598863059754039530672412673192475003740609945784519174663951913565535715921841789179830716206808917274074850598379592211019639716640859531782406971032456023953877515858487038926326914368254601039507984483041132097134367386641975437371734394467946921983733729499893018163301764309954261471551555997485489828537868005541630022442256692266687760212291723809960917993791209413876785952641035762747290214221737637238076256284687350480656861349242348671007062303909187244139782044495450402121185100654239889723171241440191449692676682500825408053889924989781161104995441763423883770208480235779124641647423322598779880232624753714262023631173884811615611900470268738646269314981515211955665618121115352726471021023151353038888756074870990942590086452279562651215726016198052872684046870392601395359740366177945383541961882460965193488684222596393777571797653998180090880859428338708304850067468449494187160733436049454000256461141331744891053946733515129439422557366228750179562067039302808469686147304287378871905229932887909180706537105281348571340935667096391567748094523936266807487278138894527013876468079385510651379842111086379602248711212590344972679729132482841520174946115871253949883167537567253045764571211352207273813089881813302309165634914207600365464556207367400263218797796824361345265664216108491648654704897684035896781557788362932053324883950557577860932823582382032613904926061512200512435409202197460063839072799412767841599437175693115440746414315353199832791787976251841150057036488075284583794259583848303386609543679163297102600636128423626889523260178790230656876708171153472139842422054648514046335671555997493227394605743673006469845300488709225698420642967443017114721921605406170182247628012538760547031269451023921242534217506809502230401518908565153353270823875712933087635063571737735112496226618990195092631401719533558069558785782712809792994051049251958313941398255047404260914614608638964873700913632144302934511256690679905933267296458097389274640334829919537011335898314348797356503182410274306219646000933214228085825218363557642258715832350901368611585491390105873175462132768589906794850565310205862524937509096040752476436785837198528648395945877526544730859550746340162122392812166714630009454296209154615885478229642926039695916022818781381952762115909454094516296375367874866505239096315995958548033616950356620965110667315209613397924525433412461653564390856543146550447232868556221869808963011372263382258836641383545170204012870263457161992278869394304195314864161407934273691886299740339028942049236024209025745851516006959556648815099440391559923406301940506478698686176338714790220671413146162907763461406442032200455198604926629455256966086022250316593034239541933553755756170577251731227926947860655587742433721518791734726597593684440334872681104803803338251081693383458922330124450962863702273105017226393359239912546865719679740926808540277937898768386417835970621472140585478638401959786090655780201969272120309521684726521308864669239094936928420423289474189117091938860588737317709258943633299368494267776916729596456018810657787739706575293857213372279805981524384842901398472747637608518596671090314553253009082757173683370615064224432172974145247593609450731541123236337748721361025337209089229539360174801369768575052378708877698302216147939043717898341387140077418606190089271229537335676864428097535450893395749249655754910331743292884496477826063408938411580901812129453780680615924883700421990597750587478030524981548041644197250550630882826490341849182955902364786733042406106633305329835167238048084901195449301511660325777683803505332390142715458494139490881240832751686895480688062791296646748379603570934643007895781765672108568085615634844075471524391091386427820176091148248629542316086181562965467779755464528159194392148115194177041054965621770481354658945688756909290033485541439415343077381936631622762669201701520994856207591986171465025211538247964120229210949253678695595289846398316052547970223608032182025128125414804939256999111873710291852763837714494763723718308002646765830653083560902248505078159630994254573540036993890198043783392409040052153629009840032560686846199174523249126250259385755396844594410517478621828824537040583563552592241010998967814349704750513689639347346947680344335779344398228323954043314099188212089474011498114641628908424717156305651825821039824421074766946482101445490315661514065225153428347397391375338403237671457728476262598593486982071820333323349538698840804975594509428645410806099131102378404147041526261142361819103531607684720625279731781314202469133968499616291295676010161808608857587621719938408366690776084813813056065462522642319470681474646201826777185401877600514518657752405873391332699045462772341150022437310216305601369996625925746107216339156976340868879322233070253951484589350099653171451064331703254904067460082118978484103170169776319316106842708160307005952311731198850163301413494859864868924321763344074279145283798013674663406859985138145759584600655672895839091928976961589936486906547206896837498797968231462832401092225009106648378441572992165209819728235125238376614224686518341057413973231782263071998066900668192841831531324871767068102857004644682245495215369292799422370406729105756395075839104880605787446320782687801889307534820061633944092190360878680888730976245979452319687079285742547733227852891391764453974702393681045494335604639220297068396347682772027928284853930347255532077260481648645131727928147121361116013267867580817671901241001172489622326462736259762721945210738036493581734035278174640645897908098647676919246915091339026102328791228428785254845948856825247446842987227132891000941687783033037326757208397682350962493615659012653232702470533183511171321149238245582706174598594932420328316878207036344235846069168742648882757808858450752549543000932709527287963110330108645742457038110369050038000294468582064497141563083589995701109190996028172563643954505359726325488586214826120184420522793436101256125551108058125623405021493203109055715129524846269022777355092359165355221503172738341073697410100728493889537093107536174971505057093611497248087905599424405349633009557068968476389569348762155091243767129360975144806600209603909427934386651034717487712787098459806822927327780637392308556950700063503607440218877398434688519988397023087989349822830682563569303115410072427542132331758000913201847229706265391625085450922049696766321333490956808081762024236724853086625169175285632137493315438703780913053880881388886003948210906062720431679060668804727088864549850289485518535292234498052151933195805869343596128769876139243062756866462045561344872554271658085156243911875936822926390541149068714048524159907495147817448137172017415026365397580067008062118823617312911329380400484302794645595300837047669478998221546275646429242590977588193976968749991641136111267392818171977090085209465880433904032524879196402013423574413844667739816263625429312075919674500465403611799182656226808521745579854142731366769078124235283409333709153293582580837851097034371923142299757179571575339511252389595165543170240531176160976341461430319529539401837555622786721636058848757015463019589844861783521601775739450720032783725238465111232795732688967940749102533436567795871859834784916500244603181367926838276242663016088196010290093410265821142370208200782835257723389163492783022982176316523084237519038776208312988363221385964408305505673869019542347757725955700872248166960278824762134579562709809668958834288179443714029799620197465485330890289365842887305075880383542861132547159220423454008582296837909276264309058625308208603903845122211709442286633779569175244545985744909383619014087958762375044218253215174341229336191996261571152922868326819811264393221761043259483212375368357211130841429321781658986471581941565861004814381514482319497601105923209925681916689023514724131005927405889502665295530037827092725700124667504557163770205308133000743424813971996271692483734617685700532615523546248695185937115630131593863922874000850954646345593231609473324513844231320617595210673303362953506017247333160854225021252286403791616293366539035307792718766930471237087873131144573842802539925136984295237473950570427672108764103294057704905097440284851429322031047431188961133612031594304401542404159426109011206906348474762887481994004352428317135710610382870920708864653085272725118222169262749878665677471152126448459719529678033841758640176660003833005496575506261490303975999656270601614716156975683266380700445328506547533127813224130229016047132727778845960059491775948239117097762726190988056437059876582822320981599533865958484580210980616255975773598383533594607637305304356159121374258056937262175692404915245940313248905299764626206071447374390150754236388925330543611559833659629962459773656414767177721027728415211366448550654032964953133893393738755012062262096559663500597793201900502391241173330689196821850535692605239319287700794033922429927906893481805709397837462043799704448026064231391771369749262479542875947024488705801741834081947574592654598410814488541903710411253076599480490709920956131887821007320685355338834004807189773551969296240013207259971524463133797199778997743461728201796934389646152870560431873192611849283698129588268610620822774818841778688429350447996452329703205409971491264555738731785219062138727839602746861305830800194034788213350869526055969098561715100454945297583394531393057311476667592198992602273513182520179999322409890940877650189787045807186936462051072959075536877890511861347081990008334852777769519833122149119819544259971399607538451360653730862789831733940344019237634881519100118631066541642916682912426029152103207699944963023813647279720827881846771716537452448893048658158198552674955496570690911059600693877401057510990728232651072595940337212057393912856459914226665755284748868254511588308521064575030872873543681540977784936450102412766433982652731070024459005771295000335358836800008427455379095822280717472274585023831541538041240875283322642542198762959202166375836911134210150938588706200889596331915689749421095032536239131348109249210739117856962087413930959030299889027895785482721099929264278414636192673037198390651247690143291627666229755706052688719796337444888192763235543550875328715186140077949777285261225955226093444918297756076337039011154536165944742575005401981328233736625250748992717979334977797762674396739254724280270072983762618866490925336249711725492594481780804234793742755716601752172397049319432834123357815166560013369147137361639055336470621089391970636984011915035169262146197989836673403755585666679357374607358393307436041289572573652265417551423353484937919434047254628450810936372603041035491734634338483946489145132177955545111102458697352561759839161657946827489574339115187653464004528738604471423216362575575345448628702605778637638567554381633640806500015556468234242130675765870018564361624019464035254735764430679906473684051021443875149741856972436198033140448367978292844591042026600063104014890305352858578887098081607047502804799284322525726516038997654406659376973718783252770569053461368461468900543330940715754090829602363780388506603466202928298037393464187362746797910744300453698099016671398476254109383189386572568381469423351040660066546284071333793347410524868200927071938440203644038003555499084099489816511383775935708571580926863982034934293793956556957591256824758241886777271541467298504009832271532026566709119366887854315631933834746329591068149240726130385858497121746440523679552723263697848845974113385595198641980328668690007335284243559390850339515784090608628569940944954661971687929140672176663899021790636424473761690767391568484319588812816747618916655179299451413451213651948127410553950511304947567500660281801636817958077809293333989319300712717324320001972890336994852427708477355678776178397945369908094559333701997153032472755579654151967604040968168037300342341980181893287085954665963142448215524988716310031073643251046477330676845468663134517746047224569798728544717893307409879425467001892668893669694643658665266790552220471298014262179301026978153401350774660596057417157243559403784981329389205084459962270539676700725753939139471181249743311563001765806997549912403327504223686388520330466313040661243318866909549055753442518750575126580559982729585702986799749202326212183395809701765175837304715490550325950550499039281989768337059583635503841863942969154907109802536946986320877155365238878227289943803890848055133890065015888893646660995719954520009643433555935606978779801743738415652022653106721361057821969502502931751525763009137285206819184802650908188272226408607651536538844676214945700462849733795794714356442148475241981009898916595236035270664777194399943624106447647876378143372988048645826062346732291364909019840285775017994662343307679096484277900154284747635791757754550317996427408197306703784105487202182274391288999238035113657969167359541992114449192777788123959236033368164938711941829845078839574056218518271825361749086960727423299000564605576459464563739411123032122812634658193521138770244435295314279772861795102302321015194792210998546232939011846380402929886506419440499329310889578531938323154287174613404455316886063756929247776321949000699702329236751878560378406392095057106682190687329101272854470803152183550884465484650237446915956079774670625774078011036669090176933881896809597792151038449135132119209816443467534803144283025947669552850453680226276306002867809263546228799004178181053660745325042170456764600217742395655964985803490427208617170252387800276949448812909701835400740239372674800547007971441647306507198897699956923650098160850196826248560376038169631164523338572616198442384704706898736986750284341275591075744392327624721705012488654804289240327099527604828927004547312241466481363126850348346198768413816501628856990202863134317577023656578099510669760447509042236331471641811685463953020415022950801877272022023915645207419942122381510193412941218029330158001789346076232564706915414833266108617309340236240231852487275794756210216647797683737884936538530284321848044115915406021124846381028279570167192903583122612202003620015504177117961633949008389708778479694340094406853106745053893249631182168104255001146667805934500742940636610331443750557410387556869104052647389575811596216620468541953908096524595129962938037002499864477754256761515402797610545546035960562864357294708463731562210882551502297469335354495120581710760431402961362360653790295420424220158697964760688590268420577272743575218485413515161613724558072099978080310340377205458643214653751210859011551800352848908290372994337548323790410917230779399445591214814815823761017169252947198443164809347462042461671660557735363435902281379607061096493820575068715219651622375551204567546894387757843029971060003973122431530397512568691648159638373365471881482510959970626283541812174056501768698463293480054252361732770379368172174352740491710815196804417654496258566856754415187284508890422962419170701584491106919409605755697301090071285988129349025937080080816598558989982756937234054371213712000249072295598931135142307872076618953226155815380204061214337133105714846701814602170806671319501752091362972200514397321843889430628644659900140380948663787229112685317349777366509116809997224251376273907485073106015782716764538093717876078715946647099937250276978204937491753954584379063334230219877519554975945314549147851173405429139193153543936570821493608413452720794157540228317537368733750732666147930902892252421382399525692649379124122746723000119455012850072570278670162731206453740741907168106405749792181270386386970555291743437875551922963351080698109162031761338463733351429561081018245508237319483125294924357608396290897996784008527604692179698642637387977048474758639702487061091055720197621867678236972933945575124613838299777232695552977196473739247763953128893724459117926317945020105755185570174387920938863975958354716649305714472481125219075600360407744204394930963076198261873933195813140836013550297315074208273367913626347733398217614634755392589624913542577312096923379524187363731911175387193022587306712803769953853144107544923038302281599574219180041764263152153623159342195585223581104795598521302399339046887201633573772815876110124743664415935023835572239382045280790008891262887642426484188779573093741248815199620038412001493760068773550778137649137270108584558759416309955041112889965680053125144048857412210394922566637874575879243670948857682280236049579919740376868987259367398738007090549065749407684079434236501093471381887785851549161338393560836718594415125061442209975162422835896836142812097455849386546283699822858276024222719883765939565257879119488157409060380794240113738440399252820195512820030444834363257857495293911738445793385333800263513491392435857468895804553757148943555379406985023900837711220118353828137797998257279722836852052560709783537328971818704477410025979832970031901873367799129196617037994858194569149855755309357503409111163363411640181786415340264263719504002233640297183548215638307359589575361834689705543745442916524089840492600229384666811015351502760492616922065975163193656333961776327282345465683836068831887133735495961646561213033998653189620445964307141643809785308199584377757955807013832459020717254195377048176865062885213236805694149332099900631973700988861937227625312894749887298656658230446548621748471873358038339621479450625748891529730202039572130910028341892255919783359944872050642252531844863386214028734349782583200751036277171672347683011310492238512690584085630271935237074120394979681905764954214657134507412590720260290695899457930855155360669864861067062261139558474156353854577426780636758505803022329242700902721555187593410230395981539152707579063608027042160626961353396584112661364330931567644955631574105549091527934468215700042175653226193865776047214449151699413455675070112138749396971829024576385338152330824471294666509042075565822331164023197724302809367966487235674501383065917701057624971482616225678981124927629093128717947501735205135606965843781755133373502177643465592860494790810248454414041932563350158384767719305262957180657115805962854819545072155953145498071065453383624319612228876937892295042911916530669975130092177659224952828689838060128074590859308113464134668638019784146389158586829135843933324959679423522565299326703679671695340870695335820681360287034754454582300452236174086774230317433763842783550261739521940716000899066837456652412112936570503552120689601022428088874327375871927242832343707591313073822986257354407573922664120852908434577554148955024946810940339733341932449217879234008132398892255514375404866557694113847910042194862882642623133652867552442735588311723622427709342219665139558117720919634800746929298021318046471156466333891512248346936146697190379672123450002280925739883680369596463860824428704613352051117093788343287633511822310333577213567426483312964749299602680046867703740687526773433812999222620959442924998886705756356506045380752305230794041128318913945433041215889312615856603743097940057680133028797466653331974539516115287545509024733680439175075511744222106028700919560228036494285247443690832585764272231007858624692837316731013962170623987725688731915654734750250250929315060907325177054674101082161390088437192978710473766528038028972519546840192060087938146717061099863279908602908083119941343219744551061705963614472559952029726350191149531783620689604889799743723365429413665496456553013578144186774045190150421285668861187488665360906365709746982354119801652358799785023763686368729019353095279612400359501212227251435013981903808400376762584826761212135172170674445171541659868899744601793608119128446568080020600001461148313750388186880554437930851216536283815975416215145804777681509450523466220615474710278196634495669806366904922496631360396337700212260222238354152554245514520293460334408124524652227541020839487376792920220469362807645553025684665335654739808642730580554929171428457573707854523344537885890707677926773511537359851641179570391201870332490751781056148116122225479736730018119888698071501753706478853119938077768709181091962794141346022262003786254979928969641646511298946988090416718837412081759286318389476231073927435043231886336722720769095260230952952260462494484756821761462227462483914925081164631638545200874738031110466771858130481637339729575893131188744879582167204329572005383355245383010878164026027030163877122494094824089616645298791463040540816547298295718936704519442099670886447466196448598930738959039205215859008873191144309970922283639788823675582188343230938386826318655197454651726192935315180749596921468849956535611897100896047086030604458504577134241631339658390729363832889764015403990669778225884880228197998920816898297140344747711680010693701854813834489953258143775682341974475772005482523023935011946613464915212472336123823023976685498133212803726606683645798052384351780156450156047451318641328849182609147799576993303726825916644291757735617395650821518651784889831060228999037947701827322574985377086472224539818682566255789856527193417467975085753284798305860248951496725390353098290852843504828648974044996883425235617113175590884235839202318477244963059234592662686758949647837278968786291387945707819959393954026338177600846339050146150062164855496959198750192636292522094019643456281744490997663414181106516787103783403992681180323398693868303249988717951996296682459550206905655734784856183285047493225564581359297866020509317363954823778765849674038224040887190962957435428404432919397917270515958464329402138009564832188153465075199418617067451804398294959349521466764745658212591855111764181360165512035708380654577183017575253004513484553606711504891734186842535547450411430605837621916168301429241269699702599118291359871781646840146331155801637264654419619881388569917721693023990672716936789757546534071607675990578643124863758190908842485684270785005311313817571222892245904229791696123000253177257651978442457764395158813680602058879642194188969111767234992051643948246520592422646925986588566104443588767029002614578948639356866728367201131758731181217736671259140489785201711662934968892811394987932892212796494778103167527285793953164443324706711387305549396117416460647231341878046985290143634325511193373895175960530983685021627464073194957973527970637975508373090396482855342021069080711386090814398245024748875279652599429185584031689707260516323857174918774925358807109361241274022272673531071904873405856814716961419792582849832598805315903681877773754672917349250229075101339674733880628051581039437811813058050556869087130400817510880062008598496371220574941450808164548202216071076966305220792374933909745489796799383365154401650888346523477138416145428000841994227254931111751915820508388278237987506405057162465862976245103584137604378748969803090033281861092498921364551934200412796036048432816315528799960112075640542790810569453491101553392878109394728681938058823784731121299702009033218658893676727094923549615837507594893378558122704509920673085446131729666748753181145144050409214977909020559056442695325167249984662259820229473645281034803542326423098554016526352592575571571684005398053698005745591832304525528035930882772361080309761305798337611758094100411734666598262975353368256931634960234534876834300557022719050229129998130359282752401251362257324718755154138970513799465137039409140424004962488940622301067405752531011199482198508463114835557345871027768294685997604699279246038986412214141771261564010889441262820567956407356087200294144428763793738055760618726124708478607888693647009963813610861555970232968021272885263126390042880965626860346148428698514231346372259479795367759878934538893513847441395429233968379586424876438720831137988956497521374434970622501715598428158838264049390908916814004982426114734474064645958528894075998354463820608197902115318465583651067675173622118877147507148180844662582677218166285584104929009109284021240095190170826561315114245765304218226606480818803200564432209580824404833445493633568963289000113638724878048113320599113365782510021869758613219208531045770745428886658828404844475214264794233871590657915554587075899829257533213183010873221398268514648667115843712161234245439225343256274190834507688426573604408718906742444347935929663133101438760270849379328468094612002590086562800314371172651993999317957646534314607092777446175947609751286827405426367126350416496648949148400786211168155664953147014633674710729466796038507412724306374331829438909646379721719304067352122565015238060957152449940962466273649057610467222123359622261568689344759397988353027991263747700034307878422326369948805397229516741054406953909939327565135626153583054859920400164849763242140686093427283725702681953091381942040838063312218114736878834282100966784658435370636698265121019855239723734717176688933639851765024801423172614656989571497990943502079758096127964767420957680498628377998739620499766043132708744934285790171187948566831393440331040251442705640238195126069985499760211676764372002893936396797512799160962001926017410454305180657723647284530578724415359492868345082841770206009986247115855910442927685035200762020320273282634196887371705603612963296090178518250962289029920638763328229326454306740572516150806980182425801003158054844481514864150190633029336269326511163140433062589164536244069507026691126219511481152184774186310306193568065019003244898687228902969148866535814359500492745581440423677575723678490881802955450972530124722377530472714381293637912835086212827716512804536004373690284117997472533563760376603884647408188780899824547227647251589522434580220285074413663599566130083256042331520737763645649087245529656051929360279787040223292888998688257691035967344232233499611935079077095366883492221767583126098923038075216571472321470443021407489791526497168891267220713920934786066816935798984969875697992728284303199177450192140787239772451235852247381854039549592368540925540986672885188120063795031601411564886556036457865027065209139238863321445355271435347838001783183166353716672673242517099195945505033978300085066925862626449552718928572267220227120856566512965697995707476966068614767354913977246927940725820448490141302756324271497081833776200039493640545618226573307230579285179187405737055285526493917398924802523424962475487454926991444915545831805696376319577702587509808020255549557089775113972592418713359887727223920934206911413866965743440879975875253202190603187697584400292039122540353151668013272742340382869592394961713778360569374190677265900247018884754011856233036125621138952563483821600773290668580728022690822801908577911129562074732192988160973639158337884370457225058487143057977889677395091116476780685231974166683525229489212917285321531833766141170906449494072537918718481509410870056516633110631160579136046921286636206048716802277638673354410363535388476540031148564707246636059478362229077141276679271201270339643455785078980292688389685454096501370441999750548280287544588723073828504726788566699712662544820946253013231949047095303825865309671054912533522930094036737786754585463468452593194482680922040660855347883245531359354557632140365096877452430586429545157555804249874772093695347864675586598220575015343050464703920760173466953147545127563402128152260483261482017784344693013066228460095274425957057706082730317297496025998413857566618039107552070129973232576126200604250919686553033106439062809197964497801434034792803885981192603154082236162025518452448336181566479396287513848714054628979621173245475284857228256333762552933139442712654097895932771931883723000322302974713496345484855500397591318308911403157178860677933805929050455346413860592609529432386723520595980187582042275908830803991619241713738481953557618088593580586156887063974861184323723970805166918852715473835269705197133514001185435520487484221530045625614721274980796411992558411489238352052000562107733798743263138986663201873507977255850302536632997803242572187945297265589806159971159460850922433006050092061600642555616976029816361023229151115172019040267368206766055100486835727903443263806658704605307456782368166037017735259427583070949075020745076895975066937830423842949207866869516897391822990175662733978833130666105700687724127013470672598693073703938279067673844227492976505543288015678811977613788218898101008793313490676152574907232389309280275802234398144455856584910797872193370584288801607798057740652983691729587573914599407723253990300976433690129562898108386337011216724543615603471038170376334562676776216403292971003514632238714680333529389158232202807821572240762196698519300199020170834727385587146653098034864372582213443133597343422799152603057253376687319729391847870301932258394737834071613308091290871075863024312026745690171243292416726674461956958863741246055194578373009962955846460971666154777358544766211157426467705817792338809373773342745571178533436434634584803756617252101097227657599069576680302057205732668082671970791524331697766058966097819365568229112568398350731529316158234880120166403347350131345325637704923743534417749632299333431636410249224432989858012312337463133663893188586826328370204046920350559509015713266419609365426465627882828297388237869351520392430828793912302986602417570943896393422962187425117041331845470265238295351424799057070257423110480785586129446951666158190418780717359664422386936570480015838356657072688526207598829483373445730796520897422128391421506106461066661531247222347517227780051476171002661177751922264554419547538955485077994641906942024073053938000873557676602350690496932945231401886032245497844192912844814805589868651659358736824223402863076148067876013834326625960528595277519745555715959118874638612189200744695873960036213527174627186705374406834559714801521706672885707940617550137988107520088933235077493463700308793324577121370725182379751039696163568504145897971888808115586444553802582454065586583286450294481799220099041303877183136448446014990584603740232372182222489328348947181155405707244059120690848465281120594316181633865603935830886216185846417971428111573965575146913208726817409131900106842520412052710862964965566782040480584227423397244689652909280516321125268089168126905361497333206838856872126386664706434424950366922301974730939658627605973948277564329545600880189478595058330148819134679409215145244201438230690800562375885428957820433093841982771142378210168980061551930901639260923439060352362465535182454429578502970034409422832832165080811209025256083302732871951703631506620673222550312980662136098764437286144670714035405451833976615932522616889344844975929336679930177806407547485251317539152102567491247313425249320380649706132487692628190233310176728968108311861580711378950893945965173753599492027012336903691913242739514360145828930113808788726916025251460561716255225863312423910472897046586245809621570369746736293144853008917589909253899559307467218902382130979322736001797336012805148230488948948724463116349714298266665757981763911253805055146667068175181191323851914370918026979930179089675298543304870476160794155400353587694879889134601795609002345471117330168025298133853083205165199332964639774650015549694617465363403578083628985151039248977390756935604203187855429140720718783052610686081363831658654599551606024699866374847534648385045512160003480713839878702097045985372369034990279441348688712732926226688652386784589605022126690003870879024168341029521110426616909711378892739442987126399925269240639901634128075924376993215331593072147510387168104944177454535579540924463640034100035249326759498850104496441021714555671213306695573890367517842947239200973867741715693964519476759008717434709332399811327702805786258529787670209402886405743798240569782354424659409398715666371623421960021350487635160480372238855763535719178482077753518139447009989688226129041641272788085970901813298080759685928752452854796550646280557652478561130597529558899014531203311747774228392549708183518704641508860196323493805776546145545486169727690443597306553850735843664009646824941695849607196258216977264058933397228721586414138853512615928676295366036671165276919824852045107991184796756836206476848984693484549663648278870915160861269544499117732366877253521743390845092332889686773864160785889837332787857462115715324011890336573532894726138186485153517958270727075710795325507292974060491753099067562555369123980074428075230184797637856782067461025897150376326412061715897908387412417780192916661637652623182026470149303733555872882938535493288893266850819091275419386513193864650374801124086966287032337903014826689147240569796704894765356559870232218228201660850283323014512742137151965527275267708793705790178625087843303260805948393761370058493714468532858589504344113654052646563698781312961843335384920344550022626693258912897566216067762211171430362948638246481562238569522570377103097226165557163487469993783389642568436965744901186221445561100172624401999839895717010465190901631924618163122755157914600198490529327354076721792125877920150514008203149596081192923034446747867244446545780189501756525479591700227229733070433380880214338148784525057622700886930155298969054310813552241118425575945788847230124025672547069742809907053615925677516833169115240640375261322310021734201597583499770819101733794726388196599285521151024259053204693251411388274040154833440604116873319873581350479238687117416613905012224071885914204040469824575285151230992592339417398381750240935653742786734892263330942321166325576328597477463986346184407639923001446728579414075604971347423676228406825692550962555486983446267102221717998972331635124594108243611386519498949425871812694234380505871372210421605570024973796350932075671172966300177036581515838263787809785224283782649556125114847538519183413350040668706687859961577469610247286560349778784566923274012702592632264340893567591779407494349537961914599937831622035233839635413972926325804479049826447161280910716199037167584216915766997648371455522267635256061299591871832508055971552221897998095618688383091475618456380085515805197650664085967547242614847487419581460088893158913170967936648817724859537859237969271453929590061816564912691889299679074141585334617373669083026311369263058302559903132360621989762615680395605854473308370345814065311501612926000771688005014748006829437062082892613012225771295450183790570198386157810497513690347055974755352183681451428765168514608159320509194309682372140953233318925690033196776158708729797807202659331723284765501200572034462081070673643715120223379514334197346151417628390494657231448091997893620993540303541573785305427226202716064890748763779871305578205087540852064378151305045268937290715283642771175224644224684655490875892371202524438134777072012023403418618390138822650949952325030227371695689004111335684894687508764772263023096151627046892828553340495253067167019338350579073467614211632204381412755247989429342373935725647577252711734136893253475787130094982787005625829774481245100729200646105845580372674842088658627769982684579118126959537093323081949013846871301863490349754944569917600674233829155306974816378473129781174021460480063866211483436613910952297800659443507933635735343789706725156637207779602197516580996358313929731860800393816413789202036520628469136944933741268412565640483391087886540921259733345654098781704236852023075664343584166163051785626924211707424942818590371219903363714258934207101681850136406245446432711646586423179365943378425730762546289024469924504801616719402070449324668080277745794087762210516761485009937154502690315957326763845747238707152993818667664117322230960740258451036123688126044258572664058937358404916706621830793413007364617242155283831118879910233177865409344519728892186400145145294014892792556883641504725022342073282169487209091368467332148642292524700796545207312317444938680239699118333539816558587437197309836936545610098387378939089456607922077206474495796796111322295337796625089162250113085352194049326764964708432680033251170219401935142666917615893615735174208393369635699299878135355383065853165817705681324365873636013007425981974003258386438700261777085655505452028136248600425901930248359739008980391239700982422447289123325501626450942154598065318038085949445153608479961683444663067237687472184205657489319812019940877660670653581307705405130425948968882817203746337322064562177012699624041589839199632807916969987523057739683778832133645077433836723393965368578412970085399985207900546805732020259390204740760098055896641554415329578997694918443743032617284242221415662965572045169136321420824051466773374772743407999160498294482069641179517676004699249897369381841812749942043925176282855247066384566294243070969599072592336702572867287806377050814000788343792355905890514288764390489190682483344830071818209043096860508288282762805976393420752934817485863577461889731159836856483969549144695149621756356181281597046436348489386417482048760347042105028203009434401559019808835883468987457152263505258290354907003642973376235110804067010322333989377156609444211391444827043337581257703712212189924371892388233717739897646923445961915828512154320883942694279660861928328466472245609806068359569966967663233032762118724374256616579195467117859027729442116998086154672848397327735478837104766108557419402062757453589510777434545413796690111499207226444433347718143317217599679590832877397620575384892931472074532383006141379046090737565481059417932807729939949961570407166104754998043361780975814989425939893753652457298135320865006246199398864265195259394356464840880096149364524260425126187757279139729748317803772544127172932103349808055781942286457060898430404000214183602783866223330114308209276717016632919603562126318667960916113734575062948687123873439185243433949856362210988774040566920622967561781109833747607161953919654794091765451080490606769541965514124846465755155038875557216694020103224509114556253204609162590857807195114167995051090159506735561443968704383585241804132366619735943886027858762554818345173391784141839375385288778583158308353129495872602410138288193085690606711495605693519301775948590821682779014193450038174911685734047357339960641377514835712562859645457052399383766649986291539733497613862648961916149393905006484950751756198208881954553737204493096340561516938163096468295208723925925089201307957648853886691173856912902563234485847182144501764189991291104965236342379131214849645653141184779704910902585256195743559830654834769889541456459854922329120186174809957658338281151795160346487216327003185510226027296838649556650533547726975207294007991362838724284905345056454975366030813188022258649187305778501867820719126930779684445258923508184806577610787730020324915044704769619190494098635584381307845967301844526583273556007457575034797490572873295459164152274253311730450524983880886956661396379400031697193028581134695351291195741703435264440540504162938683779274632215210384806111546637961194839126516377878061291070240254867563391859602988537972734199721673490435105139336164170731765423965636054763650566793834206037285980950088263690697021875360395153587624186278339619487496916205574121709097258504518724867538912599521862724455292465232364313746540992505927195939353553794257197523292063244548491686783239867274956477860399034634218443149200710078520016781782724460306019735832700059439214563169456418600053868848233787473827882779363201845611450836042778591261289723984605453487719881141282122333445315970379081943151028429833058841827173103199831732356253575778482730190215084594319665080089700406224952426389808593990801370262508330410065699143377024870727559197837992863500064096504884200546736752752015298370588332954918363015017613011217259505502621379480545008868793839517391365900485409282137317869335895135747009371508770830986831390980035301426788564686578249762332522859519405590568809801484563141682563109212144592722271750836045283864988772162597251791856868104875889555743825537895589987009965686081155155946595983102182520413571445814925017497327589034994277195642463217331051101552648643227851302517262119535772211823037875214665734962955925136370296570594231136499914698886648385909185121429597272960005132259640123291425804881433008877109228192158286302928223203006067254292047451894803007175987254314647329606616252803268494831581516808156291622229349941362903543113089340445755659017432081762371629079701880542648873368621087180354701258333518377259101596788306551491831738731627545007819839467655088714045842345030484990440859613476063212588285746712424825640530467704960961705605875136632812087000263822734940018320604028942295969034999506279677580415544351024730169557585294300252410165887770964129541569935618182162388485888112319597226316671089390894690778549294252970360849773471571128303902816197327293415086358572070046488142685853652552066171434363278945926596445382149046545149535034555926657196039488286141135433448479043116798851958428528679558122679281560789431265839027409736033232035947960055551778302949648952735327598250287197096588047527858998053182682751385612545455280162994298329431797279917769057052429826059364737497728112775385949048303912867842319686652213352386799267296479908182667422291487734789438933800180075780760882568386400348420235546600949989637163276999648503335385119315095742356131631474351857450737708181574378317106675042505544134960557871412152750963959649312171685552742287100081602259008113754108082648469614937207625477454167110232850266992455488795939235009872218873599774295689216433178375414014895666327536634836651334556610821374235192535924038064587666064931480816500934097756674910209139033142402908128211964656074964443840234104729327340234190095850238758505529327914153371842866041377151970159363913697057448142549206535088942127293148078919540658787886039652629277550232597980718039545552637219473952886856441809242727412202826947609194539476194463387555389991351436011637050173381152599551552736367584790880720203471080899474768784809556186799652679861408713251258316359272009973748253148413787638767029292122679344853705842049030932061876730272293683001248686109237025690323250893580919167848432586548118365684230828510083626122860579707615742809448274186353371028239846080330783089230705896791248726835622280390707699876216115437944275580013806744709909078625456044996656249627614083136305114306966405385287393436773344504356585468128580427071012716134636993493122955189401927011755278658631948136384183435887001913016666020925297964391208971146041286889403951214276970014144344963552192245322038908066307978599039082208754307106898183501089911098826896471802625908265451496828524023740726816290437176547950470690351398577336630625691981678698594151179797708857667010628494875877319566567629413175511181971458487650036179646638070573348201998643854325333566059262786832828680904967811291501319843089800335903056910577447125116854777883354959187233472203121727766526261562832390712543796466352483416593375378911024312352687176371604320938067581568014539556664869973375344421182090455491732532766550322583866831744889262357457612293147351278518253084593125640232276295946428510759778079533337276259266541604388187010044932783619127031221785028564813055885658291133955874999199201175817890767412827764265187125620661421057386438553233121296877537071859655619343187998574439087068571004079954956594660786701130447797505368841397301885522475104553978101316217372070988118412013635498985636978390048329574485447505731932422061499709975112985683028767059732978438875600202157109466013948305332182604343419071181823862384198562275030980414054114357805575311942946139587704323175271710531289156704155108165190256358345998646254071179184977725097195604771194614017607655705836714662751277078999462021063614179579776914948453137646088709450741202961047821657785099365790681971525487230362452560105766892812422393943465462354185383939942958582480354062478253213294096765875684365034125408160803990018412580589555159969587622851675270516638004321740110776539532638430811500768939326034699351502648031577521252277888852388372326401443415444860797136819743007946510734098657865218706012894722952970538526764542173897232664922128462071603582092696238711258105063392268128553053203038158920749642431473133004790237312938385569591027574936301712584346229139192927810426180803653360812781150148645612689140070764588437658731179884380040181552946757773878974495781046542540021721827578387382444272508404011309764103552996080045350380331100169253830491291294397651856181563500340774691819334880061323946554045274915230002399786406599460438259244025472679698948254967642929858650887289686763871967001581339503634409297896715817283859889971947929738973236768762114609489679217884187578720825772261961709376047187037941466948593745234202410939690577099197561609181203734184126557205194954760702131680058941161191674411952807380963192858021605036944028925616817778909038686565011262771593548774066369102512587247080954779492367227340014920474413895192915672616218908022279195452415107886119815444407276647648071229616580380775858781155656938896836323146910906329755941255115414910974664047826912916107644639594446931948482547922133162324482896975056503744565550933381994645294997731263321172016343150932605832072639601249812275156000742770140257463696743969225666829404421308583428054461197248249887865337505437403234521540326434952663257614444481080784208248697293613564727766876355660734240832222841968035980683716205351510815720431400790590253598553514071248292819413317751518880931883599790641076978559409994529018614695466376868122906675309104422851342241875080257457303861524776459067158059713084845962709123871968889352322073531460029032544760125960049011816836683126587710353299345078961042450746387130555766735171189797017052333778907597327848053805933506903085342567555616001059830467674008287459918332048461564956644192622197051191105572988228042745675035388572616258317234078439118525055693124895964614907648626903317731619621556464512813747498156046860386332319563475683446152497449301804177925464736082868022093747908161914438427962626260523653099567641506620935178167415343660926361400745864388817785387270848377056208796901767807476963590534689188341364215875381175211045753732192159261495860869753283921758043068564559112564963703626442049224078108976880112918421636480395237559269539724948877986589522340278064745108685277070065612130823375013980518350659506857044502171224484977030772395609989992979150836671488594790035806472283847583211707045107529148534032521277911789232929734659283973274310743018491292344527065604543111308327988004597137779738649213469985281492620726145013644690205453473374847738374833156243924101726082359063054426221942850087936107969235915530476862389255085907611853288386417482703570845483311746843115328840704653376632552400499600651800981462146947659103883707201589310247796748862191814809710622645705487597118494616033622753649339668419046113870760532670362054171289995124480005355427082930442142356468365356487278611723694544434122809472432536348846168853596897707226184359511144499484571873799826777432634264314130077390493126649599025666233641877789547437154473658764932853447431382310156175408430276551623940749358131960455168091974242754909309995271264102791086370975434749213302604020070348766150044861966131006102967214901603142692696968261092525454347741562895172357813561396311522287143800031363130947012131336576631266138894898108800882045681562568482029014276857235195700810944604359670845308265409260596054599715434264909058780321954766368130385532406508403209609956700578566773293000814550940736987951052442593320801114465410535102191636302479040925058357095622386799062602387102842917052439674186352574533971358732422594696413737522870577796611147239342171756804586975635818507848364568949076812881070214604925510532912686643740157768614825439954673595721581575384720174182364260930380387586359463171042940552049450331338995344295591200993189247961212661775389822636027520339859557860312516983752769736186706921528729786133276405594934373364493378373199178555525198265088255972165547734921861485177513445813647855477345173199471184934089043581730325824946480902800655295202306252016138652063299996228504185562936707721321498742295949121196377589979198443460055594212674637579854210295529263097735301394545741631688086545420978738719732262476701176483632795570704837616936452926010662901176390469973019712352777761835029324825489320736877172169853921432527273683796761499753164114870476028205345509927538403470377425904276393784943108302060634968195682495075288369447850616264695312701221513077003744784351648682919225445952151474729402057144575197395211505957658758402050785039056595515093800534286381583921902141738468962859254797319022754175362236152912137462093624338092232529449420028874623221290439398293810969208960543306058619069975131188260434860979310079678337386871376208695847059263621885895130984475709424550544703612143365665345768012580239328109303931754887256828169152997709489456541432522420607170465268441444781220676092573732905502622761648682814510259345036631035752209375584357409237224180303222573437050494321983814890726597128210907558407888919178347849735022179632853933903725811146676983942060352117563727115242771670534326111874391085741198991838258370528019940717434619725022094739002140666640163988576319668592047716847220330751301810854408965032224365138938478360574202734196442948720634739025361710360747525322542060075443649952607946042620954425849255064824069709692020359960227717045671495737170121923450001883535465296808900420949203585008864488095189467843177550254329304673391875794877802263861941930060951759051283898978395183563014184529132669203761018013507811338567539102394298959781540344273229542479974789790715806053568479790947017959470386061771718023637152597351656158584114754675439130353419727104645395487098588599346710184029568979648955963919168258591469600322003268415656670245003706037860204899838339730673928406087320004916402568513429464384116899298916158842361660443961370233496512764721948723895655418221413827298659158556659915262005006717368773139413708570344115533234614966519426771720265571264369771610322599608728975716632389616406995732675567525001147222920104824605575663759250327840029071785367862182607277920681996717238029208455911810181134543124380214921622268138579826011604888795979207032469126029827447098153703082433536869979191585123702229661906463262394360073262496399271771370821568484094675973037344617155564745583737556598498526373904687557220366039934706106732384036797236168799535952833998109265749598516001483449001306920698258040643650840906772552034208441043587316484320498481748082719091107272334383293461481961564105328073413171006651750709718431963556625337252663885676679513707347064249040917360028911602738184826617553188038271163328916011179988695128326566033300146020262734601453033708956136103752138987318699959378326537963910862579760232239415783887373227950644708928994630225948662555945573342766819416991222599322560917415918280376562542555300629971431119239170448492126481347237935559396652991607236480241417231220615762722285675149113099811625340186677867953212460800153938708553429290752547633867696885471050578220741282443401523975220316699071507118858946599541581803398142400435188326385654038938837284053932012214207220747516854280827650941312136387468751387597392421968286229045549647889605242523198231651122292288157779908663286262950773827948743890424956490208811744966726291842549144784853822638961403955761119577244460047097993350062992142376633115189550195561591279635199691348328091522423653980194542238081628443712657580302218456611964714743681360578984789023392342965805393761449447705803122865082522929449157534460006156777772121037392281847329583705802051026591296534187641768347053896645740563814710189709199341112292532921593547247772229562120291810240265103675465683829921321558825490234960081916663802642585321934014460355315897347991951593246878020727999624412846496163647015466022080061749555814054616721567796385441085604268150114973601828612594224776080059744486980699933453118978266265535574468258109704360993826549477947910615210708463043182433335637190782022421321009188010941671225761206765187695719945687631774391931478519139497438442664381626248708662555163173808717771180271033985806718341751671339091382246053736491485773310421576769441438477282613256435346312697666677771554627189170134475821440811577292088803487345211981314544620798311474333257369783492992025435085846622343073848225916917279022422852394900694508903068980634983915721908546618004287600144845495273005978533578852485102009828423301635720681201027296113180329641884235620088129004424023435040493466946601221672977017562168000078985021669410211373206280386798663797755994032568062847006493795995527061331254842837932799848578683517925903123416801426064848219924666103454710014195920803527530804802973158806864704946693875221907980234250064840143160529265584101922126072253625515293268185562116719917986153510054411693191852086958865917364408122765839668721722156972968144854144181969011363093504677818391426162742569981925354314504779595777439908098248083899722565737953939646990641525630282602570583423465063472428344671216881235158785739899776447121627655374215375468706584281386755141550320698589658996918434192190034340836301012835946066186567965765727480884269237605866868884843324829080247196785103101470533375468879945936602608603677838229838679520785283325222418367294783073826733591383437255266041541402909453417241020464128826042633821695838243858218580745925893364764887334555997624685406338558971061481905706890928562441294857825921728966093365811641572651044672882360377209236641593609383379829671772691596723652702743785152164240793653235531304833451648259311970197822384984161967703802716783725509948991649927463976034368300083742233942524694499244835398971278714652816464078892005536009899494290938306139190315544002702189672843822769708178293335749228494958140973783425597334185505480886555400267294117968622801559222742976578547686755915438599910077553280185301107117983837560690842769473356454338932371479480742510990473179053282460688337000996862492391903877492352085145059827217506144984192266278422004922121569669825670150526901194772459495590250443477560664435778135910932084399681804720476162173770013458914800493907490254515785241849601958432056896788683622603708046105928938749372783322756403920405224496878983918694512608297067784300931819479593097955463322162180184719026035008593660284532311145130010743764397776739184104485305574410704286247120333545736078881536648557417961352638626339198037263125914761804309673618547599249462556852581911780655623339547170492375484493435602117653374521923604320957844946254470432582830066146067194897862393136496344765855385853619192946709640202674815579410800493015629477413884874171468639237760699379338695651652409361560280676567789479265990494501257368706253685598523340529356268857632488887601778112294975199104566399464605987555275301800323534303653772687238074668593030490816945261617852735067545166731415065313555505357838818733153750722069542746737229935002671272058190086445193820055422280365312272381097158513325553688536436172605936269626757205535964533991814353034241798867172770880385087482160640052511175788786985131999514263216328728505477761325536803894230678127562522309387366849535531288431387769835111917471188755882638606729529634189985284905205044800001026528087222969697677034538136647741752378801434629291950035091653894102858409920096279668807264876840798021143804682043724304048668826299159601984018043439297806207003597662426328902481566556779871298939292769421310579730675351103290028316973294884065100419436395794349035786265223842172780875360021446343221326035069163450360740840546149839425025308758279273859720203122591193819694185903368689867095887491933848676744651867743314514868257186422962438509722787281362394724057705235548262328656882460113066629989830960990802757242975973258735131372713278077688094791526235369874884026562718264808080891069434587718548298360106927421213094781381645491660006897865308861964884545952010561804722564052007180342172993125151986190151304490937448814423275910428077021047777891338883075106289910102934172472146846637159093767712984551307113734772708569494741452982896651677900620546209107810969103690890495358775019083761873876399116056923923004096037560508947935070296097443210934764052077229888216634441123049803662680730929348047625955972972469437013863893571423011908422295140651490721524762418033498709487085562300904659564957098691276904696298239182044995828003999169846099521666356139717081944278572612767349012512535674128121917340856308280581485477704868533315862543108466893470281248347520527951687654309609270655874681775493076178749135329956762804516942680605599360181950080425219514898442457819481741598742388143454739900550769016891841624969562947396099253314411479202505882598222029320707045259507346056474071312487480656558165201532044550277089038170433382199333747500278348627860612369876253854025547374845592849151673119848841332180769312047254505035623238258249382159128443148017608993484636952621106622900790465041680081445683967132312043765914347552582414871809914001161102364064453043866621425583502437244268693825901748356931317565355451911603092012016126281784988985627645522229587566644447393198270045389160002994892166863618615851176292351889176266187872194373340411155254734402451737145615754665941758241741878275500523365288298241105619258229277257401499072031086494864510846923466355950545897664919526024925375352035574846001520462159697957424963021952545918864878653725604363921836740051377649557304953965660096422239621160820311867732512167198915535946228465947746869242593156253276077463354384268436966309240907958801121271130313107648030964149811618365947604552481209145998536689829273869174294715725279169624993393901103129041875068018242733905189946821668888099483882345240813850611820661846917782415629300302151552213202908313597759895152658700735135005754428691377875250572758000356987070307477330562055775790608623090119216732152161263038165715626053378265817245340329504632737054389841215909456596554851899434887443523735729054028177979698967694094007959765202271720341046437454203809915771373064326746951770108594593839918431371324756515374199842797055702365535666504947107206288690754087596837022521883114269108326509487221884249573884669319606823783096379708448721387865102751233983250187010261141528782687557430167812652855512754017960783525055923245595273874889885866314190663329280201357073401544660763888037353997256723650353811208553955148847922802275091711076703250690253207017652728965363635397629629877445670011835065719833448560777646114559729995664860142328098897763524489460130001579556279299173523688499949772347960811347243322391301712055596890389828950500207354969662402451657500467466450766575616964766973918523956638705920251232224463854882699537376266539330334341597207226871578760766513231606418660401309120145972425651828168758929102320998765734564721991093247044634827241174035104824900805803811904177898657665035204926790483668067238164077047014052603908743066681466788784156831730250277832430169198140069969698783357261812414922419184033851559226184197439402550997358486344311001257925652486957680980723603572574855867926592639452511952675509677877746545977229262851386310801710254594932924974407774781801998942240141916869827725323119989746860681174684185743025878745584241551419520611004102055741650882275288474810704806246565162228455616295554438028322160728422253401430396908424482333509047063953284587685766299427374069889814790674396597700561875935881730563322782767101658282591451628958560760642285371216642257157249284780219147228232604999397767054454599480451075005937046513518907627443517218626737876022445293127797167526610161211966676694194108091136094150212737434369636675762844878348987337678762525178919578139385743759164897132173650676737148238950633511583805799649226858474928540067041645836462688777991912821638909083341574924276347041626729557376169433894835872271338471003212677068694154932062197768881036421576638881033645765838825403410197860192484514073691222068426546392444505118370632003812156126775646847032274315494347704591215844877903381606883574456975992708508305112303013542714505615477914769159323491890796856034736163918291498607469397552544455218907483451195627961314125422448075709193928547920986947509929413468827264913907854664087940569253706627888040664664299342140286960502600431476716241325148506640547237679410667907939109307171838966557495745583626912181450014172234664870488124584873345825127487058248513334387013042391079567290408843737996313920683625340743018266638283935180738900567543963357448619589247094412222987930305175699378410632033632331684888212158174067313782861191322032067454033010131762891531239064011585226916367286806587697892050683226194674435081588041843784723844961173807754440348158109498164124649393030361277191942431208604454248271336287031795400672542128936645437773228669653475827433406344442438178268617375098935344884546530672118817449274652306297538755653550815566375343781723160662682544389552338537943887395341694884190396686535560799117846191755409918448833021101096880896159306007477209662294539002012757080892589227990815265267393931956806670184831903957047095224036626274841661919933739371359537475564218287236575204237631579535078901101161607446431840899751416105270924813522714440709463291605782217628697887877794904167338269542833884923010000373678694728203585261017579781534143512876374716263628735543986194314881156420723626773513079160454393486234151138839110750078234263989193709640521615031863653541216225891767339984890886060883429295841716418361109866010347636512418412962667466304225479664127892889898737040189386533317918059417828280417431724923074421311525548727535053086517486104729711130951784700831606243716706402435520415124491288488719050900391364769768687269493710622952348993356862692184472399419069249864047118657672970057848526599064746652404575784075564947933531129382891133280722187737546449573977706104839401390950800831480448006959846979995151423437703128681905289364900651727899471747820550022921176219477614085767216762894867246388430767452315898490341113213995397252911513917065971369047280793263058433917330040704261413479686203464420430498424815313371854619543052271847296093846093615872659493793536744612233704078917478487499036830925231033887913736288930664490065530813087151096484520037622692364292484763406029925457539708191811558776371055919190408181712159330059074734599724365973924464466136479974577613757601112425546466314476183896542127943721447322323465617055336531403110532549645652987290533420416652933759572250018198043507810531562093309949374297605443254159750728664848287898638769667875424883176092096369398216499744950983111182037543667728514588109722972309066601826013223904095517397172373600992638665358116559550712910989883467779538583191112114297586057959776306583566834135268349481608483997550266299744516807896625607289573647563937995628157206100371185977504845926322194927703720660421048776150186830518700751462025108132098747149945524986029581517609674719662611536342896219565595379572794530145735652453343308649345192888445276490757034539936775202134984941504855091685526830659130870498422839716029185545903229121210142171742810541321145705281924555101849429812082649700173530198195933698373538908858270510510729071628542698066009471472994123220037541435266463992199336912744048036431361544486566248283046917592209955918844687765387803802537946358524240820458244798402512843784585672460826791559297824797141202056156938819329811671317513172834987631087218755321040533962667615929886379451705381505873309616955868489977883778019310991293271279275920038585076677918671152848667019050257394394636935659405301395054863309956162042839219260002496337839620197804047692112801624599841926541176754191276017310709904833641470228438520993766905974825539455988813367699057291704508588262333616637339907401286748992583888416796328611503458889613614761853814944427881328064909047103074587738253991759745202953423743915307095684402154687472003566377033385679795675669436430127186425186941954389666044018685113457006127241234916483452300219978037451167574935160227625049406386204160797946871112174706831615078483396096955776542239566143205356461421445524638913217761545207999073273142541580836308219720948821674789957415388922217631683124690351879810303224546267402082142188073886763685247035432104583247624132442819458252266998715367857326754841932272809765845399596884740402912773007077598242231527748296453661553201126979431479617104458769850253190854070781312714022726697701819113460125294685722577275745894217935612699108347089892637055517110413887774807070725828757563570663011846212610615077877408997206176460055207844439941127955139311143466705444572442857560543080936924195269712164386822412768689187121327404690416888899558491994315538238472913664014534272856110530217154730555562264563722815930153900848842854323662066501567075976960512805642712340065776092708582583476625687588373357483411773445332782127610291346488478448405304512733498551735801696615189579987109889627415765544237542745889491583715238885906332563243736271355579796700564033820088055290795445810792522990860140553179610902605017779338919484340030799212265853689596153085461593907842794251215541984828751840159973357565681325143638580051188190406955781440034662405519887802309407990950000156694893181127828437923009607897203709235081731160019787215271070317457414695943286770286794679305768473600440292196027320600139970046240221405848935890985005750393313362783835950883218787628486481493970757548432181933322885900642342888616273239638597796386118023085345088439884490360324504245551779276973872479094137654993382326144924067660243497133580312035761206831901057757556983706059968835416918481304558148026469991919965953051945572135303742785216402610471183893351330055677689683594143818709697230527928345038750169456406461915095878601707391973920381459610983469153691775087197626991844484727240469039885877346315278122609674726284823023223039714784029882765570182503950081868785069168399496804348753447572326746448961486314039619676930362814532582889533676760917172715721835540971203267728282687706177336192897436476588986516038267433627013438275876977641387941211917670559001399618033565138206719164995816510994248928612210665040112012550765925017934397874679394339676002058801697143476281020245166757923646664598481959645880673986727185606187257794991010316529783579281083516942061312785249891978164035709064382632926551043319978111466905015060552465171508720413718293443796059585782372725636173554744355771224823373560128880632545475733366047486326325722259455649663951081642879821603477567955071232141712045218525243203519863024121996526203810901175459572270575967895038967399773114463120423754898597130262691079847827676084473687837085411931463945350557947759994766543294569233112003711293814953355739708869399541724900184534494441930075369759081605310128311446319581435079256299438254345667071102398075581649619101040651753888494006893310536578560872812384993796362696518605194152791548414253270427549561685273740581684118117256742248362772559895001851249516816366393299354852711519082201888842030564920885841745002260762887326147641904236547850227667885405987164919131235338920762722919555983176486501564653336580521740806419129553549008937366984968282510218463766626344621459585230426354237093597982364119606029347203058140942335024924109412124557043983555867174609433540437702662626881397055966246834179708510778503305870690588710031702550940974532662784372881959301398088068586356475856898690681258927867238695251731638362034451567551719579102584567791695322836126672537915538520828467496102584745450607984041751261371428410303023660070050757999872476202840213932586279979946273680605571182630048250012196533968514846015849964519501694070329304696953435293156246488995484293592924376249473029070441577151333938680392106613708373103481702027305613129291981083121010869270160239557887270162381329124501850123510155058441858440215156943951221677482567045398591472695625875634663133142141594544325551849949704281787574454105120473742535093890792188200139507510932475088407501982857473635207794542308600951305393568466060986385490408366501200368540608610530283952963253175549615235497887657620866961311843906657282173230217222520414313334930882498664349348294158995450404677443578401577055499875093143763836490539971194063886219218497525900219875409423191706571640821026332976097720551583835512840818706011196095908403530825488739999668936611654063775554187342887960338642929903597923759575289851818593191755371791962208681264651870626662642080783634360377729990726957034013880708232710183216741411309378942981642635311379858152431170747020483721823357240464670360682230048983567191896502754502103349579365349185695393341175552370729445272212770802475543750103106771861754463311208744953790040041696945111960480989656085130029411908544711967725038568601931307042487746487134363144198444166067146971834233493658259328146135950301474994121911043614933953928586703006480266908205245471839192566279194727007571363630772895928013575522530847731454622516195591319102326707111960564494605410802726115952615157211110986993141223100075998675657967856342229175807546275632858254995548507917101100142438465039684826845782708861779527578888123204602316959651791013354118861027742875211879047818478811908772855383215754792224789359963739799720876499684709343536698245239043938586099010130541338906445049540845984150451417187145201329656271439216873301853562276937889853312383148768987483768692743129006639804120328678642309029992035455795476846371953787083449220418669137360133465839430160303987206089830029199955159744812655582326780062039509200640689650039530765409489219010511103189033684800542712141355746888235476226836112239823466811374687906405614778912322075691558192790724027246320671357679269307435310549672285478264729039216817752390977111051171208264257619311809404415901866281566187849074629257349238403311564510681766420881304331236292939167883257485812067227039636638940028819779111764619534422415875658808503338169096373959066651089987234398535948843353650516218737606777345135273396245830334088810980173522631767026468943429553198754152909305603625719770369706437638132904048154437994622735067509452097421634236789498707391782139699926729395287904856344530690962156231138477888409354882799733734163085055122262971308469199504627921546176026240739510689526990257748698631860680429889367007129525271396909356539331160371182319012419373521887764852593440899789327134670232255549808254571033929031203406103539334786682038544347273447080207991300286565757624638275963495423117409957163833440170059049485709841269939670377703680634977042394467808768414105088706103628376352713097769822632713192295579266148907646096247877104552809078837958577622703333684864724124355738630406923791326205111134156993930523225401376124218400921400701061628555814248022315522385832882930515578865371276570907583737701707082107534942483401802917830322536305915048226337240331270045096288001667120829198820672952977339653492761955392521772532370741079248275158611705444629326461213341865286840099840205224839730279540738980340594345292913991499123229320853216083539933670320443296630197968971597587653492717851385324217118476892882350699571005900797391227695328591359637038546847667135339457070101551730605712048708765134516496475516073300728704962335263123135620994592329587511877875302869056930276227990852438587433754228198870868043964886770671150798719842190340737098027625588782232529700546099646743433699656303696290373898530483970524474488559042535151199667890368533730903394634209311670553128410575778776928036430429134077579357042655934607731355742465232055798123358354870357174116680115746455388510320083086431359362103987980435105136432121975027277500903990750960972863689721030264213592016125904818840308264473118430982585580875486253637951470445570384247246910116896862829777664764590212680503034498277871350260684790472021643984791928786986276019431715850541940572984298338617977065245656840524210334680121720653496153102102275572937679415942910998614277429266418536454048394476494558026986611750808851284197094322184374465258692000118416277909809474344959250760911209890311115075030430447021919368911640853879675331590986911102333904870594225388896043640131385007282082018910083595623892452944961372756291289816992499738420706114436900646479979332435498644806524349589517792007731316021660618982126053366644919923962890011877117376645036848838432594503358247049183686867858606738212695974337695489948199407679579022699605745249726339226862274024210783748832409260484325615274694693485261830841774219929079773616897498232499282394397272245023402164543814482366580434750381866347330126982841438273839555989126834726762646081950684394370778021791377887086203890432819014866274371072875513913805280273203386527797132592722001925976436563839768623501764685041470609072444427359631205080395096003155338833628937681864826761201592714187505032719879230942677775410080410791290398183045638109232579899492990585244880780746630961049455666126240047034901168256517570672919343165969060003898940415283486794978032128114973835078871552872901565800709996393592811581575522669309653042426915391229463053100330214694682868274037657339534024004843894591990540088904154125718077133398664392200411164225105551998395291107051754843136373466741505347007696795923005886715572145973187394245614587580453562058263709364382959379888114346733878686764991026449872036587403033980445458417837545762835999159974019243422420550146735023983121846228699724028106487351549198758591640380680174457630439557602077349539871769752388199469132700203361065671781365430454003538778025329777170604898270190936478718866717167178682703148296497010050911082234141589359057494261601151292924997917435666155557827485412498723967337761571947163502687462797333142356588530463784678030683724062013904194698274731946190769675386343937346389202758402465183939337376160562145849511684544208561047019726068402990508561344193938775118656260832377509349701351237972979239864017603700683173831078011448942725267174873347251841984439823814936732944852027039434438918272492264058998495910755956598017027304156265471352293064980667018485424350115136025585127985297197848581822137798364613802469018796250911667676698656781138434546471720873176703248310035328851776971634792123813555664337007077752468435659584598027757237311825712918318690546042646854509057562930351211195111532430167164431951836564626021350536014216398041755935905038594185614690620265433190960618844932028574898811159497769254724423925772831938339288120252501130040633270353354479331283160048466493905150862753239575098242268973434208465772012082019946155033653298673780638859873078447492066003210978988321793959485314344908122731331318779910034398662077524032942461721015893541115084938850950636251332911677021539602482897435450808838139655794504749077508445079352884191698861178438952207736631798182818452377707963058935587485158376693672249175841271407255106949264106802857178329020324706408692477787511640402856022528110689303471790051511018161549079499309475663919864872305838050043003971098707953768359973355517097065313258880709012241965458362245056233492304808037893460260987559814389724737495622926061484742843888211220892306723741481287732009929100702321316177798545205529515403839766439998095323955010772382578263570759107228170923687190809993380192257630007873490245289419323892476851070391669825310134553605820172939540693270018325197474569786102198174358831443752995849650614130502543545460711553100932395245811248281702723778468150963239492096463436780584355875359193001006834645968654339391909852079064557963763239833029968688156734664243618292744706363492090416350689513714911916359755777563612192065080346722146141480760758621339435381750284979004455776406013384865940039216183462293109145057701352885527597534070496098391658552981273335583489767205927133128550476786474356618361422087594931061189369554939710718258583489471388476029435470171210396280644814405647879989012654613844480730987964332514068032005014005451796877305231855682458176679631852770071838057674895583623527914042917894539326026321638668108284569311949643540099222141880865668086569015502777851986789043195527249327791820826840075102905417607596309566818550827019548216888345799337767617684129469879693731893275037975796805561749309387111601689517897083552351591439308072934567717039085048247300920435191673296577791133434287061663604744978119596307499011241025575693688921349345014175001194794820991676785002538561377351974125423805853072356240834803196889571752168109039315432558863808150594126996116904611650744680752778084533581005525154233431506101936729520310056387609633084354336541099662726185754167848171946458380926928054762088381109902384341423782574816836747914743372647854724611130504927884237247069419792528206016712244805026425532693381307650045214469623569090112736059610260583514604516387822403442395854572924258846531315098388828473276625669766056418081551213516799024291135507252081830756728969773930494263954027185551377668512432074869748494557818244027041928443799947099538044074387436796658803550459350861585842916122309656042001779383433557276565317580312090633240323465758065769198581541232777699919141389981435184559765025224758075229726300363816386797598911762312616936504947981859017858391808141010120073622556296007427099820018915133388691071908374009091127721838453840244550008577773841655065717865272716174049073695263986301816651669322444500542723761820935386911283959618501516431369627694444007286375118358988428749539288754733023093425067388399618594495115348034380203202440577855583694285109220320755939709058916041537942381465219126490640667540319184190903956371796576337897776148047846587388787315728862072156649553373892275739502363761406595666878730149903946368220808254613082045019195973780580797603175100484724671704194631461134795777824907403746789779236205001370834550503324823630450754414816516496302829789187760714872346567623000348808742730753667815529254489469957006744886970190876847362527735651754029371505050608914390423046508733639853447029303087889082430941985522231685891744272672351889127109075694057763728222080613516927853580807892899332372623740332732049566495371732312750032422973238499389869060627082533050860359722268776404400338608111558338985119122537555680784345023396945618318460367575587503407670452200749306599246062552246646525527836707953585327155603631861677942150847980662270870861663139683969903316827775521102785022372503241950401419800589588068022800291889474021560218905311993060837149255048209492769221804330342661414781959243095810609331094095939738766233381607650146516957581436076687974213093933019543441811550670619432869225309862419726465977100649827877987949761488812577265941286899270256746197821760492753891344675161765611950064858503995086291235145029525879668632498880621361837504365949632068702162403290048438847537408378890965387297201323941456916863913289868800809618576654516669847783726307107873421211619934283131043283551672628102196560634198321625508003130771299399731823678355480955054184050181010539152831038088714603578531358996320202931487764690025965510386949135446020955357217501687851859901181675314024629180303357916369681220113124988393058794968335001321140432672051126690003232122061612639008724953998786835675318766688592931038422559844188328062809910450899518809024652385045025547575618806421567725919558428377336363864587729133771508193241112215324360399118899695148931800334075737206498542760581420366153158131860730818449944028447524594756668647395540850151501850062805608320215130099203004748095732113434558804399952914337715621265339217245727637972923717134696829530692884913179266552399114224857412059472476649030996701377334603061574497325737423998960135559445209353435405768354073396049748177862002725324601077754320651713120329328768192571817843374417801921711795855166684065361263790561006765561958517067857035548170615986405719687822441953069337114296774202492709608154679033454143325837152520855644223550643351382388673394692831082863641375814262863963080427393533668811901551704373208958517869311817450570756196974524574261325280564931765808271220786443902078168807335070494577451720376340972881957501180170324200958170397271848232065242185952948431158601389950275203313356551684387946975988772381280857333106961168718328374708302406822888919910608801851112416263479206638743849246589979527561198464884898087515295781280713777712951333946958841707948670091383821794761153234196890464884630192845175240197362629516709553107522152189038167631221520511316141512368423499627777809443126399363581439334467713203567521339882108948254613336476509532427904899545678193277049656709932275117937695433724083195167775137795919489372276239105531664544724618782633566694020982767026317489450509890125208978976693760153190738136758248986176473828672793781945286539198562204776317752681397912573464255561672380841262795206753796674107546701336806207374443605674586348053405304634687299119059183172536482572694274194705258483459055731377642984366574171503140438924751874092090242276630444849722096581830137785944611516596365977012397292359119023456169505330348436638344223870016005842061194899655472817345509799540267035028280245754712442728654202204531059283829078812012639106455590651376612326388312343443838399640925082805942155482976367985993010715576904481755410487125058675714926581560484524869518160481848417553450485179339361537955741302154088521889644900893165110534667684737638677192561106206584445627099872767445737235711517860815318042822831407960299293457160516183152097798291163587196474668282381827753484548043156047204971762654337368296168705546723364048135329679843390699926855020234289276622670212540050932366109868366641576117286525402724893555175154397187254787408982651894263148014189408274104741682655157644692246684678196824015199148114008132354132328029505403915869738267426579289084415118007455399377100137872639262209528867262195299104394278680237508950231227935076325994300745047146328287777276518277770611253907736269944472864195289067104519797386967743163598579702592413810730467578318246900368283738248445339177310119699771170536657591063987144621031851719169889875632114033601008925470398172459330967114806624915427141276985439081207477407700556491981703728420740901125562442569024869610182114344116407654484918030030577756124226321211615026457371059513036313204028158694646789767839795502006307834827432003603861330857247853443749752072720710390721784991439579270660424431506185815069637513196082616904759124003659694618316348013238190357014773023779202379693906115649155242469013904843990940132441662318810047603811439529238584352172774528441869596168305725046843382452399403847218103861434061851403072774023075362375012963651593265525475270600738887501250104517143247700148094789063626201244165700229506605010335078626597597683437454062360415881267870767576422426012439771117410198428476261745567702970728942417390000754777102044908903868921937401506823584585552369988236354831363713615651540437144000973924516455423843079494071250856512054579665771923184972549201407178307493681569917289002519912693555875540405927910170220028964748824208287757456903187513611849520840664570307549371738383148483903210948607736695227544817731881693510434296101179064485196688310551912636603384485067831190354129833558250383617651021033714697232559448270297024691829649237150376554396935524134839363522378546736091208867502877351478213180175761931943975991234758246768622576495159007628463171877214639779215670119290958065966625504570975319584497406234648843945372331228986200616513664654245716950109521864525426584481562716207889061087112608322724927301828929961638533055986209589305957803310920648297879360368937844586947956973512856277119433518806407968178209602863493206459801690434487265780486585745232782261991335799574565836547758325791150794952307024026337427074351981932098742480177686372602198298562578298308705202463368984873842644298912533826857882149274507540127147600125970803678281926948874981496713892049174215164700625535028088300189489246403501200064077876612529093007870904306603455742544766742434769247948126944337217173857362680721305700442669607626492303519126970535312124393648630494651076128137668740383719750566948757829197884540579326117336931621627450306690449322489115788626150355770948830015551123378514445764616004686439720104960267349749340978017794925360338263582232354868728401744151674046437389099706993956516828631968041625704549842667919695055237050374191926476247177369135320711081722569726567187356614761362720139003297202522098490233778128848399138650191891431136933195981727425498894486400852850633518002907982342955978321966392782477367297193339886752407119109655242407944564669191825669253488700509420747855211211068683294908344754657863649884686956888571737349232196582202134501629693529658428407920737665739780749939134295414082581716705050779348139667837230057453002828162000043529006663569479035259066355216445135762374413809702703299397924897990518531217840189783337936098845800920028374610295405491858767398396153834828303180831927276691629908053233175794050165472965457265182190113817173752630495616338417983200367571892926801730511355534324527855383868998888288386118030796731975367498333971368588747407978069707133618991422645575898951912006058147542707867723135913180331369953422248132739995411784195109734825647466059841053056017952129769877279130104603904786295255889800409440749473337132402825434999392661188480515509274069564099140924634967012285631487230577666134020003609212145373000921073992244852846721612533588937861631320224883441390914814474729652851936985985909095180077792140158603118219708830857455207992728166820180068646872723040141893053648504387282977629337827190141019176791732961807319714879121779043526712118166252636278706643721954697051890642480649238892008391621459908588352963130096494683360120269678178315051874755563813278787128485333249700454833816671763667243021831770342708294277487953294628619854401834105722722672145812175597293261497773085818125763418403629723103874977740983073854469093965685451768199538347019561707984922738977118907981602953468126048583731510465833211680646122372171387560637495119488183479040689954547818635109150847642525831288474092420200403796458249016405912193966854933327152114840130781588489523321270782642466986118573246079634734314083509376021303936012036370325517748419341556548546918466092172021565127216738824427397809030855115419635536574885649904408825454641317253205271685097208855282516878051888067442379473384943693697867624481921789264570560129830819421558059318972473489265460163463518771033945377743772804269921091579845778038982816641645153774715491682106607295661868245596021293921500134293062879144068821273896176677936861983823683178995826857191911674011220817312109489142608902787325303826147391085322971838256949571491138103606481901323036468113131832173999407771035440810188517431333574078766005989272607183470037781423087356382893766973800386465457535493527595624438531229967065763257411504498242190423978876642690421546003712153869580419813397891209383061133841136925742530057437331842653614375449289793124842822173402021837032792027387214849671820858629230220178055770386699518750389043522122611654654290567965612621987627879371277073747074688770343473770889249782223372878360250489497409358065420654577007365215017881725177387580513855090404746564860491339122963556299309818691924805641918292253789577113903739851256353996159896517251974473264254846465002571755596757840227258602619858993476689168766432504713347371912558446708435235893709258515951819168089088975137668084374319581282097826718626947779829317324420934523086693882478973564929804134838516456817664990168925627268458079466214100297193653684312320840603826076779682198612903854205800920164397250918268114832421476130538513644449506820341751214665585215823862554574966756325152708276947469226194560147478740593669103284371809557219334867312263501279258666816210770220052468012111599127947755383821497515813990674759582389663753518051084787506035038773326661654256051906082381326178512032037303646817447766296634146092522034428106738356625647114026256356111605603816642775610880681723836968509969176917810622356911469997974198487753901920062860669448111291629577223708029809692077622586765631856781115059327887824421064052753573711643041257068987401106723705475507264422546437786925284573788239652619313724677184583170898475195749325014118310052123220872516665974860320480861468438953244123103683622463200709975705586932863072045934271030190472377099865352914630146916444916652641088967653730171855813159313308603349659305322258570732359972999653297926823848784097066612697534980864586847537649634117684679677851302472206358702731220612987711525415181520200092972559013882366364789173631541064784538416851630430010093796645595389452456039917901595239644202823585858920267849098376602834747609014660257808872456455642490905504672310152347060790198360550569995411894014136452873689406331538010494970917172517203830109999211144487097511292486328687004179629168078064661481897310372996069461820570066912404768712545596510293223700312018586915829873411943628247722318694390061468304743342286192767544277099882659045146278906859037080224540242563739579021005679482970970634050779738090140181317525891504776454293587171876476001712200104713744533437721882071704521171212672603794636911271907854570689753252228505481323786309441723432141800726794082144322974620179809172940580505052861205396112300340176012263657383807916227006427699004388499464363482932202357322410486313484382213786803920289459468086211526237950414261718975070801491076655824904402436138207597553570728661667022023985853390919908620858074105793761345209669002123545151101751030567256505867042085916262454738053558198849403267129483855911735698441177814248278015137651591389982802027532479564440269937306615052058419525915874328069781146816023660964070055655321906123498082515411603030997780607070065585458974083741840445136562963228604062988113394691339454587768658327453449625513584401400539603786170208082022493721435426561668732692682695141087617379864484857424232626746364755163086260198149766961672678557598833653229700879407359847015373318686252760954002652597369929359168063022762519547113757882790076287548737684128141367838865345988384647128178052846007781653530422986025964762476703247434481063278610678931714996884712234206963697505180150626394548823741120655143489449221828126050710234832525584490593930153374328465949029270302121393046720398596966264183704632220999838231404329623285341693596694535959400131671174650470248852704906507354469692409715894162365942143323584518383458250493695709137207935760756561284050031244311250238930881033209164608518067600663432136500472455931184275601932866494203037095699315407191508192025863282488173796899728293512720210485537085620463467214770441638498735632918184456061008470920757899791365736308924655479541409358169402199187648033011859183343764673981789482362994824638031940927817494085915103868110732135871604773203233911108348484053974320572026912462149604446858517676724004640572800055192156843540741667804770963987564788128188954508925020562427666991009502627618225669614643744853452195668231802622921741600574432770981230565796823566882441893565587962504845274840032332181039945999503760795034600044506834868337795763659243384273184450182374268619629312785737255648333318056535132527726695074640234484085678518120971709950262102932986876742458841080835612864889916573250425228913118413731527350401203875464536985110430953090436859900475248704224362210971497001474231809439700197934878222775635096175443021864487805580896892258765863477550891781026124842083165792471409423513828799000962526952290104173573606809196168791167778259123833118914517002390430896602370544938758013258314914306761610434078125709765412786164737019917768001973498330277149304509831522212412439470920167337106616675677687101676709075782685801943860251565362588447553354656584870447820161983161062655104959244643826955239599402658793284966779330666735240748926595432152801212513318109847381521628296554078893328613198441610718455471852140721984896391742839265516650531072841027183869632778388282400755572840422899989296842475523008883114222652769336265584611759433000064936458534186883372099169825183665818526344544077325950404661507490729912292448081839860524473431655542334678846364783408319441810876016054528438531544209678939512631253241335637775881194742073724262083453840758484561225256606619175536675135239077082797617681628873508339200100562972773795404751366260585561961572764341942526305739982403250753389895936493864736815603088357372074236175759766195840371639868220883400268824363544368975316499033919431395114837071809395490289387628244488089475748455344326354164057242811452227345066477181401365141177831515578253152403475448841142905367235780605298717158322491439770904794358555019909990079263336383218605300781132465699425299946668550275962595074706083714379609323653898689065871308910375135856021169119623231578483518807692848199884633103825840149007456197997190833124838964587863432262952967826288052926186818979816948612434861194482514372140392261853648689041301701540216980146763951618590076737526728043582490251281526917643656496162977549120301191217457813657828440374574980104871492802034546428886111011078039524845117101873469814581227145260097119875218284647003122118455515749404836465458301309584225009005793491060240116465819335014904551250447661722890639313737475110550386642215699290662720655167947167713381798358591342304183765424342809917073537075537588552040153349952020957234957032336099804440656897656759337330441040795179637080345004575341856834291934893773657266642499567373892606876796223427986000472716471571739009002313110232655231564019708353550524359918688426543764687136905843846782465481794021609458132836003240061126045008086175162001773984249955791324580213448343002525598111918809176587201825978224601512018790018761451662296228707323576886509542101053313311060307810377067511703819236404869695642851464969138115205558177843582039414358470474354070951073573894135499359348077288306838922050293313322578756300432588375831307808523720175634359280347900783271464689438282355299647160255981862461374190591981766279024192335441191359953030058501486988539373679084448282860329975043815752285028016879954591497442345823219659742865615954117120539113897343804392058423532687184599467207855334297274706927295872274561204190658788494949320067732083084020210895891526101106752107273741496004935482071110027145222346714674405039709230004563432321929084933604500134113735503458961572140575424268957800755342159569422131516868689225903354828759330040132115848298684632280108415063594203148184117360650035795608406606346495708022594187059000184614063904384865892872203387199547169745084421587777137386525352510517071057910109615651503104780082720368852312924530330160021180359671515018772058558003635596008273172846115323533690784253934137610685527016226391571158575720222457538258520315318428822641845261976859703678109124098782282856701520404814671389085709088648621810821118447396396354378821529815571076582583919841924072664857850377886233389814005030722909480016223860599907349525523389376363897120208560110542619597366324219329641942951803066420505747483608508501908363557630906361324529126096733929608162568373077407823998929980415751995540731496753473230941649767307619063485304501785807041931702425127908398112747433964338032302605089461270457655545925134933421254936357184034421547430912640549797269046067346910763915006035161143928344300560339355139712418256049039487836456433162766622276820192325484782141982956371842153644659518701146835845423023842723689856285098149070936695655612624829882265836226744478802386547166767012009275662216906389463367119986806331595779752873420379563748193825929398052885578111349252389980476516668283262266404022832831976093292691124087307721741505525397790754654333637555531079151618257219184859956368190315599131578486171522121030459808729764507837180187421812362090153105935776367984152373303585581841935872818550994958308492820759906493377911424994199104057998227017042993723810764965505801374482357114969420222549783767940089432268390469679759065955774054496210335544114183274639368989182723146819972087432161472872684677628202605008756224573000538308331335431841777888036008499963280827776666568088416713433613529992728800700830089771736752223963494222357407738913441507806545360345602575453315462871893388269078648325428294798414463497876672619783186201640787527584446892742502208808837237285339316262769641526040657064922328095523623846109263143350442339582666581298860058957581930709713187923019161363305369821142759188412291870663825798229460225515195560705504212537851391806817442856424546340570722452053669849707122251986828868352338892905891541621521307984424211380781977363764652780999461527138952054384511971092629989876252232420589895872814893495210409517704423711305313120469130202747253157936085678517016724108005477123780046522335684172335018908651973356946933363172098763524974575007539613731575094417229244741680392676775930757864461641730100896891631484477080795997193039524205516226500279657833722892672243513163491929643602768695947256846686373009090861304133451090923389805445961681983783413184386156961300247777900121124990956280272940806033327043585073039120105297635260699211190635348150186835090781004680722360071739088925043085719169841236435546661092192776598903923738613207258273437654463586988092238837217430054061836900877808884307063851851572025336305955670887413133705752133591808544662832303054380494633331142474351505398320801089949838075933968887853588274688777757507866755580170776844378742745426651521406600295308065212549714976693899434229552438465294813698574171152091461622401969813540340574827046375377286949676902792557620607048254492367369589153013142537786557397602595493689927512239341603344358774270895341131319274016001346515607378653548204521725664810107386436962659735832190546625549747918654956973641525078733278973279131910127418913648459633444436356439418527368699380764076000807207872096114880911441585826923271149762915816889608939912741849962876811936893871432645349884107563973604185857709768460521765568278262668723810195958890030982244242721446882567501811494745786419780636384317530734074656495850806524430935359709971103002332623787794105535606019910267555255053285129533759045805132107523193785235918977822820165088850336588407425971388406935070767175715783608023160854121314566588387746093866251242329093998292183990083434395991746522555811261183833199874430563035223719903970997533524092635090019068683591759987468397824549914219103457406023170192793677298891676000326408220060542483723329663946262510142629006108550054791888542926216093454238544701987208836619601964958350887642752056357038655746452436221043067774443801971925117072005607832712658089901118984528130339513078335890215407061980190923086757198461477690405040475952531011216713199815875036634673510166430058978611369040669633481883009013562611268480894562734186289365894462423599904994682882919419871169321860556800109649197937328401035060128105883197603399390837080862322257340310445685226066964068781834913813430088090427000373762831929260651047865701029071972084304454571842620702909574478460280574162086164904466834460652026606492910589313575733780892658224667612589698225517505023857738590303455065159321223903649379286068860722807960657352297311163713452442048430698808046112792994532081359558670392933467579879466826482938601025582313056187082370502331482177808455259544894799324174737143194934533434970256805931446935836744665335638183898639383916046476126609289566622251692525551369034898058484354282200486452182926496723268895561948097134708413864881877092979209477109418962159913703685561076646997680104817896401118808251571392359071125434461364079631562036478423607282834605587246440132369348142238584930669008962508420825710525758628945376502286290597190647071923265509976041334657505612075508325798013531863953103771311975528263399938106683550463370245491455054857716642591418182655649377379038456066277882559046543015172166230771999595375531685267763207142680020441245091702634577611588868760069090655146331954490305442113902238856746203746687641333728581882172988984610727440576849963834788327515983179176904367194575580161774247131048619044701104270503751734128957230165500937723594276778266508562437105649051288689149041418989281614033991549083727151901435639038931221372678762559392811233088525690279099233805226118012455445390977287280626452221103865738908493299688299389825683646719384106010604944996923935126446777235899803786755357080477161254733616026292695478682589145150155644267328630058457889583353990469051802310385742201445603130725861980747051844122434503688153841676965347452511210189068851119469620609612879256071602667003138921019111909512922585334329242258356195909927130505885993625465688578989369349715013137336800623217999749458781389851507660082040260047308337936328955931921322258970227049388467420823774937556778419388377274834492015989831911742359401208375934925664659955863182408679678958226408640063116690973018915751552656244529122243847947922095854407928677764096933335031648913067226811653888029200297863123237425896763401842276083497474600135787528488221230550112343963366282442573212486706210796826439127828535984594110967049359656286178692336923663259002864185352885757877055387661314248285931574529960156637741460210352613188826796009846020544645460412960751729852387314279339640132018505349824485532604077780566671161317039548644353915666717353228848090258206096706509151161223067462426368070992130826347697941855180511214744591369973692826280914593349293792956753634592202020645050165747028363525067660831624983057985410516997649725734041138414100314192138157020765098156587209062322003915211121215210007239788389857016555950660566365866958169401642982970090411353058227497275207783148964931940303957807643438020632533204734803355470984621403292291101484056844945527252533697896411855595275799684245055549848032453168848021540378798153852575789978864164534923426458905569664610000981048615911399436001323331071173708832329418731092014934544717639454382458828955465268493671003439917899838563126528193074589839138287084288244954576122655092610687454167167652611803994906543071381980686308505494053532747466442991521227577421494595492000136141258180054008093167787916519620392943590413137371210212094168736693155953993471791225520003869711947104765490886018899459150122256750644532030021193158547755610518164894059249709639424553747361136666611658583833574099866550725673730183340415589848721176718075950358323173652031516714787660003295355075711942898167396838140227533419405839829519142768252624893350052747574095366830143966640425764372346148978986065413007535182644259055967868864368621811383481904643669192676934955793341395303013207474331891448892251202136130547367742460160646316451736613543307432932266565583111447948282709358517243346323613818911371817365077922026006417067862927334464499594634193240468692486019646633047155629252253161627702261148030266928003649918734988713772160634603997673711605610000095099652864636661059825117998442480315052823314512731940344991609837143979186667474359376482503076997112733383792105072676898335046219401023041103987414051636683979867770881976032404595384015549872519414395049034331607400940754311086166898028289122372487351911511573212664725386905722972512799581337999068676458166575235117296904193640822957532770199448635551515025619792224398097173492065421545924533195793538432260374007817190740050042553842940070500075865495078455851957336509934764233592017397169279725870785340527297899996210036863077104208193671863008272936938489279768148313496669317009040245129259925992715282002992332061649400560959072650347202148325645669115622893247954082544756265835911145403952319973025816951417171837228572856761817947590279953766592654257582395270022328745018857473073152082660037697589406108665752046873326451413250427368058781757175887597661770091702366618173172059872013936309613623373244928885366066169631684012192319410821135696128698899344715118992423014586265980673687011551987757822032054100090866503398492630643722629603548691534674512800046088802206257302551718439886656839819762654097218548157276164577879473033554062072524743928189603745853967401202891542321472067070948798228889850548785501717570539342939523474840299105634636752197464607190847556647697132863121055604109818219440597903585570077310876704165535141318036852357077515531898566229605713924344865941234798871806893958692465106009401889321792465515691912130688957597315660816620269698282950945315103618549215129142631426417104348774272644542639684000832526726380105478330969803693201473621937818389696162449692816138986503330591080194646989427699004460710700378309119125962170656863605830479390087443175276515027737457554611864873841069922932771907835546624447332951777697009773631617718553571867518345605997108608353760000555989808196180466016798724314967886624115527604921912968150266335142673052272231963591475870490808630891525147790128805536119147949475603614652617269958036469392768851045848047257801322435645262618354395490357054018671433974486238076228754946990850965448023454269011416196769730593539553231037329626160236401186330890734131872571870887033528210599181461514503139978283553434509470086117751732170682335641457135830255350413509966891561605834093069306892213158811257368746007332899218025271783042252559298312903846520278291970035939252504933832461549036764938008866222016575384812729249724738624454129263199445208714201441524913192985440759706960285042184634536169402722343258033002392480113858845865118627398359881216854385553637780107174351131240446562087314651027867716209982090752594645719158968763603696261742570720296301826561745323819615487542294796308320195966941677349432398617951988049113564750517357812205335757604830532678094686523303676423386634373070588342493575431516992217339922108422606858482076095311004567672279461409940698454405051301838492309778966743147796723225362309013810833014053915539950986261779307814747145916851657953752237853869754610680957165673421876178360089221750606635183226037248181181879537039807267860694916170598684776165085572391373040115497712485180971088266944567112014362201911141218912093624558403351982666498156765447828747454944014954096173319646346959546414699712157376976099773936527218669683166825013950846187247025649038057065270576393769689297447501419735739901413808869556370752201240042352281142827148311815920247536900320329404929011513090616682532342087275212318970432903983115071451673622309259527935297524825556737110376936565727828443969086702289984925434680389232049077546406243160411411315727576518583304656876026994978970546816156890485375612196632471536277153675022433648440949092174520288331385283731650860766440813272814286152231341926851807504226624565289771577148396185752152168227567217009833095139109091621971388427405479689331771572494936060263677781267564448088120648787187796093748398197473711464425396703315648643383157857449945008399144294515138337130823567465622121731997028955048848668217691319197111751959125212486604466318764567111437393660022133664749816316863988245037259087139702284362443633743709134418706584632321191195563541333896001541066020888485602009911628778845735387221692027802128551605840418743676513221457962974691896469888032522849758273016211444141477877284140096617503308835024910942918624698088136965019337531776168658218038065929915381896553972103384320811770724126426486841564691887746259149817847141496261179937387618546516387233797164356128755404807845119932939538835465008512873638451266258733628374942293490414252348093836992382598341244182431141582951290290565287150296207695628922146013485395419382994653553564962114077350476578912794075464383237282239242795876707400037554665850967111709174521181640448487851471039425298051026941305538453534776708396879923280728167726172520530804723646430864686754310142715413303395534593533756903569915351120488153465314521745101775304200943299465274747837720119581403215123006737342946958665100529079322825821776862267267260876312061127095438950376076971087751653177804844114349539238174358206585952182826763742318236497823538552446159101112742952204668465871059574779718619324958872235171660388132529988261060389124925476554683002471123557817637053943513549484950332515932511732593324768774585298875726590934869754725589854822866104142268885051769308448731030508949451092099865638187123737469984828568700298529583421973449706770328279157055868353712370896899416427215918674444360825131724823259951158741330870582786903862996212696388633894089995880562409007193741577695065579164793685282141307721064012316739844207615190710436485759735296505420665421041290451895310232654269649012536569590448314867255395927607028350361408826237088547310305790914613463306594522980124370972001975992499459732811778695606357632763592037195841457909250445988651462960500019254326396374125402594789788296964297585880644900173099892523216194230677939645864048060217216686889541528785329448896611463485757197050912691674666880594566037975780758746560812567606061107328517394183678432866225237171734999250821961855059267143729785806842697730385843956410544568869960013626906708211362756997669662828129617381872093901293027526556021054754838402193817130461968766957559568337296454520185928070398370171464757025059974239498104917563227802473768966031909095122303724991106536724368707805792962638048754067986401769919839538415693651170645688223574588184691287637586997319229122591693726884636877787204717045381513871476546475043468735309950412342669557160500582283276308906996506270853266808890016872879000566243784615575543295367714978063281519279557855659825430168917277418886210831392869640970050752513739397421882818440384583038647611596142093771650363552682431207844303850063928065567935905884550823007848193945302448933768725398254889200253064150432681799013750089278394812163762075384803709823270235894669758619085050754760931582200834521642070940967012398517038752869107339946919873622351476986336096757580171958859166807454587962405805958727414637437784339584629567146157426018870345572454635831511195849567579710022449024304518086746119618791389519353546034379762188946124355524488065812648030103428476478677460608140312179754062915919639206224656175180595713258741031808324153664200384671713800251694335777784890919926729537667361957621911443398671679404825573189146842180856599345476855984239277287029751562764920032835265033676400761977609932507146632166332927159246119727615107214856853964470661694394924044184502022498409226899126303575008939019827174444593487634172043726642823856840351757124983407788263965233491100210160487355756678140919267728541373838128791421306323736577350898904879926549776790413294575446605920752814877715167809968867192819302887853056340854793745336305141949634028101757712041229870567547428184207428322212379938870665007854981405145912585121900457494918006039724886367469986193821298981468751702045524629189409724423972101086763200808859026132905112756405991205430148231293533772914853788942227468151327832239081637933449361080091154538749540074176210413722875594494949155817349753705458547369266135678097835130822179489686877513824843576353871034361301963361634754484378457415449132840270270153226675779367628813750208019407935329610835351495043693346370355183624392903402584491098500683470665040201812928694610599807104814419849415840448213636705178135235600836126594107800519700611982645482380889357370417845033776634893967914339464860363343214481879160585768947716740681666451147837511679887704204537412019606211261317389691899517346952282356707968110285859728468508528642015124504503452676388328805249044724807048776127619103162772922941235603199822937155445801064234881834788688066149501968567988745618719391095342302015359656611081322508885134605078215226983980556502188999909089229667147320355401006593043864807450494452255290247300187285532298065236367476037296114347768058087028558896345599605158643584995120067678667366250821606976416159595557233234342382857646215148602838429552436843346267202477707415603504913956800809040203521116707082498011917219007526999908022120251259199507397376558153048763329664667854318811533600268645324893191795147047790953831658292740089765573173490698918733588948927862663849206356377350348599139089040674030463512206728188090502269542123334446369613587485532332697789334116724447005350539171907712521256348705454962066448577227109709784866120695520851147653660336648619898016719489265332318934791321068501900521604905312192589271495282120792855296552714158721896355613561385885276860578716589707214351010817388083461078932264956656675013788884984074914960237623837049383666814105781682082680603695413932693808694650411955564753987715567785088093959357516191755066406426901218251273010606154949376479933412531662089716967732208522683951888539758680837515058051244540061205978129647513614545217595975938167011911187096505211418717344860363598479852392346639237367352755022881713709922619023677624867495565042995695381176186059497524673720746622134137996026484437274495511682612445706018070600898643450037960818612254971570331411783095170697861220801734063414612202870052107320548508061733656905490615711347083561237597574726967464192586843806905065165308588199202565326872473332809862597820502398977994580479087524888954638812227113504985518096680387181843540968614946183430505599782849406107614516306593347955100973164355754050972515269712150833806359718382884911033811293141885024958038136802176670074801272003655196618830784023733616847885245990210202379726476455943184618775139529538814144197001956828043006126623229846299507388273339871258218940062389284380257497269806571757875193513524976423250168439478134159276618418922842926279811052275570293848130789438527027414556790490222301913339187218043713818064275448842664328258512393012740115347526305269860700869777772653463521129966010191916451694231506989974716549785424307720343690829849284122069019545306728502345996118508290927902133699789184917700450210808979487080533637022618025676422088598307099460453647467676377131877380879204716623086295197869223619630840367238549525224565964909879663410898227880324390612037193864004091973659923952678766290298264379607991228407106727616422728159762565584688012849375682258312508486661402140048993178262822155091517307462942956783157241141337505515267369773282793779294090938901447531801453431553796117212037883629741842889667411246830026267599629338764978219430648755873917410595446758994692078512035943179223031797708207701099584957147336317227121268687401227034721688921721941571547536544809212630017932135506689932921219013317044240535481945383686194640102631162719702014818715081959603216384148516367269973518811140914222553632204393104662065128751975728876031367778822229167869387097915055316396124590694700251279103259855950063199131969930972521682895343779454749723360782888934356961387370639176818276231272703328794733579830779132103130623047708496169691838846615403489490864749164216358913664196048699767653582830012187357045581041321424944445409182533411338120125303179824287191772511217784913809319566106101372662901728930751413839380058751100591896721320683155053292556279827162442343160802798982527656342148742399061227986287698949190900939114510574937086902886379077507553508857533969067929135070592922444730296852048956281608863797677415098966241992534656768609566800684947904982799506493886312520164930041648002760515673421301411422884013117290099157433256105277208634674358835489032289859100195482794209212295992022495402947616167194485294864950101667337434169184290150609980265330182250175783627813876396336440619426186434244410326285541490907006324422839984736041299429168918844578895833000288945486052871063142030348154442562255423535430509875919871099856615187437886664238141713082970432329906014379224070425147833607785296559333302504327063056297287852836352898867642830998253614594539592878588670344541757864910533779411765436196095758481412781255221137846991841945375265564968132288754043032233778844068701111022825556303282429781753500091526677412195738378038880788900703044796862820093970829860512390397963018634806660191928433612671107111183114669108078779492061016178072525467330449206371228682421021176328657665701339118117401078286932977871899340618274359770215123457064386765089200757232287037451907854595234179541372022343018082100119310234787252295354652538244969803941675727961536407814458999578031785483851165981071467470097981407096338419703201506663246755213648585179798444765057521544907668147867441376892417438056394904985121461522767544466177025174140674648381514306482642487245494176733446876135374342730408918549860396013379873903570839091782345723957637334788295169206158637834017900167359778995133264000440888507611372258462515279412378849607983238783990883904835938662446575032558233945749845956971446738157346640430017733224587687250531274406981029898968584909070112767880045754460502114174500200593428874913509227622490686336192525555676253161516183829436828378555582955568763052450424806304156866446968088079793584349942933626900137794766291572787841675939210919414801956002914323807944294756780568765606468689723212567037156602595358357626877338098176514567743641817361658527380167591109767000909481375770664162058648890758639027871046519051028901221012369457982175435912204207205058473377317006235384473804582157517441454415766984521482098683823261436876718789045843714332339125335510415787795786012637833496496764241564729620454361046939908997102580634516670936624384016051643117947272004965630670781532039536897823982153590520274979939990587692184387648141339071025021478875524120464396758348828222351656460069785995661894894729591802414498585553944258602946333306074646252383304481806879885188811304534508733061847204030754875369353153016413082564897132053440147449167545785067085314241123354336059066817327018957350794639966926048482851478348845571187589334067213437564813031771092257720196597010341016405394276586720123729167556130913522910671954508088545934699624716246055239972231834872021628793814790379095565337193250699098912318857802539156780705315833827603229006731573351940783226876395338316921969053768595155822300824541948578591510773573198657000019159474125903323082230647244373831036187208673630312135422632216633009245449553048159739739593104703801465745348834367866956653211956079716126698569822559625409714033825439220744346572348944247372463736728028563246638889141309542639406122360250138989596194049024615028847996541284211166086448225742057107016857425809417894069017188591382068709253026416206138779671319831645996149971116921744261829961227837530165309273966889686353943636894916423252996475926067937966002630612542877243378771980489060843309818238284086987282402842081950817860147654887377031898862837846585463869132119603917326217608921439628863266406534689222315322446187933334461234012108487167891709331515628509152426073793127963856496760464903918877544941692662384462385332431919307804866297645278387829445169922969252483929304783375190844279382094997463776023927213775311260794809939062857973192681353978366925120201493903715758951456760053386341218967658735831870070730144851218707965385033280205127441826893033789325169991999128481504324386663779956216392712577087633057457681041514590108242875842116882760599001647709631038800180350301540634004535913569333947481268153119635883609010284753306274104072003344682223260951897683799712816633340438051992404053858380611078295174656985944254551017518232744358144729764125562353185532050892731644815430379756037470703094908843295371264844522189005147752567007137481232402656637829360759286441040057115669498204675905519350945498692232503290207194249772424070515057894546374547727725745379190002389728434862823771472585502476910916928028895181138982301552345345688094613593796217746469260849929354499024710999761956256276538182448338761106477634197323440983768777628131016311775967930550463561669229771884660766416347315421455300361687509575009854080121824969817481893941255819889252571098676358900229899682712089403207752970014928839594780699981515745885839828453182573484417830220225045480849904417203844643377000347168963493417458154540328186543501511693815612681386723258045741486839987496077786538520571218859512758647078239284663590136081634841649558471272151158635769197495731575963422681363891248861912026613654796417128386633279826443019649562319126118415541244189492032560983993684927174776583651023049957874702806010214504061183670649636597180006045930292548675364416059433675435673361559021360179069146945869359897653121869977415649371048592999983864491432923591454751878347930961024973571144321797612820405919656189683998919995798861250919260232698351038441544388859501332252099899357621163999603267657602355883940133664448419381659258497997032837169442577788122177202605192440060667185220335546309612866296559093449521457326236663331006711344890180559543375172840839491440101017605066469577965334031610166037958035381656796739073073383073756518607369762766667072962239734368256493133758325903820540952591015337687732787843329328543496869994900680322953252171501518693613643149592406434437185314254669511002694308480964811215787619650337428508435134934448841908338659840199019988823680122153332224973634837441676635279936414701493752312016434655187346961757679941388670233547848742442026606166978888171097486622142732644334774266836175563313275061774593730456377620146150124742846643561382624771564064317693989565405312445239033330800466724555457598413615525457032687115562546787972528355057436724248357952848521236158569540128963319308531417039189107023183918474838533133187714054728965942069163827336948781857247936644055115662885235689859229936760127372723379047061047277924341664494450141006142258194342047420870346345604410748343729736612573803398805151249942133127867735941074639656445292253518751701515898500455257461416246938537955599455898711836944407346628116446880839391769328286736168388504057021518802638738085940135640525807985183744912201028994903364589140393387423159809218718646370707872213237917480578583059338689152234131552271650108562994551097624581324237561362298438925687923780104452880590837042766252032019834088885076745830128371277684663937130482956883021619270092898145271237389559736943036532782803264763348874068412692588132809073215636707908601481977076539678122773266398877160976975897480096800388088375973945896341105917766737442150050694058661811928081775957523515148939721097575756160659599005500218858818285089660472783523778678006383149047398795200263586412044719744471797955104341791389629463148868773030342325854284678488181932614399936004849656638232624679490162783152456233570848338518259290243850663253974927998460379983953750232361192237769585722082963486452635323229119109387042044531631120992058205615732043261610690785829970834922808457911779138792916843219466489302380586297555348517562506417835244454878139255823192356109650461883399907456634079277271486998689526720363460256516570276158992084047675512003720037504922899467772537895521746537995923830705834915276509610152791389440799445134355412237676812214360697054365841532301095113283644583250814760528130547155779912835351222408485692790198891975252494761702874034109943009947257755949663440698345684232606196464311466114294419769008412967022618798984289898640298789551708482990556699923772692366113873240125966369042437629606970333358517652050980315544120423063651531180548245088965918515351906412308537113968519752937760082359991275105478177155904888175986636782664563945193727355148138272346672776366614381224156863856882895748570154914458719936836022130665878952651126220797752087500092345563276551906519112572289666538602782252971260089488490774653032461360402717765671823008842137947698712327065933544477783968891132953092937400568340224086821264929344627693434010389526825623464012725968771469213244844015455630768637321209909971088170869552121831869613932058239817636204039333268748853254055219243785855041976572118690600531741705933242181704153354983747232327479380915168230301881877911496146011528089511076131279859952597763620776395232286320330163023233698296225427393995370819236638026234716440642016207761903542289089676288706500261462587904407491555417081725872622709413017436962426602216981866043259087108003099601638825545344974800200733888391347487512502284428766505598471398728743372576164857328906485228804074303037158769936936368790966252482658590956108666181394021750958681049673257660983189801694853541671597929568174532172452072081491401332136146146946513670526107914877365219980555116318342098748919954438730972969850422995277737104173139306521938272063388184785739934327256444599583737634568339733631762987833433563794431240846231682939216671934755004007056024882215002131633538614056092151272292455566382965845016466188599651954236126230430707941610682995753691927621341047703793315532221548130919880234162290695997413334660181243881544579604147896647396576105953602721776157733993432653340201463249779643865851110122754536928049682685459715282174567833218322985513538413733527647930369703414464275209793593775216601513286662641611601648892441245116418358657255909742749246967848006606954155988194876970273274077022449001711031948087293987377681822075782056682453091344673776831764346199975225308976720149020319864434985190775360270458019290889802172061326321071980908437123351603385548332577266777184867464209131093039977385410622716632542025639983855139401028114925370947932882933028133325705511421730261650949867232103045550128701548838090396217276800596193455956398047313707358604160814695336177520831121923739797267909348625180838188715264341856696061833197235447188418362471006302272821495663415875874664267643156766224217852639676567223540899554136570355901056994557060795072817336209139064774779959545642513602866620037027235758769503382986434083344697803455895160236208719440656644713438216081959558640422225016343996126666369666266913258916225305711146736530985089873048388603075160422547402502016369756435831089972219432190332091898942310199928939753204884212313307197049106360495717969944727899892122793158605431512550169076885485424029342046178191246228437621585072755869443053374803083000938149055119396975388069739893930492619588605296100924809852281870055194126020771545722119291896860870817588200954008384118896357810271511974786160555988794531625182704256577619955770906837649596967086492406844671145037380851977564916170344152146016477736197051132430423293930128411426059643030760371626315933025038387633866385975816330750080637955021841232780870894034469403602273666306045502037212552422094073106582350721646354577033343095303691661459567433037620469355857948869900058492472858868915888912361730783753499804111934717763509631417965762693413389349586268070945734874355032755932892439185842611515516753650562232523224609707076142889670953380929848136260313201487108880251424602038051923012430909877735041587088963103682573125444576082685702231253607092815328751016566818096969247075779590449189682029253463968891827326343308039240351242018664508305552189630059022976226081227835980630339047634029825236327780270502369694544685920122302414297577604956490021742392877378884876664577028151987386998377442673995917425281882448823082129888745023034140959866580955382020413059770394779196149534918444458572473427528169880418024667331636163086885736482414564825800128919203977694439115838587407245971478476989531770423592354668893888109688763891511620079363333252188015670877036904508733208278166577340646412855387022350294531951546706953086844900518510016008973790007954565632950771988605336275732979778056735324177749444044024363737809443878026601876655639628502611418474443779131150223287946274685999847983038652861356728447140894560690677859910249626978330627372413881564407002347778849149144965716034954004651670278360347850423362105223420541044238555659283678937465022833784853963318376577767707622965462754748207307019269480861039756482472394849514401110998354248385652823463311097753204568874039496281173917947233693629097577159650965321235561053055257195435791921882959759299852983317840850658074476222280149814257472892966967216744722686392863735276430673289115837298261224573106204842139746657173830869568406827667626805328086011054055849594186079248039259256914164561503523362359876508389847220109575348088057977468725755204851705470873713511402227905837377896253626977062867319668442767250009356929211051700817611342322426934327783924264567495192924861420220611099384878528938168644787889744794539187607957706978204907084653804174795920788547493483512035272536965334391532154686498659866667731901447699186840506002062848639857004476686208557267734580556504010479990880594101866807385509503813834025905626628814966757939851447388318319121944499383675545623758799529319746111775615076191812577863767339875116778866955005908714109070131234125261581004657185292714077227712195832016315386654725631053955041062315595159306424716072452243629550303917898511204722518507764678399797232200827770890658791157206954342825768307441803647696115805250670193945921731734077689541091586821710834266170186382318386352643139475660677227328119124259979914239338404856946599400400266767183761102918849895541822152239746966869838076246423872066228999595021778866341457719754195021697245068308651737188401280174800569155614526255143679546829440949139721601493293532751901004281851882747735918903588281229859173417643523179220079103103195665103784250700368178107601087163025004419406544982701292227471588962028588217679049847258894150227210804859311477178085206860106707426661930740602186372516815676359224839232684682109663209257349272639522367530038955010875313321534233954065810981186182651478454113005550396033692614366892899478217086683667462052942626591749337348990637234501798798608741758189834841275759458045632570300684098920157532753504329970933547048690820244684937823914823509994034278535694908618722918925869398346570010317805154826557912505339015000202810403565487859951352563834239831212527979257777923195764259095126429232394186761194402244820776630340727641367085803674756679777522299094433549725305428510125132040700105020196810528346632388156694002307502486598724391699861483630866127412395058666680901477562019049987030269137254741969581211160687480948814032771306072910795312694743770343473821773441050985935895323405452946946252329368443930179600068197068066413491033528729361196366361239469953904908473658409081876397532951224654998990547044535417555734677604559336224388179451302678302659960710900340192519854775095481117578833348481928053714253083260658590050163930906467039532975573906529418860352066440513281528528058252755037607808759232229622349401574421213605003403027418617971145242591017964005635821484008939962481921993611488440102110594853302507193203401743799459221505371758223417149125434229568852432058027492257774757573049547681035583355738911120025095769186495421314446198518521987864107884361430988364022226050700067985805180424144164418854912928089938650130807826704582982419793190213916092258023304770323475179403882192479783531250953975210021064466113728579003751255355646681024328754038114734675481751461457913001298057149258460215905324361212108875039514704985863953335910578584172708241662306116749519605934127325362321685929001673763313318964302458995154917611052909173611790045792376652159830464266983287693606114684529262837985651737872672968679873708201035059606564189084657269926784120997430583614779482994276503774604517702562768508064299850089499188137586601572552106813314097138525191717823796555315838019830586412545544100223419698743603405882827128327253092066185642746561376202312292964267385550896329522397045575886948452227258070497064898648336731083741442370642999782087088011646915458423177482547425068702975016754951785811523013489071010020724955138444486371653572778416779985710530095251876629841042507718925157013843048720102097559690176776768625920093064593125977065425674070764627167856917692359035369626089853163248261046752441279895262015891520541314215944663240631038609223882369413459735301107170948725277898457839912813138420975850050786870631510875397995833307229756350560237319210715893495954459360031845371920772161200053178680464036266855348087954634807752803848283324062211054279438431451943826681948587512765500493704585588895205049931965034449079716224687953466995085078986477041227586868131713911913537963002880705200881836232558574342432757400058235958213101857559088622866876162747310320714801312130857432047549898256135178733798937150173467563339889177921547630871965435276993400654273067174956737810781185941236447881229584596952010236053278966704367335509061922739137539491269115231065766359718598981841087407951733615172862228729087828048262786714714432056492115736781180148633111883143750893235760612395825926040729871177921234212957518290764302938029954923882490483330779720883519209360799271588613458193730269676676745213662878529113883913095371933575691182792893629378018135870649295467111199544277913742699914581331839649073457967168030781813779962000534608953611006416836657969853968991571117194738549559207339678866084021926949136288193068787182125430080288720995153785786661087956187236966125297232477170913519225163952884122072258795253832632214368021972439736137710441002753167889019435354870780155183727590849860197184188984059987969364261970558462320417849582610229713589897938299019948777850348910278730469784704974591775842043420789395107005257728244564821538163865576026094166147680766595175337243936015650890688957459572584117890670655050127630127630140365536693019952231959313977330822159993857478363223912184759072360998051170579410373788455178813880930012832115110164721745665526961206270616697367385037265183469621869646652643674418300515171669603252069890259477362563291071089836578638425943179127450524658817117956346689172331096298858682091667478141469539928093756572846353017922702796649332847083276529707018482704587786198479840976212210022641867970971658958506132258595911643648625122685488200374231139017323461375283966759334510330127881396189598532212595628937652251237801665852284020093188957629281113540389756498793611434660943302337951132921687493335760175083917006331862744304889583697535046301164513722312273592905603433108062486598540438710546276042955253316775106976876578867943952910080282284753583795977057989812726343403322357015526702218574065969226505705784980702707999827674721957307448306425751487131731531132820923113555772783258988605351454680549944766787113651441579116254233108539218675540698053042331832780311309614919101570322615455860013290034376782102615133036119553974385061562616448444259046456419911538473411006199663734187817032898270389494183957005884847359398384828626839426186153885383647843403556713717153884957274061627474759058886447582451776261391483316157603890989580313009034700663228338339485752114902002300289944883430168430355476608992463089179137647099678325902562698020662621940736847022229530095631922758637073341807160850064268902514150971546444950084801571671019848369433836065101799114715292413477813295287523389570064990762681742091313068498103510667935469531283600808951395850749100791312874643179649088825885011599723032790150279436529361178189539115148695036314071014205445237302634654964166638967582837870780850041688427158760864997321112677953219927084587086430178990942941830736829268276701135029677211753194877887888851436993230499466138618509569921967539679747213487992791555401283216052711198035973093403370097194629240171211644000557876991551897930208193669935992381623384450642393693208419029345415985576842141454101830828565535383642941537964623402845751527342159954965138851040106746736639730437019467842438248178821059636555834471905538468303921986323740959191479602462202811082506776386462148240104747477637577927211144786068550561461153435169996593967581055258999730995767098026534752955961350069065440430982569965112620475007404094957874520377869053320566962647082331538860788083407320899133272497960391058583014891906407325215470775233813019785878197312797816077529058916988038442035882511229809380093890145618489251616349105932052800542579570850397936572067074073423744557185303893825578047863926628769059381107344987360923954222566795057045228183674668186170876465745897578417596983225019159242777116698908858704474274418544000592511464272144219130680394522406951183720100897939619214205699367734352103382546419944953057110166169349558325584624112899542032430007314215289007538913242552775163280421014388023884754925909509311885278228797493058170038307751254705507009184413759553175217133468434576287273900599025575046572474343707134633452381299578986933050275666385323699054308442757136162544081992758376551707168749395119768151171903451240257057602178299414070213288094912891670513780692649347841478233248871355780470367301258918228223168074076324422316028554936712500918753381369429597897149189361918940498374929447832316259420931922197193486103427941870772759027960828505959130731791058227551075649748800024117101952575161064850244045958888158951132909896577890133335767777159230370171530268638755847610608050859850534065319035737332619194788384201762447471820212564260704290057516710887570988769800337014837139113836564105640659963897927694785152489452436291088058920472722463164696039450080294321761612473624756327135845896154083731646343698683973956037492716331846937212813238434351621495145818923167756941339411868719205283985757843691610738244733093205485665881924149933370314503559537284983999773420360370014070510642889540373128556648617153255658740230517242960197991351871583180678693260641321262963755295095989156878167503318509007961843708307121774624194457253710883551258716018813261424559607764861939422389771043242788573390984437129140090849114138509603545615849447395183917171172387492504962729141166784304789472534712038675062443030847116849890869743449619582863168649848783599647865875080981877101574414314167406908156713037206343808181484542752210158747740199385551848440639553122596431397541898897584729138006200373409621623101807654838528997793673626421993080602016590811679611228226845200725852537181428268561172118384763225025045392966658216777960688698629077789139298701670782693575202620682589679255785186393057933839439061690152244318913166635129056466768758773708191362934547732610222377474174053073562427655624968669360815498266018572729855934213117484609256472261173338213141895174356995775977962197082002652819706450920101634486070588785146419217723918843709086006371950620250334325739390696599475755514114509796713698197883575789096365124445832888440978201657957030508326384321847860015442191888434940906863041345791864434335405971589714810245977522483038516426796246678730300522899517385634807606624912899504782822522376700739516131968028599404143136259812599341311709081484300588549620824658385630012008535545141116726961910811241936916237232938819516783176063801840440354553189026906734279423962409826253788592013163049188026905840304359603084947998393950758947113585397247783112419948697237265508936747318586083579775869748718170275422903695099536525565307652846547565013549726490463484070335914703243418235699310766683523597259006886912306374959691889063475398774237120987345479956422858302514456931725766669782349580733968200864590212605997569794162665385559805400950314751132765884020031831116006430330196779880207999461117157824169891691150541945282178281709277531215907788115969348225429464743254180616480606349121733507595988668397361269914725842331377715971744350083694490562171015169973571630230017527022398868256822244180760182665461226445007572100428616958074452381909566055527319394784415852752061306093746996879723790651935790991721389804381171182936372805614832184408368244041307431252480829656949770557281035801300138151183437779914850843122885367046306539058163472045742954756204736789416330037626899442197174640231825986477185598782461407557214544587404193592161263162804604754593756745085700214299920674928144506705104635310499965229078266783910217283561192924248097643951625601786204051203297260614600809458532407765442222126489068493672831079091832078216250531809166546321783495597277457906050981333219809845370655588674547458543449046134105427937745231452473310174210286978210888655754046655270566014206550147986436672269782405746524728951709973496776340656437389754105387071324044268847793999804288749102951220298349878910499275042830026873911712440678387355836536848664441687691755285432743444404800725171519823338085550331209885021291894977834057493958431837718697771640992946311264100738503148920849714749446127153704494935598952039473683010062631714409635811038171952269330992778032890457321890265372920910827027767762084586893863006385846792956322860717576226502931299762383355362805778987997825333081661475220819099687090859514647324503056381396044140380335088166961755796126661303226141352122416961571472285977500352945360982987458928580744468665879873624455043896698502351361984656368428446349645462439255602678442322945753453883225389479443023201827454035265311362068170435583066596125311992968918245988627844504388568840688230849133797413542517763154562661770739244789971892043288161393699140698195032486368789015824867654077290799268707895686693879524821499405563705979861083651494617890429761074289985749716620747012818908599985282480056840539349020141178379486274411782280055745023180171186596029839913895788120343725684194507007229492252305414317916472149831253658866249962741808621114033806931834785522566595141142934295154506115592054815795045011096733876547601659011770637236375878048933173712676564223457378025701387728272627679253820558021096967228154949104869966120417075289088475677926803355269549448638213435813129483019615283808742163558119698836665835177205068555669610925770526170206821254257911230196649177046822029985571025332151246441599649829797978392819369713183559422519086396875754062591566459442289966204680470112614240850238422435812588896148478734963328696909409480360212324430917427685065823163024640556358647306179316750444138013345618279446535414976826685504293242379695156635767162786069211071577833918034489776129669640602578799836921613552209192438402381227547060243680699323722982054423699682537157969967889202424023175247983531439661887398483303624042529794903602883739260657234611168032812878491494924078599881929897827970719535980618624236386748044760271810618727029735155505124018667764068969271934573824294897460428426929795885803961575198656108970342899367516897744329506266399396698919558605498170878058965149279236697552406206923790922794606788388165945984621011107925149925579730464071596646085495291300847503735715075082613660750950926537731884191608749320553272705374183132555844053013696708187445306356324445229659700619862135182208403444051361335463752875423292496238464718723360743074154315071558917587618887133691816937428591193797078304988786549184088867846915819376316492367574105853686046030713901557243023761215997492383101549837979535340477535144322930554692486848915605613708510315398245593313471224648398753580041142733964957199847689591469604091230109712203152214786605544561646914437316573300005686504793754911526330579425744799773221548034318727069836934522944307836890311791102167866587508622115808914832013833215461415704022867150838622605308738557242454346537488939422568763427814388595397832261377084086591586881528481895108248965435595115751953013266838519567521019875890303082856344681315268849758174909215776741039219390072256209990389109968888337967540193659036718000640831726304407223126150579910653159059084255598182265522395047905461603799565853250666822713074717558888660946372761342308418049548759275134875453243681580945979113565630069715982540224705988803746746513559099922230755833432521835729456043836348740544839260760873237480875577540580676137799845715385201843093385186344147222571282732768232859175417512708288251863017007614086757359625794958095591544572914631141283141772481541884325652310393669412270556855121651290923892681202083422897132950555586619999271411936386921261880993887609960348513326587859497577148646056218109614735555041896255671111448855296650526997127500888035065996304681141068390985136371305901779916991523773316780022438217347556105554668479742347379687418729908071831376831924289412893672036884722514114178671548849447516182415457633506889226656279260692405230473154021103369955268712312369870215367167525848480285600914705910585588792514305501775496055086587957873678959536387063044204252917567659405124017798800945946472111705526986024463063875554450563512513165496717690795171038485443249000513992971911701914021898666103755358724051884458969026646877128626188634091659485652150205856681638895246865345422862977302733134694226890115539833294569590774912353868435426596326619024591046898170511526324551531097824537118036964678096561514372204701162068541457981037708244055242155260725668557446117343384612038580546245710009119769730405488014438581645907341076984775405412636998993409870996971231258509764658055522945064185397282704153749700293979288799068724516596377009239104167785752107725012254436052324174406100072130124424995901243391437413956967473251523805674915216393734527696711317252256926199472789138849983121936211905430117394004998327402152489920556659644312897584798761959375702935600527218010411233555480922498590729607724369148030895088193583153814768116583343828643891212110788956970009926203286454602701857905826243375955783570455396986308127032010556251263245964212802472139487961864003282295285999752939430829094414699599871839962852000242311372660762074005058536658671317893977630970255107378193420277854546114914507840638143807543338444605389399137362486297604659906633591343816726922360263754791675464924921489813869675721309677511129858245385991235028881889457356407394191841080250893259176201530678700828317623844840403250412143408387955490666686198540724884370040037191968610337469008638636136559910999127753084553986140959415395369917953152607887454947115837708868433629893972973109330374628945493531541559558852708461918293858112961902288231075161022624627713225360411067220445909456578685533357450402315313191008788059680224141683847965244777298372250591109367504275793429897952103981224500536767194696349238252815093540385048457880515602477862999083480881110306498182891192191244045212262165263194909341138713661026962733848229371396360851649955118140788645389035312775769217921915928766011474954152299056585782692579556835485853665184933257574203291914902634300453975118408928062614298161572893452397956683416482162969951176431446613128242196545161608105780682886862086944950362854570703167585473849382029918371192082064777495677308232371355428374143996516065998503723858451672551675130465509297325825209569706715315640386898205231084784825210784730123340912476529892033271849767691469998005930783718286924859888715295137608518239288720281357011109804445611128853930209517796523432069256257968921702136367948429844385098929076485047522298556842228132778115425150940048421319239900821780581693055767448952307906250174110813638382963828827046672606106370730286731723578029591672578377730715602197771541403538082623965749117905437299635003855859722441427822250652750182434509798141568693295795086026385559173420096969133653666787917410587440867415776098492032580443962755657094169214685693875377801210164359050245905807591269719867278502075806428755212463702388939145623792982775500115260961399381864502614563410848326803752354803116159990205930414600321054078603374957455966970374952319047391826170602583788758967262795203014185044944032868701321019285237670210600347734193594858402258567712675393214922132321804126940546839196400845761233004582369270907635976277905943532909332344112254556980978800923763954521761640811499261214790730925515469020060718002693953715393230336321831424345340121628160677582316220271805429280357755596099964772199168058778320648007416767712835771311816130338861964539205976674799403773737848680045197349952077866959847676741670783295275459196345770610901966585196040779012329446941902315572834266046095483671103001183984680444493784839183891501437738248577725539991820841319877149534222635492209162587343525761392660050248729892373269658162303572154527586823683913287704610305100468453468905775859888431380078323580710940670223202795446684475252774241591755150083003138915708456325140467523370158417861284391060869135813117086399862610423583285354001541256129681720243452749342333979910278836930120670043903244765746321083480599185142902186188128554414558307678053218519350476792180647074865675007308365542832062778428693171988302968470912469588198994097766757154440194293955784312758876356390279750302490691506572456800681474045558654493348014504822636786679513261339921332329467794026746371598355483330851201831392324107964144965206969016804948458320033178683335940622189454519407132919593533844599607332779801873143830875870884248429587133732218085932674794600828715443647982076545723562236968112185271363609213973611268914633745662715337264763998615966422763660156707186995071660013335758298754277347764147011831191352129220965666069720627541413339727112737179553941804880624408980942006054245791489715028289935945935484430672935968761913774552464643226334224243190855935686414819257769353677454149161617792722131152790587922387024539060827185952233637156589338592110165206253697789903454670441128770653460207623820633068954869343848338581108512933671965328519470646035300716150974416362945933415143506617327087181694037856307013668795340936457782127236309151100218930429305355705471410630283391241702450428496733195873556424218332118490458350284605089338477348619881193828174471413470276284826371227441048189724851663974912707827752727547706735755887086423926818599773892235637947084610614101557815873282782732436229865044650484852995552321541529447921258506987574869211966645678821753043193567900033479447489317562293958598867870856139822637993087777787620837465136257234559460977044164773012030835359784633756270698629505146733344361522970432911166402585940638671126343155852616608774103685902853934862037135824901320422403058693095050882801647805366831857056960938636140935906482706096247498036327129686048658321154551473011873635194442335186841320850940442826798706790422914478359624486489228475579080394884412780838376276923283276961198082822357355769328431132282864668478505800992339915491298174802728693505495158195450358842090270713987739528133323524866456623531114943404927687496959420278394047883312458206632943765582528578465892842898361629893766113022430577283077938438395399440506100633838370541748168356757573591728522860793172877402505832781597455901397647841429432784850870308568333772918453407594541104523511876781222417626646375345456665820559657594747372459076498410911436206472018007015337622820908288527391495423788269007561674990025631756994245227958167436118708956918933200237482532062057232135891379284726242089162058970245087641535361262605754099691302475636737799974766775173128104547328724593341823307710191625005482998368892713149900254788315406811376555567255164743513139588793324750707502227764303912498733770034283206553169130257504616443310372712807783932315611400014509666380389196410574426324624877800631180719907554151614121173096712487937018977971451417158924345320764875711651876868431939936191073054729747657246205097933507118830286635896961325800122326404467571904816236568196640673916961264098590478614853263874125886197962575560737475283640602036549274518100736907495448795424068493998889479677967732061189497981012597296355733076868027663175150545279671164702408211760670113985437274442142461430590168941375679308166506444661405713244550741723713986999705160265525021980691930841527816662928260258867008658151692769447963604526111775437837707909149629702118260973389906993804927495898317874518249944492780099761825623213484574450147517547697917842689082261462090181469223531269580202128340641170349985507831035118398029010926379197720404679333557815053513453912685241790192737081113927322205589355751603945180406700765161946233653502884360256132177642898980995826376759934098893621114850756613764994982248473324377382569248471246417692210225935471801945825263630038223297493577086545162065934917071803750376963721123404958651083234858719112702424337487851616570188591892670785056738396796666285147239131282425646375951631467124227677265494450402995595711456966968489511672693904124699825760498162210892968972236817317399020449781559288982362091649141573178668597615032242443596396257689870850623261613038003622824487065349887974482258404250141324028046443299075677849504075756467073181486746228356941498085322960106933853339856816666495429153291281955597609262332421385271063614689000032528675322135800070802705621870409664761810343490572139735560393840153128628524568123763456254482284679763879188358822737113528411530679354873009739361490421508591306624056595591630717176407249739115995161348656312536392464767216830792594948554611664554546712896023875474245527390611514725498631791869833412324625643730724686666321603124848504403932589639243401786543238836707693839060841181906144505147344239557672805228224555437224248641193254040924947656607395884465925853394292012635120494815005690788001237811466845898982596448872799511144863020837587658651859836724065826668469381966079041968418720565574503490716521416999521271835342944545318310206408039074938793779902337632053990470097017276419417949696251416247569839417152314071894404412408741708844871179894493271226078876129578692090744413959855173669051332415402791143300753015495847381987440289014529598447745173172805661428042925631458016643764156453818971548180615687896585283032264004330076418932216404704899436330039196211056039430128253508580630466847913428825902882763713595007614506176564318077208410248619388704833550681639895891700485134504207461619347803604480469245391857890355328391218379289901723664188631932683231654210088857513920227056665247207672947336422275403311351017481366823684727286326056010102154125021674641989479010108312499738823016795760187250512680572364531844295647872058187372853317885038892287740610942867608635600184579723825049776724821024976336050660406523702425527224865984448928131966541737732158027511113111906163297511000392240068794568036536059478118470428589638536527785104743280045451625070929579579933591612631247247513302063308181511367224180889424978640486027719274465016642791845258888700865256605698538892767165558973620472811223858050750870988643017669672071148663529138561146707827274014852532205120105418502778952000190302798416553619874860227562216271158098909268620133238327849658303400275298065044310441903089719102386302961045563739152386749256826755812549296640127024578950042059029560884815898416237477294366691191933749684809480728983810369298003111998145120383098930319474011181498764587605657034324584244009240273889435402149026312708451168064476916590259148143390525068043708452191508329732015436998288219315734937047289776109832562803576092528673341935284449154472785121134510345621162050117543743475918708160016403036031583257332961752754252103113426532744618082244183641262505527781884502591113354187187683466018137948481008700808368869046672935257786710943815350954845695934701756029791834099676974786351786848090458495755944184477838076259849164294894912679610900982998026600420286413602881732493556480458864268837063534571407019426559213338693851329563614342998784453129705694936735778990665266141983737568356259484913275294761852093486310513030722691723763184515161946672325316922426196586644237647783448311252529887966912585919486935016084829348114223608352473893969580595651334127401222897579969681001547724932944010258777832036481259590258254602894352844355531384441127388274312902595665211064599258224759607786280331858523603340448043602086870738846947503574271076196366085813691507654744956628436375828549341437809444021882332068937144787774447817697990426785832447571828782775123017001010320931025169033787588164969075685282302208207320116921213622659858836111941626718357975551422555809452957214746692975461868310816310503590621529591786146931429775087110866136062998981987681524140915059216906548715165045693741955181759127511156561233948010314726644370574287379634346325431421587133055163031097076334889477214590122002980344718440682394144159646959965583593346129168749953414263822786270429398753430353597170791745599722388099446229308853715591434378840119103461039028124329907652060682490998652885170800719639869125636042529726329453819258340682523438192387781597624573557123069682387444148906960196763745196337934943887325414430475954061258007385483024096336601898050855855505881630389710234783858956512512748764643462248609880706517571280088436107257878879079673371304758693244013355546346891155542633978581740368538875682795637546744547788902304550183261994567766812022662765962837072062641275049831987331797258089042277034224573878712431712235896573113931174925574992762418706207051572590935395158618015281770921558107599185171752003131712978290684356942374983173370272936200343439995016046806877946011702713280876351385647166910178463053797374143163316290916428583749801550666678076592688967054233826017490010786687894735833882681247154526009845056555811289914284730753438551018663478803968445131066926988264938116096743896682892849253369984446501629360998610054288379285626324453146772329289077041642027842373262402288534724589586409814088764310522409571793363200658752714693373215600741355469400900277644801855671666478609518512015789437959235483184063676882122564253524197258062652867789555006337987656833746049888147283577029593709651232932384976253776442366803588583595756756482439304506383509271025840667541092532934551685828451690562683823390472812195342853092982534566963323370042028474616163999681519299266283360725291434649629356705315662843295500342128718159546613204822362316381310380748438744493232550475827356605365549572153400500267773018342291158856041814540334916823957277884115129237954524471325570936158056358811484097003315978028346769721493843038501570417084725635052963467325165700456374545380210106274021586449648801279738018899339521270600984974571042374276281014470880013727381703131151122083617316903430940122723593598358784133383278389291036521878767514978643592617629499763612579274830484273418769118382639831135993145058225881850851499122201862535006559556153565129184711481156934854070645179109325921837853452432051361279532460540997997595602647061712246457637806936552136637949734013558041047253962294052858363867253227037267493516387230513320567700593199479084337288881176724647502809435250576793998270924560365969343404585875863290677066021056586900296270750748843360986064371378030083616021165230753740216570779429364201649387044190373694480602558516709207658885492168753091896987107000866094570221682279843434746023498661657050328974060282954782973605684615636174673303078303941759049941272704358324698370724876923235276619182922284122936976980657085982264869822855886537391093266129159540194699954882243740504640544813766803367927767356328820100370328405770165087363141719708516684976199938364335630013307207349988664911113085362288304657362605997712203930465174770831108467384266570067778300317321398063989809408527930244790695269521603849190410917681460161180736493325534868223482467045655693022661713126822855949785588402047326704962694780153916561809896416956361518051951814818804954598726752723379868818835482898601629293718548055143768526240689341518387747453177071476923607469203747211096064576357996096042147387801979686699652564721982050264371500284010611573029214320693286983634715113868381141024070665313719723834543193774174027939214569132471637723503311451873722328807018990635841125810368331994289325133180544778939408973186595089137507357574743940110369514783573053218575422982942515414255911071139434231000728559923906077610865486887330351537741018003195434085153601433244778250121453179561346026831614222885149664772222072119018892187479469177774374671814362308748826743951663316383330613719052664166143267989867756918422035504221645364211931651899758015381587154048736994680971248762875775771376945649071796657206658080216574601107236227065765038671440078240656322390806345166651086804729767455771756233602103684728018956403156136493881957647176039914636135409790730124615652644685484799338050782493780123348091862616644353479560834842249493953131191781010066164514078263257197475180713794075136731333671224056127593690880027618835926650482934958558414719417976009857303494278217582421005677979926896853958440509013337486246643427998073866509316754631573907615044897475198800466618283117710151392979910841553559782668840533212735139627535993243813675503395355441739398490232198280093846747406735049292835993991907863351253643176115428510100690773451407566247851005149353113399278190797714570451627560480231634244433287816608268622523207689712599627785232426424234821617514061472248155524298587560406138745027457849174960612118995790931383836866262661976879650397281098704389119832075596258477486843474026312678466393862179890042787357906546511826181153987353825562938076688363558585753094985578048490375032775567758151070647762264555272452344775460189568604328016422236823113496688492363451948614279767564786013244158263305623078241564032089014898072030057513586891106995684103111235074709378258117070934421890932887600974555591358024173806448144514402157830347151914579368042743022326357469481675137040137660799845300045094384307040406362775580628922045161613762674758130613428104915096581712599009685966157305149082830575057400090367560472959353603306432319810671726498536839123024677645323768734119315703093775735915884783486843433015924559409090146962376695689724081677071881801322609403117875029674437320991732029524131091872742680953824328619489597267424602397513770186953582961065203821372482971717212994100402981812721465456594044510470703759380540142476750583127342340267274425487648852614834899573484854417399380688564417911677936047598368266599818380567322281046859912710025523372367768770776348863919568176347779478580502965367604947366730163908039917461710743420445669807767446502732650214596218534146540292719089588253960684167532545186322594753108241458082356478233034134085828231608610621811206545199216978412799619546701545511789495679674198728547976738301690327077835492550387793225764710352158184070199938849148080439343960556795039917798102271170570609553873002334285052883028047943567877774613267957349312906438931133296326847394729021078191906224697672165739191658779025951675988121210133908469867351566266760090812921268214966053202299775440030573201312602085021406923476990928854138039578718551615985462135191210849149260772432485481401697181969607031371402673999241410565204796786020133610073159036021554264531444163749132333538961835523928388216326319544154372029525148129633374650605270570470203097020209621103129525075156756664176652016387902413521378887493221061142430495776951227759106494619523977892254972767020509958670994980568106897016584833387470732639838619523010638414829048916053186800511682772512067737612720191129206975080527397762559417220218211208197506765221072490052527320053644846180272294141977942808561543833087494171720302990430321485143207453868563543053817111462388697995167365856235734662038185299019929960171232410353218536835699264554757804426734718016495785531384790792943915729523896551357553219252637189043376288760588762238338664538881603616233264351557706271462919469207884930105558551816517704686412636797289087901434101052367456581276003107215147354062023510123185087048033688883401852228847484958261948306050849763294320710450837420388342541847453306203125843965986300652073385277196265832677294065025555629078917476746825031402561164890059946684499163630066010140469554171248291673109932513698647317428835042686564757833718552801672565724121302870826753216260223925688450444400588228520864611454141154084787668788582514367146869115362123034664847312823993555889791727011014458008307819736360399285813205310631700872522208628707332494930958962791410347623590810444154400618844438040761445634759459453383887726184558511453559141452518661650602077305839515065518367823555195696517148621182122009696396922668339961000006720758289224600752277458020902606898993794540396475422204044247700280842085939592820294063088290349147072723193096594479328794096161492615069360716960949627229300196350483276447612400032062502177296994848947610384035414632110474683435630237095945576171833657693598239822253809722780567026705523028633705958780343552465223020998863139077182602264202798524933094426947585161776844125840448088259342698955120059597005833443254161319357891892274128868368360161508823716527850291982114469969127934317266604369402622608185623849538691495540621022936348750856807062417399762188915300041882702481949895448029503742189909910816362254371436951760496942832152903752309585367064068501195654814526284329765717264140664238936783426551802490356311261466984096557838625695160021287224053997663600566384399526264166091325210293386867225881415350238045381352625212718491460998789091632107374667629227534317359188991915313384993520358842079249670703237367193229956853721496663159390953315581229088042141746785936229830270692156621097167956203380346922514380133333504653227343946745088235283627322697669582009878945366466121560360779444981611760665155500843941373886742472276904999584044334363605155744552224445885444324192870155945934262128522923667688129954501079796914549894566157682313030753292099939797581153071530862554457678638638744166299772918730279703312932896259010776146688390829055039046989456132633009849562903379930143397986727830871692867430654458747215810411063701719283256073889094411639964326219913244847036665534607595820774198727334190221960201668958416825039934567140983726540956669384824362877346533765702999629905531193192132550157037245967561267619437336875441839274280689772072495325720049230561531432089961241396866195580438039979777819288867203792923969591264319800671860899252836921365936367122432259129539009370700436740434859188462648059232654798075154417793211143762065979288559083124873199754007348444825891381060426608309112529693980246968553294859836164473395206377491478426165420508309754777013368552700326824568651829253613956629158630099149951405544556080391624369812351826420810221703310508300715010308246372387637463756324589188321660784979007645438131794518518082361013415019163402641875026500793733012538837729617186243859978890403980439859240715964303558024023408248825200150119876657169800232216407290105366237560079896069922547811409448957323567115782414870930576884020148022267599694800973027493488905567664197957216024965064136026770717061871178008073876893032801875693748061342315936847951585455489058095971039182969668449454288001190361380814314645726554378038743071661320235326686336092694900137561479295750646691232067908614105188019112031781900936476694853519375400720058540605016508646964438901927052664197412810553436246324595184871093897898448869020615444208196713783695207560993727178617332088862142145255866814681573348918157592226417496321875146968992129440729972499278142136989837219740735484245516712419314275154087546019785249638076566051157367889006237029762801521686599922569798453644539390487939612243028652340876262001970694399765089224003595060432911352443932176601165303963793919157350271085429878567329456277100286961252076802755059293045591335208862211258910815622134000514265482588784011284023884328106337276798699701077298258318853324249891961496474625347905402599687349026729815551600809920357765826009857597504995370750566400229272080118256371256459444391511593176248533062952836493454515306922742718989938470650369684742352687062621979228830585662346962476168743437961376350167476051284692240948280123973045207817459696814376800523047504964229576393651010550977389312846326201543275610736464757290253957630148838062836779265053873099552843326979306709410843308856772584022873449659539550347321466514898928059254977871949537082417185728761617155069589347303420596852066745057607857688414831416800742371193970127565730554151398422291702391534730346585586479035823553717832845477074883837153077999916006122782758875325862062042851122119390287163680570115682633625487041169839668795827416817477657713774755325460159613867950573826178177408331406425715613184603378904019552762122865977463694520758623554593346751824002700699041642429571017134730160799713008005221872288106720437408336026420819425963430276705301265250227231675376198708546839867220262997124725612672599932827596459746965640248742617158943009826425589934240772341826877948797395496565535441500790007580469017646289588486840632460596822402178081681443551249039304702078791513253431979858361439875073865880449465951778783756682526271273093226467692440929468214632467971384865930083852665934610726874782353750930187006465416561096088577001770863107944225661484621823857392303478688703124483743300572007700523281256751685955127731303903235507388014063869975382717628826824594686466954143036362136338303700923898466462746559800959942672062382673035650070441616604836653876607808110172528544264471487637207956658812478282900013939235472825303313679638192904173979239888147315778093069111376841700124489070519926436792961441788048175753564136098503030058810821958404600726997443754303290628866653684990318734189239260997756053837514400593981625879183990535812125393475504391796465195996151753034586102166795631436961295795486680441171554480664538561263582254778922869323094066494790343051089149048480837875747546155232940303795169071848596965174888714177958965332763076643450399644335913034217032138520405449876895139799029441351965593346664196036862685083522374605574082467263410689218561795616741444961285716834131554708409317428521127189632450934904483342783638631342696436809970617958850935398623008165410954457168354599785517503819807933893982347135800077823445180790666694843929522303806851113676672325752223467637276889556012380697414040940350233243616981150471739907405929018232158251611030331461653579740327688059886288995304876638065061351671091914214350475736600903939342778103233287579664629935442548171871754346124601397371517636052958704977606905541418869285995594471492619518998203050341160545351033798597196968865920233784013619256235179140113551884948310642112161971355231545782653051767531124371144657215454007604186859287735168049931450385065785493416992629464518124311105142237701047650134752993601718185228856771926489657171258064584706233503777108830615372768140326209491760474450491517454352335295690900281199345144937933840388728878920284300294640125136803538508683413348993637011867747036194266857812668043804671127286262137351412211378128011224174583729654523542749177221673809532952498148383499865113389404838010046089479939858600381867407306245255727550896774378219633961800224717384702344981197591651962305853454665048744340816445853504000730848739786435865564131153895615823693049145598258872312287417976416433334637506037321372807420158851065418119493913049430900378965457776430686206905452226679880080372506535626622004614789556471096368895194270376333108955510156256049380205698437758882211115538195695892522010652432589432542574757132013921145117667819125383523050498743873214810757541819354456429694241003006496609278030273326113023176837230050345563567265226602367298002945264601491652214499516466780350570557845328767432679381696601251722454530560014561046509146995334762025112432938933691042586403308333728975507549862747107292198767759406671560099843481758021477972859951305705842788713219121843820857995323249334079734393368041724986881984259510488864920594752474124718326335881863749991455088197233586851499223830352548362516602286723033182775179119845183268818574217140637220170224137626982234008638180344095973030163167352412259169617973263097041651124416367274459734194249223227015494930233668802794246593877864544186645962192618251083498013947320881828755981171631887983533727615888652112360677787556626856188510767647960816795644976636334044439184266955713581668350437207937204364637859512567176751564076307972675214487203088757238106724576155065978342206575313858427056713537791888584658519791105935448851464303242422024456755869404795930198130365060493410695034432393647413142453830233245648018679192439869169183083836852472138800211035831096541624619324313527370581056616242428465994892370354044609646752409316370789690161538251030580101692435932198182903413097152330893778332058749321665997211235484510292067748650512360422826537076343567674897463872384261002380540424997136850039609794826107761670338030932905019752409947085501751758622312433968707160974487572935170041071117309140149403070698809303098286458814776286699843052095336251640845294444040809190566842235379265607733573990765386325536761113585838633903982953676117842004755282667733604596639741883211483096611532622401953257788583027785932193554370258263722961103681632597407959545850359550914272068651365321566147538146343522000009179367710429416787666594559258724546707860666536483881109344564631479629146827731118883242047864347629976885060254116916922775866558755387932494775717499682688501224810021413414219523291426616488308816307670159998811646050835479759695712216404014790665584771555177525397264230388777218644946241971567461151248238672600133109298409543581837810115499018702887422048778455355621136376191401434822864861701606303354899984004411000508577796285494112878298516460922585481874659016952544026110224939675998750007459785670124012682793643537811027428704775782469559975269396782271089205676091809268709009507988749442952854784117386641176372295069812463350965203267149811680431881911838017826766267885878172910223648804658801368548710384420841269719671728535365193480351565316274316175811074125134968005233561043556898324235589889805990374754090511796028589144085581365100822848949071327433170204462482163216563705112483031953749242525682954356057433232567913795376578044983052468643939446703417836004415694538669844724595097629370490697411915341756064751352272535486670310583571947174590088313678619890206930839846714349607035317808409892702645770524166627545760400330980960472561257302205914892801384096393471477230520955514134481837409617852419642726387538729320302554634165296410613013005918336165954055736458869221244783491739391365592974994669128816020752582906981841745202799348085752492923933923161297951692683786582472427015657325312762280547367720027041989540542140953689029931656933652617653229803368939204641078265047540838213471149097499005624729239420557727305632021924570521707153153147982166976087229725136138590590929235116770733541230384802159902359755346011462359257742400347108056921210803436426638732200206743735133228849773642232001561786505419445874882349210165870607685469608038762396532726617989685925534250642768158672929493065138724876651732959091710759466565984260884128784301917219288335773276766651400620651332178048434481382687190540742432972769331549578440404327657653388977718171640941099819308918653696386088777149647518797472767358956937918685959736723853743492401171716983783601598241231608430781477082986080839469760540805867758327795897629985527016905759732503500400060399737185138899831664042790574068508165238066925790387158036506089124463887228384764383893875384120693304689707550442519914586073400224497989718430902349266294012543519852715777589516748250917939285434990415431567386811155689500761870400952102405973758769015984378017408728789508503554642128722758202272573735252997924531262047359439748635113195238355979119160357747126295451915527671798125016435136677692767718904729571247114087585270932103461554964828541903971400073312476970908624011663295450852889803324794233179766022126644808360457440182164892733224740924251834923308588911998725683503526066065552027306424980558518767444359776267001470029129043827444411890272867587575420742199225078621543078321771590308583337386918310940201589831111152508861238991749066585840559144486458803750825631954460527415880294108212480040980220567666886010370468810317632376271162915245620736760698523355447093713502263723141211895355873198049778911532672494404199294402495847904461720848157515585897019611230911848530490001299430277103425914791229662617123410231065642455439919474792743051696960838675589210460557569170513330948575993659583456106184094923246156424041869767876510743675870888605288672946220168870105753784493830945805085342702763102558096125869784413585501996731524795781602506377801761818846452294554311443013482768811467988208748927380305552362514697418872243029529915683554430889374830227264906946593968775692061471551470335308211943562558726037132402060065736151187978517619430659919370047202977672730627382320691640389306537291980568699599065045820334278382230340769730502550360544472015824199344538527032314613104557565344813024484590734137409810654561135125699549585172894270986150618417801787157800644722462356817011974523329445808886778904464748533554888151911034060348363264745651831916754416466994228218521190791053392126924414860788889158573566057280757339906468032890354954744375242044377630371719283664094175787359178760006277724234379215165072837636535273589843618572913202301532755784287132229302190451608583657968536194670924752987643528094581284008695147520514760709788902319162920966951002906398739068303413667420793524315189755662291042234587734232526670175683203902105912685207999369333852084460963627941298305715247473737705687411871441125699937838630304003969065883893230118220455422242148409673325452839618698101061258521245466244031881231545894050389410430401899588678666040462259816085130661694563419703135121485611094871456154773146845654058948392566476169342468610903695096026374295827225548519599856155668342381726769882190771333441966620440754766464869476046332431193052650129867463412581403041620483855405927385137328314873662546986512171402953236860874989933600113389223128695019579998062646851571696594265671833085685637068591172539207891487511002907713824481214292240920256983989099939477080764148960982605437109664341615975971428643530432363181080444976380603956922084826302805973647330082825109852936629323143131695010649392371542401507348194151058533565641138850997911648521204405838726568252396756878319311190963831279024494967678561133668449045716300199382197432564758835067783340573616970534302877612566333508340723230582723246629067659656411339245651080403358454362734862672125724024905611769581355582628476858311728773576681334949154915822338335605444527577046365076895833784277841838005969897203830296256337079677570071836141805747403260407711587375225092136744957357002106264104727683369020043285194074717759901908831252536849354452870438869527443360505997065693049964509520346423220910159819853138484697400842186621425457838412166283953035936446122723988353833443288172147900885519803156277350380498258497124054417848166399385554414864388201595790912321077765478169081071189890944479473836631486218226788201645198700915273022196378145218132589987526038440664847710193610476967479490224988602554878611381998850199334273076281851623909496212563002448783637145884833086291784850723470830181357178231231091175764179336076683598108540084637349287403801017323329656266219450790494883001096708411790142138007922514620743098536205173186035819421850689084984656262292020180009999406542038545484701850568657928807042788712594981573180346598726877758248122684606084268339711446061420161200213638612577942048890255285349194924148846396075525550287887052549236367057141701295356765168220922776620334684832725290773404769560762542856342446416124265359692825246594285138651370207479995953203938764768415539167054645376726111044172701225529048788701813629164564010817526118696746863827154053218873005560987435894370180893536194966452469059965880748699343649414597510929866508464737910688460207891714724647478442034648515205086538536367636470550920587510033583875539263278073548361472035104941482225394446486384831318667885357514833655598299969023703694809468801857489216855267704952429461796277363838464685086947427288683820849851215404239952480789176180509763427692580629287092761701734214821123855501678858193545862254123756718638709034574809335778971718824935957097822513998040740388507507717292455093853124516283963155335938486628812563135371652705774303755394915880712826886772949661958356849602011239039937084898915668665597241034233419832595854076705672076628859450888219660440723745800125377649079326187109284891456341334282323205603195623100791692414800595660605649895229470230514981491231132541644744688224058008828840893653319880583372790227301899095902376094699018706688954722150354193308456955655529798311681850413770569856102475637945744369355954538653669310986949109247216621133193830506541604851227602786291816902285897192414870551296582622494383033257707756297046538340356055661252000252794653807142056379654474556948666689559559099358237736438376143160058577800417612290720020006815217849845874076241815564037668935902975776768964095748910866281177067148792782592184541029093490592296495067424994202766737109061631985548598465632828197971892042628645726967894485996266380578355750383691680900191347805733779463967840252056257951390714584836738997880453863095196387162028299082301054390957980115465533466887206003887457228751823170592755937274415641503605376635161728092974250413450390633948858981306064313963329606155917285113083678656053606530670654813479157599823318608802069669504396368573054624090335951521917528731837599757890315189190893247861819751094071864980063278696025947147750976084003924303063992462312143209511130403370789547913863366235205664938727513905344259817304429308775409544118774662644135085909155432366621702264020501268146935949892087822912814623238203198874553324312689106203185796646834378441236472997389681205794983894254525948489326186228769569303701794412985620512194783841555561507353799047745541594624349496420423080819749906408143544032468829126184655422230575720232510219028762237225727767180097221226237634255024497347732709907002283492620285484227741214393736228559693833452025552163518740727783387035889582365796735351932368853627569935037367278482347859619316044617864323688484945815746615170991568477983299851893719983982837530793089797390347283160412540512509277627704037744688285990065421047709440464360909804258312136790872816824602770120925381200247651063026100829026688727691047824434520952955820999805996955578623478222336183304009917717262181134351576384882140395893612532225264971202992352532688990257415985929274675847165495751638231988174176928582809565114092912109213705104299812449741437405031107578390594625631617626606922382402758987470439392622506252167237190254034544284364023260942178624537031619692111213136587921360474275536128100927353565226441606954917768603460067424985101319522786518989769101991844383437853133198084278086642559804668272036947322936446926754812429330534877754270153014442615520888053871866390238573949503964621727946673513806435607383191998265397316328302708048072550816736133765148997634154820876904421552938285945993753733816624583033683768671598411382291064150122257659631495886525473175312953962147217940048044519059404989634094710338067853158067587117249348922194805391590845972095665990204235474215246494836937392740718918448937210260156806620480175038183253219176082837390134482513872651648100846253141060024697322615193089519399570676608930635602030492837092829063847950472584366058522550407677603064373173721857166402411530163077612516848346496278891037543708247431949972742497342925404220642570071961037123154695877581090771888202802831419882024445197893257130376610038578136705538222771408094067873465596400878434797733518997818118358880710241948619352599262899756832054995661097300488033458398757050682182640782038615982608912243221631141607846251377110005091777063926340523986456725026939170959292350512560486900706853917855686929853517829454466056552831573838093884767800500194030616117171504704410010591394297095834503428740978426078171222463167945630226645062615666469877324670537259362774409197968814928068087399182924502495903106830484186979553861667787826790794393471704178819522475380342788349750018611301127161166018909114615425703952249820106979622477813896980635910462382263423016715895174523666533079475218487084594503327538104856286123215785344342466848452264819685549149900991790442752583195119273269850841991597051196633749949825722318354442753612167294013806528260255224139162011827241938104654788598989328684036484648831813698982430805562769396455198101730083001411294928379653170495323197308016498570645130755319401228321112921419352835592842328107076452232006170534096956691332442292335033590495207765931031827497959144504595491908824700326712190013749939836126507273534103418590741552802877577460853150922771676874874355851923111711992094135365021868585237057551479194491181115320847968967881736218282117289167168277319129415786361793148321558519171625442412391924788743450267355431104353236022200432885644318658459055494400320438913777913163105777015087047945205610481932189993832375258235566553398425440833953449081012362676330324553123068542271400413213217774723443140736916075493736782086917184670421458059982289814323652692002811229021741953316387229392587325980578348084996812144592581004437047377478771984738085723282092139597313955384291644608623937811770214089554141671562205294818193875303683061270981628848958424109948666112610630247840291630605165900575904565339149674851443461257871292239320533065055694180242524798215230656060162991024264349945125027399962131838153210309491816176442730394238921057838356330343603879943830783234179049965228000668798881303302934303009572181359920791657734072534175080648518729751650550524849924380307687783082781829693563934368848019906548775718562474516025815564439595651419840720424251760595487582918939097669474873871825777312038603938203487424284832407874745421846204142998114277499152551977091143675277845231182963372473172383813730684348516012219482362480078042590443930450151610420294068974708703463625742818902450469597266316008125720642081906128802171063856631764637234094562103346645150732425652800752996946952423049993000233693858289066026658988262387179994022744957996310748854161149124326831449767948311939809522380551059317140811528586488756898108643933581152306202112175156634376756657347475594987910253511964003879458217138320192089349694064216634017392008907726160249023764353352916978474733737203519660475377439975694854160720628149549153158616001322226754514649864809099492623313277062548850285329246774747915599430986106855413033010680613981103964362385116059384767399781587248669939784074737366098221201876480538960582075979918301048716999884544157260522820240629923434984298090141867156189674169789832227854459923416365041311143672022403301480324457611718506477980967523292360328906575271019531794474398763717021725175991951389733679606831244666148205232800172294675774308091177119537613607516584251793706187423269764549127497173954816675894062071396861773669324859589081511802678966078350784369608810006345609921350340599715874634499254589582139285820999273213100766732004695423080719843620929958844095607889465251434911721630614332176670975444399036454323009700358672220237189032880826364699153540204536705202326363308063405503362436654184038750602361591993011783514276680882830275418677087311222674482424355775211066057755638204872654419536020590380925766284816692741786173918416911401332523444318773830021182525283305274663571324816162089994795214155354707461125473064681173910409162480747490010872958273962309851786362980207650394059166112797517778493563166496304142835740566277056157387936391379310612742405424679374665720421403437806987001745922471268766539989792895532341809875944401000694637362838060535278072554333577095891294885414497945122506002746972142026533548019008209088077821077350134139440948145977557048870857109366003648110886497128265248385486695936152804155686640865954975567276486754807283000818722601695219047159664600491211364599859760573492985504850451508047520797596596771410415001637177783901815141989415864293764470759786216534453938251995903422469796527138812576957454208538611232646503466168106979339607045441738733174551803886242773165538133522046013561366498872408954259291723146822463093392323479327123882391794918662729049060557904665861138704820382150286248901814100914683088885501296050888859850369482313069451546191497633491271328441878770754268108574590984720100787426229118312939313008178693408678213190242114680483162994349503076365448719394545099322304801076632580747775573759931144711636639081932548345740905460018293633770996098639097502033098935006508600982850827001514973856216948330137762850592083745763776863759352891905018816535084407923368211638480340898760817132871539545119104878467172759196014537113249867034261238130511385569211353088631769175320981878356706674465761214282902551046143108999659518709014955108887916212557848068371062212293002389653730326055260741608994589337873960875225019286617344194073640773038512927238971123250971258448390539198516151626334051578677225912842587573606056715638809705863868921920554894388680269964272744634026615802940963409369411225643050329322965785478934676993295162322779868598633495209285999159590563090522248968325744711628047797318669979663267669478028313276406885348604549960716371614918627472775372520544822477200638449824147488281877170360526034087339266971713891709248812249752620915382374099051717513472794165654146624362033123653677247099306950345014700935985438469937058450185183092395523284398561567141092148743695256679602966217879194657090269186089719677146651144152004030413893115271971883004732970292749363060781239910589409765505201135850999243998010554547641340305609856358716343990261700287034742401530727866708981466082345406162092862849825676592453570797847078576110383899227159885960161146449585159769651813427560499978098573208995616955918473729722260303845003331364864041191834893000146585761448886407149613671526387430370726337050074313492991596399610841755827237501821186915747911025873857442852833204554552914054795488930546083801647374851758625594004537598908939099347427860402351580754547903971560101798855995516987626667788191264853474304786185017280977753448095001191259746477998627341839115865534759468716958202843086983253527072162984376868924240535952574256337109107608945721498733997461938920780907202384125162827404814554843703167732683185236731484784808777626755279358378122694119189890388706960990438898505947845648555173087309985681329273314010234481295448192151865535499390711062126971365165910633256416195380929657749062451041690621450426333684359991837710290695705226937115189408796309660098299631997174942129495368532768682285413570058421129940558207834929461692182903414943039730695552430205064919298882625740265688343662735084507088495681856596987653828820751227161686902206519906340883198413550295211927250722962636574315014099462952818697646974749635847577292123580653259175808005401873756221951299066596671122714078398711621304371777037301737894553699767296712640786308681437997911868982741341144446304159503630426596531628824887446015389787511874023568856275947856248449658359750948284737292906439750064958812241300218315850736484835493498360818280092794148252594956572996756757004037065045366557891590688918029173822819521679127286535904561562324908439794545921003135824411102712976996013463946081768098368955385508943344123996310866385148318543584633744916360317317338962277483517288636371228264321097785076491803930628681207689604765101659095289984710858274525319679743176041097374358366622556527578256266582694684766781726488142322683511953817160472869290990804758417649077501564443326087997633063183762369270836946955992510763553927595155098418540159680868025054414742998881960770246620452649783684240244092992356479362036500999964858551539730011485797082390015696592100294049069360137333113881914916912341183205536123203128374862752862060045393809084822525286979569677082559218587656900312590925462838240573868650682508443880628931854373074103127362317476964741340941982821141798071141644079353259080645911432493784455351699973558693965915895883223487744497156977471390655947833311699854970176199471780250520369659857188420820997248495232291215289445696620458159977030123708464688456680659823580489753053938481127453908666155173862824034963383972917926956405837069063860353167846818189385194905523568743014654690894031513761507109226431448530355864329377343982366823666554626203570229316764723472278141992881176372030970152328862683342664007086408349368341491576429732149744051826999154252884164818895893755545706795337895057871640715724019980127834750933681902511055678253146829564314309139122524495771099935303559813041425613747881405791390057713962373811980411081419250196925699648938197854537651209701450676832617532387439519951439257110799681246010535555771975315067051702247544416552904335240509600394737135876911890551046110970769971649939706130779131033989165028974797547095959193454907412533701487404403534853173779929946794603407944611140401166435608454344313125133859302264724393720929451549445484905063979885372312578877230904978005785579894321855686139428333014860701447302928655477332348306723725916490267245684408170310395544451320891251058690007192264750739511755875161310270819061627611332194432861511064081144492021148912484399327008708434919191654265937752101934414832822273244646783082783702397031651193669784302916084409756845465504184542912541798957840175067929853469950702402583302385201504793122668045884154244226931856037295678336509485510693778090141673119982401666161050106878688253694618079996642480113031022875451426389413316184807401605166897386399915203030073151995935298797992775712595824761702756738751615247588419622431508071646690167013043423586063930267851502638771328517484148670264602150582554350726486902956038712458085481804398833955968416385763742455459431715678532297442279862570823473677834600975587783928247516086233379016612185633606211996232791975797362848558589153087763860590605535092637430631854834753996555715588328450695919736562445642491858492083825955454244114212970269246387675775073018447134294802677234308394580008673749786947876135330341378112983629477279976606539209555596155868563252804288104264846823755026828569271489178262230493872066241388384749824083467916483278480397146797718230780526190639090849986672032721005212552877627751554049139896658972654802816348786483888086636177063140078891862820224686002584860813055950466351041219028540663589426593399135871038858438742280278168442454358456501937561846236380796672726895317587264707002500735781577129112145657341227682548230860267214583957592937474845523080236919787050496890445292077126628545445885911078804890480217462673515750154546741541247690500619547637979439940104604796201149102354133634110228985222175787990439087306465350705745288983435140837418275964705251813822406482693326853606569329208071283926227930425810560009826694024031622461152462773638360209227462591752680421864557843138751272694027981076850610069047085579710150416153986066711528416434551240131971278985088128062511332948148616422077929028131705105239699925263885452494545311419962870125434304836408818883115287753941007782710532391090091345140168375110582795230394516841933897196301900358760233789743825552727435254425373789511983632901195139389710865808929756620309500616539790821878787977859691858853234951071127188599134478347059267678144164000949880823909830835885049925331845098913255970597272038016359404966215067015060186042609646863927676170720221593743822822584422128896416452860288871781888158006416972508604013260624934137210802991023816055571136464042536375782379080521458205996497495112302170817227486532648541498248839838179192258710695030020307152392200639613241156130648992766139924483580306681789426333324013442459715296209374683863219748197338182231260901540551131369201801942232940122080292056552637300406540865288388922017608355825044891880167428625688655098823773254077690256028332500461185678381444151582217101024021659998952410455081651361220830623278488674353216834565343629274729506365815759992472535288725999949437477506316600506680300373209851063145581330965792226008220087763855182672218162332503066527254152412655548057527190047498847306983562748408419262881903839839886128129629295684739777332356146572888250492880543114723947201527429076865415112111638246960329381299985814449258845887860834272179491996874850943467978962154732722654391162090241380569730062981133465442230486350223832173430587753199279000849737005259250005216090537070866398028674553123722159775800690328485655051731492234576403222575344966139292706906123312217470323794268315563760993797794216637888412504018493244896164140418837057202336419822705906861277000325128150630323749739711268671944001597012796408864363839281248782330595563815283807332845099549133004412899894470911860314362919789332764352846444661007691497788003345855806641888477828396398179376822862064269856551398838841823973073610095269895358623731456265483584879881586496421176488397992806523080598334194594611129861102903545601537159281072429355673886316165286104577770473869843800493271428093682490777227395976979385403958394712158753290411571670707807886223598904728689467470375930635031395236495029980881414431532433383540070100157971483000467097829993974567518490292215996118444085672944464492502208224117538358743276596505394050702632021896399500246956380194458441906497389373782698232191303392787438955911700102878095226158618382439110885887395119977904973056317018654346928284284731035300534355501177467504001919871546384308979391951500385832480177868889000639844759104284526747884552405066883587536298635896664110196592587764444674467676644239388784041920320831622221599253139321212318181748545303673204497520070920043056074757175253922695083349350456640091233968960790061360776094238238857909524890051978376840731032970481189028150250836231340675438985407749195810019682821657342654638486390969847582708931388783356692189107089968762555206027179157361653129107500382152710792711568773767657382604113229166110853249381470036475001731788330582820110532026293972725415445984817559807572563366253109385222953391433243175784578216731500625503851612104791718871875118918709356599673525017242242913410752044856780428126414155342113978344057520229716521049561707288340296430044860433797536833013615220567592776796880689576708516860998866323713104819068377184466245121330459590065499755570028184786701527717166426464475210458652704613101874815260197221963690964241014272428235512690748487196018520774601789413402751827507943764125572746879761638148282141065211750052517999804440907288836913954860467694812681198308341418124484241569957389014262562850912469357049276585126232182285068585130137395008924294285551519417189508557360971437382071960785291230976860763613921609693790632356553564060092350664848140193653394227796450956300334290936081736696696021098229611584377767403675074302364831181583646965251838147077934231774686325245727263740162283833086536890473705471576905937628338165060307024226533677900849073731978025064793825043002803202116236607853793975570611000719230503217080805526321504299450954741295620030816215323690781932048041174263872655173520589610495009146042698728793968716782893820222833034260899956391672065712382237570091671333723206294539379427221940466243604547369913617681344312197146829446375312714949868076731599618924185227075017815605570456016865798509346205739085197394235648669393421772892882115881013137055660129185954955352874826783154731595634672622915908253392324799819154613021428213013925032530300333907053604121959028672751367646528905848856170274913756341809209120948426344957632235258772361663868847757856571319636574853475238011920315862871885185341836612818125100454170685065242089180746507199754200096451486145426412586837881203972677539691343466121389199294016151690777601096838827205616137075847569911766623749247274525540972981202162379581806606363158776197039587818373681042750206736912973058367325910621828916432313320890144931867063858184602170528174055841272669849898003795950306401254633539604140998555127039564919349818067365063353290250399994053279794035772992568953004951056406309760856743654044874271021243405983320810133606611333162705437620934051411722026730568140887111792127264068859363456490650093873054404250441481630434723951995108348429069439157186125097173330741567912971541709528519921786694059549578248825899420106488857666076507632738855917194501915088597700327551604425599342564185230112455781595242167871367461339825507505930618651048231855933997995998451677885960240556271487858152664794379323387037185449019593695633834198678868404334418921364598308957145165358349619710699611331153737253982794934227998951487678629663583043524045870534077246792703746438114671155963524638951611627130050667000502552891039588480120188789929158141189918007541490372198352369118541057058656321887646772646570426557691355964562410633796121660824163615295402917698264941564443385343044056561311927721921544062018430991390497028789021407488932750310102007523972414605109340890820417340314696151367696559181803009629261053871587756806800828916030136730059600212298875520214446815688112794625945368615234933374556719943545766522875731397392410821550364189833939799041940828028617120159837768253114142654138550909938410858630722204517728685028784019874779621498435716872134356340380497787404370062127811526013563916967806141745045814691266124263248134633150491279390229135209489082349436485077619633022809743274977402610190279505894775161060761230904960365406600149224255546206649773166215465256885234760956063765247104540856049483024293346777015534741689719653637911420665797334609719344617809338521013977787070679760617932646480492680416577738101882463732415922954136444450540399967995092846578918223802772453749606698948492177141762372841306107518479507298068818074792580730138879003493036348627403065881473069135819807634834742361237518423930865222206890979156501658185185907344661491373297930221037968578292139537455783756342443022737661611575816672272320286927966642632167369641808500397157974790258238524565158350790919871506168244462571024301043264320706504698841879594098704205001299759127148128566159624884350709506813235565063907416929382936718535675991787252830028751952514582901466067382709759273147366961642902380617635486290821728791613806766504720516321805834924809173679374903042401198984766608308497941804778554406522383465089676843989618883962872896367390426742954314667629780772403991379361659861701131506570091472151772132194438821737365241483274204717412431635389789873771760985575475027812299037131511451576628159709751048565891293864293415293558532014681845160665467043637389979520527815145192634356971633449140267269192772347136557855144288989019403775054493593230011016922841309864022735356295072805859485618836688829254204950125420468273228636635249183024937809707861416661723792269392307030129539750791511707860001907106181651716832588137702495778856724491490528205113253530577431197964376085934997204293473546933718912471223094235843202289174707332885816163051154563611321111689187798430391095772716405301281854302346484272595393948608725349860088313483450319451012014746757486345843783950306631055109975375431092232686466211788920410156540704750085891803482364626039609733384955772810207976852981854737553517089808741516960231023563295268000616139654116758533508711729059779617296681156268079187770255161978960869639059884878979731214758487619406137854139762499894946430206075131511223998385041668698479830176110027712420573081962598709683638848963480422477824579874001377192245201685930072331738887403046587994996704691765629592792461373292827095905917128634820883974906199311253242252773500473244451581350031003826535064965686135666474728504348484699632396434671442365095856612333589063098581483758156458683681996199188157476682374725310838208619192194754602289920489570495599415174528453055736344005005442708468356343835732849104051732608698080950494654651278988263987686702782626282516311525676553046782036955574458776674130350970344416472483670367505565329618833011087057588547980405916388739280536725481674939275348420021620109487362824444880132674877813107366917790558195899415232586720479117864373778153263589375930868626093255498659390195903723141881023833643601515318301944688237830090519668646589917983051755155931773581968061042568416010900329578847231116746430643447806803057801184677898033207586462798652528524695992449748315614584629792531699100834641532707901046130388163495051534449896066916097656197465660544578270823830455626699517905790896746001776526672310282644965714385896212612862912454110081993541638966149135763937406805528072565404416888994673354977425165299640098002792877279309634158934084100316615952793757280158346346541364453833715827151307941131413367889936099471826330109809024246159145887358979734732022073795360999370623734261960382535082976184663378516571923457029752237778349935689473548029830223948756700271590851983703276714852235449824461491210227342017348569048370494879563006236219033142356507963096176097449994585039341338108991512168756857087498422796474598491822377830247268322939502242614091956133300953452732196805994324679948891167047339247201411603173800595622162700269845270953785708158881088546080128062908090503568679472221978587020361685326950027359508520916788473046478218609295941258508296830423396336407526766910330595841571024619763653781202701482081625913102222590581494972002430562378574034739594227235756582965779949907050073315199576075615438076173559215581625342981439495456031298292164770002023273547493491083140982026996049810150077637823977873164713513895166513748542235080231179696236503728669787205496659251088043728176015380172770076057349109329241027713274212487849526943892400321990589814741347526075549638622319572585608579089895831223613966564929849644093697865968920412557366810257321916262725770041598225663683756361308465974683445638430427622355296516391811795359854024748859642107477647412399087310787936274909633832194950938357330056368998620520209453103702464354755828127971925791688036406251724201858297572329184040874299772836270535256181591937043599763802760679321118549576882604319289649666448302854621244590801659154309533922468511277253024168123855774633839125514317800700300987692867263136580745013000913923261790314110328754932953767538849884109012186555323436988183656565234504508151919863222323475788510408558952382384417926227077812834840346032889009828658439978217296299694020742987143114711451851155400470584600633198713161457909157000707054091860733747601881404367744873082077670675392356481997822051611202752949691144962375562438101512339263854711436107876079543915275528481294993795889709675173040931915293941380646575498576672192040719135194158753852762031099216758226200261895197856782335194080980158101157352966456647441489698459630368727810388041944260715874425624911680740909878998088741927191028906273331793789997072324303895494991465073461709413645527304059928582544425883339570518868791904399665994266131525717237411932026882754668813717992940503210366892477006793154158073178101840578268443626764506278597060600726538227773501407499772700373332874645854558354811281173600272528191676083425160182397878602081747810858680084477677950004490748233405937834572709014676741777305335164695292115033757868198797045723973454177723364517145432999056321917784435820240885356739695383315622446053545948385138393256091770733610259039659063234146644142618638819640119933642447933210690358134845970521063703079479993127102884533451813595152089022270829525315195220275392854983309941233328526174761326287344881173721265044293888358043481565866957002129420021098833206341844291922460344547919935822906677479957935676406009075259566881472949586876093348783725441991494356002053490954634884069681259085064912170152345609871931488068797086580929502058004203808235504994438507624019772545430090332718090771059582729208840438427535864671788815736868149285521875841559328637275607260939090888902157798954684041411897620856570826098633000477336199626380742441930811517292845207258337421654244303556856619794109336185776306368660639947066282153649202794342397577854597001240790631515763551763848058166281288060197048606045362826484398141799202295766587880739852790600832721873736532096478812625987488176615494513313686132561633683155202409290824123421974303946429455888339868789110916199458538370538279107940141664414283610940888216512812861511754976848305327132582727628119520331973659225892382399167797464202665634352448502582462581308158440767101049023508982673923951536462272645696928840308931309315061301849042614056600603952463099165693175648826944604680831543271021373837890839612883738572690467702797496977736396408134836856553088991344432043457309854024766352697733532485334281967074024258894365005989584813470128481883298848515285573466954688340977463058988837694218762171616069488915084608261609539249674170905433341935857549954233408363060916263255751166793065114754555867096839740981201114941497627893332485785484112253132220877535696377342549057162624241653511188379915963233094411151898198071499727386781495870103867085590670091874926120567515965037827103586911862105495708753660383200651136252360787489334744868135925010734895698899668900803716908505182324374148664373499591313235916819540106020013503117327393423717642548708976633210152021395907042776517577715498689114700043503667300039492928165781244776519808518992524075203842229507193428467247212028105454312462139665317015581916820387817296716139874591219681696186945170654065390761125994972824724702470342700600638248065757638445335123144922043673110029246682599350278145148052997628615440915364401816824208913451850133556785876270059444465989326661423404340547299690656325600552426065828377245888301362806371005273377358791260680617963847226863626636022157138518031181125357760486371444428344303663109235351725208706038838712418475519223539407844032305638771743554251011299323320107574284094973983297600326318030307672495324298859317489714727667792040676247630963850361271857568103133269417003848323829867393685675254278113985239956569340255534208926773011565829804543390941283206189468631271990832880133426937464285863571358078471176309380702008297351634943203668554432422796131797090649946119443655319720843590409139612429110342616681735395609920895938444793584063040928470476124072145756877940728696192185137323914424162026066626409442568617356512142751900934415484317155472677456420175641208759802311614566199047223506079476887435193289525277249216924190925928259802169546734935155660830797427540448224221317199664665969945504476805359509442893092932049985686375010952149257457683984066180350850952480228303736311842232506893674906363558553599615454285822787472364176951886924941735269857458076836199642604798901173776732977252328592541827053066410366213759137492113040864990951325171436785191088445161551533227306648265827005964609542830432437698250343537703157277163578340125714890783805928646038057013023877871396752471740158603323719244472090499751330308169226344156330719124829772761108408502142199086317210122905769904700815962703114333631034591038917052365557089329484636474443329935664783558029662013125214407309054355610466962131848760355463905993836093830051530538149508490867569178739350755816580951936957113110151546405322027563937656063107115940327358193636329260657134579271735600574526243309107733597490276304077200145198712033477062149801009823738018269266997801502471810207075396188691554520371830938685452733580139792542223405124605303770508075567761080986486093043645371348028371009380030959060121879918961076132614180273226568716656529200626265196337480020068830426700208318664182988050963766980016256522909113475914481124957251866360922049589917694218205079204555181997399892771970249498818775176386287328983376886145861908912961860494338456339230647697252401203990391411762081485454593154119594795810432052052418536199294560967873011388557855550634120045475229543905667828913039411105084295044224311007068801057916668644152749803308157955068059491651646460797778954754956000040671188904219203245591327208166010697574808807866635057683801090925390859437201170718054902223583547938988471509895992267151215385494532013066641607560263910633649835724369387615018319088673380258891523886410848167369577095062283287649232867333395440182049198938176829587472257463627152028892282248042103992262461093443320903978201004646497638559064016930417763575100817727248999500794606819019738093105247716698658635317753447173265075227391121419145743668126954801763802400371229140569793480370035899247684080951321069310224731225810543580455881868412587565102848956972819115675518336742528256048432731154597207601505516643049733220395782874047289623793576155733977484111351546822206730097079431928804871299727193125067552360817029707029245718569206688854396174673594340273627723978814372568411756407938604691141290121432890411619971733656054304209719721430750254888050784848132616013067921870831279280302803186128871530426828990674261187043893241028683136337921647713498043917536689729333337581458251569127818543497157963964017433210666911122211732639081127217892628332912712211518000856352684141037106442532427228722696115172754989975429425464460765760154250758153916668202561948995401768443023435481558128439579781842078535955904208871107055405887235388337225302592724937668950709314755294063673950431272560052614480942449231883411300319511805413582053059761466202304632465283960989344816149889148405643871515809438210390844507379395157623908041130106589511343206818433717217086891158347700746602775442137691133768273965206063994076674425794626155186036577627757693245007861299572634513253519898574293251940036383432535375786233466994692391281190813779523109849516298297064138414482075251687009952817336937634978546879277163174333463479433508566208170312650470787615174874521964252919480895849704818228921929865975658759240639691527823789666346906837035503187823996067705169340253640546077633408874496849170897840497025355059721462682211165779961260624453771871733873073689904400298066480869688738964234222056579036103347943681274557815929598024521236704882466655985198771965777888035851609444113181694816550191265431727524215720201380894997052568836026169925949057631574974363668213455387788748298248938520037836719925289558290489750976599355614442810754695023248285407918427223242374066112779357158750845855680851974846886401586201090198831626685827063317912626792711362372245968225902565455395775366127668250085413720974877882957884103306021108122931103494364221336435004223504214508846472007245785235651575175819094577560293493933235907933630472235338192466651616583433620582891836052278963392571779187190565597700794402297134242844531635288777710040079308660883829054269750086688795402254670785264019339813668408065717318433033928871595878304133598056871460508460497396681281734951470259709212182393748082585685250137633026474111843056802275504104513230714488151467404902577489121151932624340077834252147767339983636409346413758029196866989431714822412918265293107792508666945828115304092128507487048192200678121788787611272328739541364019580898389242085202678450830980402605542372859708649735362153661291691730508996138414161334372919312301753919406801133797083005857709438675889734022520861765785711274101827290160243245403117718064617525915271814454551170753193254107487845593282767221937090110818933477313600839132367280564250879667664534192691431525868313735829353191242257106806777285950051060098509322458420805765699953401292428428960185410885284453681639078227641254492117892851696189842662950389917387413301971935456756755943166767822111929659878242697083254182702091295240874031596144663797046763251127436649758223468183320734284583601664474522460735867031445841977770007581713012207849973771365918643251950322105759422741959950250210455018793436195392833963801917834546480163530849214843999139972363294044230840601889843454299470017820976809922190440910190671539424036334053645418668002764719169432577297679350088257994894463081940092478019828133015454558708527570379759779150005398122681405066589073464941758770497732950491582220754813450451187531578793453424401848570187705617304107904330656854966443834041035803130840020691721273583931604666986330025255952942521191626393060442292520945582007513443770637762658307170673873658879049496871647891425407690870694294134245916607817833911522593507694611451150004530408895887561924802282680308653168394597201705428068511017191619996595842369969480577775638611563414712298504643154019234037889537690162321426283579520784882358653549461264819726960510719997000674218972771078301836026066562743194781398905447262591099874725020105284014171716921940260955580245782300290718441775912234977422431062061498593655722588343920820200770759955076160452948222872629880670980988256913464263980203472462606841034253988112620526696054177935038925600913844521367896012055216990322183332648875694852282274666227480215456426486684794965730157625481686996946312765274657522224327321098034087411238285636039707853011413896501836995826773144070140854566107037649705820730516634691857351350895277658118928654675494989437200537864315785326291165266947676975966589412696753330116935817076109861376342075037539822060891845609869388208690876554050286888561283633593269349344944275676513138570529225482323219559955192836638454483164234296166840642618990336939412158477393259229682359074173423114380979144931804818689520563876057131395205837415844873161088922854802395373196514892042042780811256365568301658203293628358798157290887638615175204545341908968446816943160608478211547792007318360702589056046689997566413989587201544162301210722559375013681060127612376557684946063066280738928529107076770217695955023305625290670045357980902902664419001511057101136283215946674900837444869961642360179718486112372424480003203539188958143973697780876143013327875273510519425255146655400544319675290713363714438553958008636370209206448618232798749063130952705284703083817050135617383090359552070649023158381628861519696269544593957917265754702200146900821254670772679919598886149676698451028017894781015791156213254870249235466513411492424500742338572257805865860551379428181336490202386516614174994708484034993170618596281902169110584381522473630814514162092775114555804671619423007251615972366905476929081626462266514370293050936009202360880575447268180072210930221622006736781990807504607877899890809532700210107768431235706624788353769317066503314231395062928339242780575420969303608610177725601669123412345614781033737846033759106893394202234763539301000993029768316867847873440511318592254437468966644971033934241881125835442572221778867234934162494672925623175513207581938451303231306365487039570917547626447937533378632600024381111309176651526547695318330350454345454334000122825073428758192286386993805096698487509997136478071329141314359600869283750369175764587847976216729542590154804042719558157849961803329148864259104811367532265860871816915783917284203164385650586121203884953274522366670248888805291372815956291381454202013663376632387838154990565475299640462177361850007739497542496721385699534134974759204348336392093814820263386000196865819468126694008555374491562235129622391592514933352019270800427986156993791221694623142849118100029309315910138122580730620385559526091878499998793154052090366220666328425469462357891043954913668896770846138960820612310239932594428984226109885351263658836079051822779311924559432397951839739832268935737953412930676265731895915395082141987594164978623435617475317494425197197176939934665938996019375845196466911401404160245769216076064342553679177580965630828050337475712155307538887169835265460900545047361878542938576774965951346643077652080325724047856127275156975317122082255901891414707467495098546743244461713100032196160283152713847746394551926095446733420272581600851463779977228622417507261160892402858418100277590278501944029344362244504989646813798898294909366254202099246578055172404851880865501348162666999771695513935169512224916544554440801524237895808590288436585105214033380069402702982432145012750372778012864287400768177804899012922692561223947234909442590559559002330702731000567463895852098129134097270817342441782647360885979621115692284664828771665981640927059476610092855686737726302869284520266682026252364236483755156457880502428913785651517226560097150400616872640115183673353054596410735028869452850514995555864024118673231555640588831226619987166829616448901578325745566864358836702455848342265211074575742391468324493605569929834958166176670403400270134890754767265239981172162707385261522025487605532831301883202232396595974809945475116258443877549892371884543400365262217181128197007297225657452235310268056435597967658178404103368683530953326637306264715411942053161395139724364899724827008207845856773068631884941715648314024691922929835900445860683799200253054218321167062701868821786415730751771717230781539794751161079411730980899288549684272113059489243103511131238146101205687554851059385134821337018507157085492678400596945707124437797164394905236471260761221900944082391875970760776830016584707753615868462841607330046876707003738783684387306749896969906772392323115871952272957278661787169952030654111016769119839174779847363117528369675051691281897817537299533904093879799448772351440493426629732624359985617680730820813546796779982439169232753381504326278881983308374146263786284143659429100492631201280455108876331019384925412383337119441291810594530343947575105838694901524777153808406792714752819126766353758499579546516455415778567794346012734223764799959558665461635149842565356212977641012002258336921454656718233768089966272175830073300280493512086742799440516773298509593641619149365516090997695241058743414273691932882529414343155566090428523798704723722971036556304725872274851272243205183818926215301099917431277906449579587567738084735326588016790403843550307598856118244995047452437921304274829902891096301765967778383514715181317656017623320084037057161643341480244605239596959674239038716232922729555099296558451379766935745832159848452823715409072040545114223389861427755819985719097303706964506834036324042257900750431175839300942345171432258599443224254336340906788618293093424645879498215636992677896711547752342597693144076371608878899425891622539927565951594147526527902327878783427188840364410821777891914412199052322085063488475604009340279016620582998929840570328689920022450664682260219232503104281272505485334059436736953070369085293043003496866285235996085215895767329252741681624857390564369665313840294753097683357773735458487172440412231140965897991424247972726721677319948089892027685780294046974644944642812459179631285849939507521058741010687727402185321000558628679567097960407995238445592483140911867742414750842247315919117297350288278705553046011494267561123926109382793387112824202286580495977834976699306227973689929423932661327190306559948030988523718576767661010582563661163121943368245345363136567913215236911078895491997108751096205322377087666668122822668762709403883249779853405312954595038839677713354446499075526055057459397355160312373420638876925136247675723821027691435995169721099533502191711950112330892873030349631522043858815414217169166475383115478317852245919468912989713625996871715999373729552365982358966903124682644359859990310023240407060679638187375977179945998669828638397845587048417280243259587110429578111591905192496615063123171856357996305049477786815944918479097502092887416770815530025645200728271484606289299807641431243218622943047024007093035404086442029072711350131498755748157033453856565678268102191358158337652151908812267088104732796522971357157792541691328300023907506148222498695089761190101930789268283650417901789428686655788808344002755432421834773863731461525673753171576500306371245051538195247432291581894795282631274679252267069884143045786585878298826779209108242623681873868788020169443439236848598634788586493448411436362970745052725275549100711252396847646126562423164190941118451968951478858607785310875656274853842553624982521576776914565359588604631085431833216114010401135398545330687390364920671545366536263219906290871214062967073720576241034789772792387792442417799259648323115997131402324372052404940153250626429561511597700740297869613349197647507577718571741449984514166922810118708654674322102030491598394531562941271935894619183774637156986959425168979870897820783073499042532632084032605828286659033643535606136374090482036161365318605433774678615376331008622899182444013180621318907850089897651443652136294634708876608088259963985555033532159816526804896112374317612537118850056391856220760892922820633196108610762822688441801202522639744470085444481818793959577286998037828983121330283115376672794427023555537240723203991257210106078233463603041660016485190100939696212328122914641103713645670346564907683572441947098059481290708908463641067410248691211055334025633422428706454837144108883599157260849822503920190828798749331126098120468284254482615312051481037493002876769367849933372969601743208760877360760975036516070939352407322648228418085426231345658588741563275698443778166162728648361876501733322805331840089252429763871299331079628872468305276340744006611098896693556925513867124647075339898839108511366176191054380300593992253342721203451315595790791334971967161163291138728091287477647252443512979575915263224367620378902048045155947445637750480150280899214866980710520968431155726702148103212319884117095165853735251160146539528826489399385686854396121723643917993932577810155225830454145890373271652253531414617539920013726733688696999306899016435031098738799487788769359178133478391702977985137697750701074552595568909738871422283295711844893449480296137135352752374847993083588982378520330191233762618595784089440021360337693963313654719888279086030662914173468534218177776431298844449312539694006524910438801138849171851207463018544822987631310355719231572139171041215971113571657231343794089631916045896172852888755020660180718148126028975665163835303199163346048194030541717079045802340104633886986545083292123781089782350582472674214619141313586476472426618024893403585272391470576953818559651885960801192140930695034976747243143425795506676717437884353766175411216144246374827897013123938872531179400461550014343795216313057804491491715576669238111702552575085627250592159125575311339726132959234452531743527515213137290586267809907517385086014527017827732155680278731719334184747978050332164106980876397301897329027063696375094945329536733495675967447079347803169963508619151732686519647968043503609271934712662816320847254502500747111588864871684041885065997642585531685101209398757552532996030977875181627709353331644871140922842135670755209704949791037733098742632075784597041883442856536552328062225646855087870415934551595544423045848938205102660648180647257243110090853288031016084680547239497153802572284108785758760235597284299513247939570508211746419568888660449684764187424985428107956541145729788323150152533068378173716493229831978002988688028760813208344546483201029010496070166277864324840855637022063733223366873343582163678688833843743689735856122889470978263072052811035350971144580302366288715880730407232857485354723695870653549850827353002301245566199282268667303350722479281447825684811812316350360852419185128416426193408013319775279638266936510881991037027657334070339673443479059881499262408445879863013401215017059829755254354778759271281334542583869105780173496725151141157050465683829953551010327493521691757256626511589380641006411611102850202823225494207713982934533835194477912967528091220257592407256470587517345351185612552560502034068393253280822781808889638434960141214500644249811533096606989578488879506282954507632507993918228412623660377838803203855935307136142059997588110804002759865112936782634554693177290806466978929410886190454399822473510896463691654795115309310224116478425804589824343238474639134542644499454951567568138105928722192653659787730810414821369642819467848197581880897794018247027331434487392723790030536365248345919940407415330613706383422612272778839793512341919325386541191433977286595452940244060119968082810224435623014231072124313085084013617884434641816935954049196361665216824238204906085337632851616068988481550437331431536766674818378545519715717336301824462999996739124836068519190025309969048836740155870159663952249695325560867860340333743723761376824442709820662257430873605995677597010815241541731195583775797926173926793451772102074941953990230159570197292665399039065290303435674379741984201619881885472224717931625418462033460089835055614197340116229100905969976427260036787678042674975209179193339779400243860241936558484750962475807611585350015088540733428647219894092492633289054232106466742599725558237818756731479470248135495056120782277838452991055334235530917658949690056965845937190701371633412505224770012088741448574167431835247854708720291333403549938095676413929965728359000541667931404111647046716797517114474130191219550246831419446098959348431474525930746779861858960593259021244448249426434706939151786480396012856680863727730748668420418038897531932312647413753317570066280599410907880030688389562593548179787581536502729018162471633144918686518537361936324880900985391863247593848480306471144511714469229546885630482077164008779417781017667882113133072484681433164406027116727413113848291570032316910253012830815888600773020126141275451033729911606621485046214375498742682846210614191854625360247702849579489627396420136693724639584728574099796813503486755438546864891763720681064676920417143333256831997396300491031983463984594631590334790077967691654399604118435094062123193946249549285136832895532498605623867490160808253736101573421747603573662670279953733639773686227596630972923915910003817322328752357518642321276262246998245808179135731348022735543560159816981984542466600913338729588033888032609905786745951135386841140087038419187544605437613458554999800872345260777306310289856988319152095036257965549472366715550193319318652419484389488491198391740422018344555111612696549177033797283105698946981789503918340124458163324417190294705381191552384120545269241459689103368196061033940465465033562263810923303812219108551633979198944804627224597671927043276566047795902600718212526321439283585335525742930222570955182875294720742187077799834375422698669269622597411870307610776486740273208463174885645652758757945944805677670933904347756634011564403846687964956176051833938400933664055464224952440211860552594008867257080456231691770520980589616762276431972292694848496234286391088539598128136891987094822953316566157882749080569396498093132104062589964209455779513202062067540481505421409006839566825173587595073145654420379731267496647092244518830641447770122440318369144821441598390598026837984040101711238098240809367454189097412979083473033406574226896383987034417250611970850475306769539296298679810398077475616698175647467428457907187993347604456332818110969034148563868257990186754172667654686902519897847189202113843734743130505314312589501570167230864117438047751974704384833251060237623137827634776243674718396014258024513406748524124091495026698694749641713340827207011336054619542579298871861854121194143120797764015665024814046690482248957790250613470153225761091589765514044394036420444014020163369483040380688774539942495643858794764729238294817667879383647706457026356579162255360697231221222141904619841809875550198473610443242504903428494990133269433016253282682045436277682054726699044493917786318385961197870205778735754620890313823095347753718577368732266774998375786824865343514845566001901792015618648891484025931814655309193296118611117880638066907402977726315014925382888425871552595025400445669629979269771868079743738238175114064736060839820426332262762322170502973603912529874478451317990575363500213168900922485140489173654832628204803254201428141733519348695993501960086527149917361455705026945848688026457705978986496049544034300557720000530218771967494302360359994531470018881457240695614315428353565790354605258200767556393181620944676234450384800579487343896432529470053242706228829396894365225169519200468115338110579306139389781545925562142341672432474475693388483604860183183577903280204462272124497643482827324198007369121008865153333522857785691769555389396310410174492969673206459639084380816514681966119308423052733984749379043094178512890515594327871229341996735305021699520108197429417843011812578577373393802183798709988222449804880281562101786390226318517489914181121941717839918852578086288250518132082127746211933855884377321960762985031211521446805400940500048982578041985100164728080646205015911018002338017045525742492703553617867481348867129979523583782552995885210834615405061608143960427387717877118777945617788037093120325021565134962565106129195489953552028261967362454373160504328974827972554344932152449266636251892813572782246808038077687059639311094640008399725657203154563875771175163977460175249314158578386158374430456048438281956737227785587760366163682700692380265393883142958436480273925041309411062316994494187922249763511975463272559725254635199774210134862948346258390569842057273772971769746140423784440646324937032465042045114271397903475687255465583406241907212214897369188575177090061644371595407908126931328549619818031328494016271567156794659620951461411770244772295844483478228404545803523202282283719815830232012768015127817480978456764050366083972130554469467753420139010583426112181825838981256686242607016041620396979243893548085062546604363282656623277996161569399237114426823509167485641708762909960938580973552556961260767335440383798627087224970948904677592051213927401373478446462129047625856877590778808021121769590212913021502253391003387318271050260994307931485741967497633371997613886301610517362399762722817849960413754701645348516749446998483938802296679401557812828537436806829492259479177722802514362409858465104606486239253151715266522871488897710978198742977201814739434447137817034050892692912157242555017955186293261450856762826545914268304142028290422615562374950350420523131144002743140741872301795427917806867410900373863640371235240671463308557888698747116187658349904698629064948342546552765030146694209895410764431435584839904665690354895837772103106815759470870359201782584342832274831480722202307295245766296738296137038923113371389469889969318873639160412485792130885566460263131546702257946574419778749885834240529654972935949171792283953758399608158913657237316516089213530299515485827888482227438246765780944754366260615251678880166024005723072259911661599430466087131976763953898131747921049268736473915672513275094516708163707188019506719165108334433992267417648012455418913950861789623850796521380318730471704826403891529218511446952646904868108452769721418536027486816255017338019866623312513401859379357456894613716478884796493430488983422313189898261007491271437841904467495536808339689477289672867826258312712230856719617117327759614057040659024063368392974440003055983596045870049841488496022493609086298073105374089638969390595884790298566353273277312437340444528359708603268861670519119207808437522838378020438580107639985134356008307282479270480503213066061607969840668671792118459902505497567888148488740721217840164083727478855795146337256407082111393687463912348760359324775659514547124765078915468745972094554813391945293100311042522681930771763884493094460399060131242732141911657670110493283972321927370883063107499366179120741842533752263361207218270210901268372608946951913367994395525508345831909090823291350077310388834934020751406287298178172441485743843600256061131009641941772447167607220209665934680475801339005474673479004286505448839644745305242449082110811928926512615280993284476033495995994333867701294601289655924493102904433350320219593188965278683289215737413584359688141343255940658305245407559855273733440866131196390798063499131673980483406433843155855240158032950512959165176805642217390434054479380115874536950479041652979183513542020140094191552644766301213684270297538187848422051612396448176556264453452380339200248280366981019075290856577866329823805392517991703203411805317673952223734693353621157902767167100729397877513420894032328549810625620025645652286438886050980826626107823147262548284038481726937222290975315108166297932844662499731174887897515349029235586898542866857092091386309439022851347447508366734586085380328666236749304437064573701429498531069804864476609339926689362224600457494615895709077292158235508305787056591732292224222131819904224315214802021667776328387209821947611746182852169517096824610287918872597889358459833250584438367942130151394157064516459260885236979992872881148740903806899501063918337289766388445626350654555376853813008584830229019810961994690683989776502941781029767107410279028223311029766057145792780672987950223116044821907170793783892331704207804844743478431977417507572955348416402362676192696026950699263189092755124827256120181088945242322389364155756201888680363985935047685252838812570436311517657664841975166662614042907065790101917996954897412145286679133338151386392255319533458004939758727357657304589876438642066664966190420948217461514148191617679792092813223026064326204291610330838853508975009385423115780027664654215661889938121420666396886499904742506156721082503505155209013661062195062910566332261831587427286427958523354274293653961453665342994503568014128707401783138948435198577041696472866523061855509074655688537453797279058128239198821148297399088448150728556662748847092853700560597495207418775418548305381869095049328517200926899839225728928001675396795329233619318024691300459018819691605612953199820061444191570694276581890862812832895933285329756317960059214734734806865929115517520805667816477737332862691394361762532524048104825350526092273389442808147179330438975251169437989803607430263475614195979284995854609832711274908335390904661648523220576391100020510819807384409454564440997794792787102361105075597099741814410959520679384579425621894595525502509231053092146552855602720391208031991918539462122981937293466410484305196578664430131796241592663585365015227716190495212028720101372849011715517141478339029037021824822583833296853587476703125910970847366991320228963054677562057595857635033105397576837580568878615219412449378157535222272679508890684307444006990879419440295018973146066303693864787596347593088081301478515288370919839064495466137908946252003718576912980557810223206894930626326173114975305739840034125785784595226469039152288111609309739166050040545317025889194942674921491543395499899724480287160796537878993488569665452457776747072376530616599614815791224102781411129197399278377699240692315493038887772586056977802817059721593251097332936445536134199289794646104358473271584243923858476617811965276548255916906940117983135949534327647359999797857536284236168802626353693580494871717275672331454945676399026039689267771088815336024769873293869725902186179412963113449430476534130371325012627783739844914392662231766547269692637417806270872715298194456345077534460458584995620003063800486120823172094519372021975367134589355859468112114020710653685972078014998931418985839934043726619046800359726261023937651964643845836405261011942362006549642046695277062845086834742381316812180645776757055168386942091377958407844913483985339442132640697974132729934798959375165802796043177966156995318589739063564383798150694803446205193427602508625982947013763447446449568158509031125991744338324327875391096857116574258683388193106428741493165333870847945047311237452268640739023615249744035159383420494027521130613150329363372009743391997958937729467328800104644286736418328382981153047654243229438156475443165421000159398802672805193431169016220842268518797636613677377853342777946811340185720924220504211818632516787448566015165332602314936907480096760293532167242408481343143894730099151702920187714851647174610281871329921451454532726548726042740557553119461077281895932576531771557337434014734184285570663804781503270996642515715564990244947554814181954281900402092554542732645243880457833113300176100631538312756510477144951169992707102311214943657882737875689452195052067309742750673120401489133859177835383805667342330215991882906858969248044500546996624798958902048394953040101109114803474646188729092947652168599774864929436148700859111659542859067221222439434217028129022076499486505590497757505742772598118674619750381068159455695665826043930809615831422692934211884626583577592225275416434971196443300496755371125312903117053211630077398987976227082214442434460602591937759552788967925190121076400226667561975391556750434200065352681274439164964631028250242357379890216176914252900353434154659957321504337380092962273809913141581726633617475248712272342974968875391129274090051123695706176233234547323984740777022888537307382692541595925480547448306065088242338097815521482798480901291543862844253790398492616391242216500186788917416808003430061868327563325081409017637588066390551865032986668639504755302646540388760089920070145237795284659254692641769208161928596910247362172400910164181688516829921292379793475276503726000918871795956406535937765682096319580345881002169652698365202774210758721014070000219439289159293034082507094304159636614611148713300881057793443828342168970472225848649542553904311147348865491232454871933272525979717567934885283520730417797186907116835518533582283394445963307593147532605400542157688564397486100876001082970317442075783384026878967296318146755540842361886368873600278929476060901692171997888566909094123610253772866907107686162909855602754962657773853482672871912104425297425469714382152759786023916191187211412520055260981688219673654979744723922166125368903113301236452303809298302352820259176563172709749850978831127080518182353109566812817204605113950562609390275107861649453789832484126003209811862595244108840972308913790465105467825870914383105743737218752283637566400025333078696619491180852542764670198270970594754871275214415711377814050855566895115907400665263956688589182153625181840397220138532538953156916740268615567670937313553954007311406794307056422344284909424897555719725185248553404615648261773523645165578321242442485928332284627201480051252412304988655686974937763110766713491221340403751841405808047695572033138995470812993339868548070272312023670096532130808738418187737535972338351697049591784384631654237651238044997683440162414756890167038039924008997047085904245905317635998542280211452728432824129375624225849134318581448116551467281198350257776388596745127873803767973327745416525995492700378811326717245197143204529641679066951695581620066698465708160081930350404263182841661057118009737333400947703200733864955107425718744058161265504697236274795751752364308830173663884796548565547531636312767079749154871699239480258845560587664805134457654280052591676822770185673599479685577830852178383453335595498383205167664791168412301553716663983856342223051750686262078942885755277905642340528489438625946635473786506863234797263357094945187022668404803222801678314486804050367848420962049058018143188703793558932778622339635500587249038472558336100227151311359660759228604565861390700899051066241046715123843749069618077892377313205855531025211919159665130881403123191038455327656616908407072400685398568850160649886729940149826974387916610982238981421395567654648859864025957324735675381257301102286285455230738611202036968907759209422558336399696656134495385511295103962571231346895934335286392352534070110688636999772991731522450771588872881867189936352867318346561732483026543992694012366294616537465943005159114097275046176419499165453812355917254807360241587712627120093516417312068693191585944733563563407524441556317505427636380798225622602714838816681081279036790552166828032454648403852407057134116576086459852740696640666854329072983545037721572567388311835883363247211701776314635621348687961613540043097350888701387512626729266391894247200818958966709798553926524701135691285140423003375149315326282125898904345616768571347150315330751701999118418706927564976418464689632238966526088034811910332495067729815682254611149503132112867083855979041885439787271720413903940749334104071069888057119114698281763497904764839188660537432153412850844546672538329487859636329105038843419996620275533705503718508179246640675016542254402888585787217178031178312921485111115368161579738713830695945137000665646951932326132800570490930787403543014568330674993805478790845793740360834426945233916596351604841795046357653098537587183977100731981760211242086008899798656793841384074822155845803730897527280619712549125225768635009947203338656942282630672137158045906710817201762434630823981743184449221813157409214758949680226309683666902182775485972308051008792617099303827403661622657880376846060294461476752839572683675256072496095169324964289649489740231413175457534085514877927225536218505296731070437554205708242885890415899056864864177526115039095665278387159646052081995720095605886889566013099844899115744862229261983702239109239034936066287112077053142388595603331420105479665139684236315194174607490293042791373303503851299974615333747215219643531361732737249058819877981553600785445850095257597999104931648672904264312148301070025862187128216158325641525142670578013035685132484119990417241553851682365238153153393824358974205507251975606963286959175079240682174225374011057332386194886952195438351108894080974414760410442861885060230443226791444147179316885969285573936986029436893777983411129145773742600567510949779863681017267425360282758731074171786686591081120002070348663481416777494693550133380135994405378240976344478054758577162036561525993767334985335579200889785487368307901807403179166490337676995860068129222536892406307153165422839834799380102787469103010510826330049385449634747298675492343773664919094551836659587839792175163684685431453107023712475068867540453913381909926045084814665545408156019360811225144606767376652485404629450043232079507429646840837250410177627161518298013880330202970255367132671361831117526690681437697729763394662948629729569417012646695112276419706704378638123668128538821838438189046030303292143082661783922099649723787835134630286484556844532412437254100158366897977556331200015940331550605812165263405294196353312014228019731767588757473401697413202723982368788874625435482355085060227189139108546215298232147405743468074857516329602575880271929088808387789375196896121213890843850162927514810221624737923136402086103435893114805235946559721467381818977096992541249568184450924585794988779038896440256759303061368950868461558673076859114619643921212942347110419169384739603478690479966265105225487731634243867452106887944567400928910906925646534274713863349168035059432480314105228729836777872366571841484135408032964733603781631301590925455238389661974811199271413180005496492943092571270752868154573139734588883143937517688306560834557873649431257853272860149297081827661400990974868097176994245541572785078317665550189495070627843968383451689731384450844055748045785439301071831747720140772167710620253686744060840912879196448601736011829531042640453097855008113153312626450520202282294840762119046316992477475153456649266227240586213215776525347354722310557566679241518629786511227206257663387807470597464071313575865674490396433007544143976858384300702875450033834338167796315099874728986436508233188219226606192986279277969665819740674263353613210715966572868781640924627240708056845278633035981585336750183716887277353653008506432806717479868884232401690554736585710229532298636732995341215285907166286332854545698876749608019472628643697495715975956064011338524722878193355699870170863049167221911987789020772135069675015267160966747848089105872316430771026292971882780660765497990719826316046112322363906348687674576475840609527028129330952095654871043042552493102446912667780652627643845964246441114228809612715957138110082470750309979372567566556738629809889413606353143314269857418701389645138766778023155956948121871380982292657136819007791529416184051941519749965940960714967561193648873163830076638925237575789304343778252359666636424428387144506644972323943106253227196151482812005883188731230611925884101438949233767748732051194494861165698967774717629769807351664571032606940053125300258009846428329973241004168149386014073527332732098263041511227808773319842223740039976385294477432940620831285235804166389867406075950036173740130949821637793028631772951619426028025110497805208907354567948258838546173645410981884674151094051120397696095548454284962998804259517298499256684914334004353300347920438190098508354493616618205836967191915976619164500768513416123791361860451318388784689631565679954652992382161094590529994419909306795384167746711544553928904857867266018660141712553805737009186772439848769271412227429290456623715951049840550435924904112842660979838747529637035265736057302811364529607975407467186769406371090704821067039081364843046056525194790367573082657039595925160009980402958465266249885641356922509730977772300566073676218322001468121411551177317383023377322285644204784272594260550885468245836481970965049398577057780193155532664576246392978972333444701336353628398586189097352775127516088862289338376010245816389883859415454690100022415354673483540912047367385282858260074740490339030746190744884612286962026661891766419116005028900980339083857219461656977884681332779287171053342534916426971317351005992000960431981094763245980468522097356357514333091534618316277462999723228483876374683922913322887769878926342694775392582581201093363566102917421890697414829156998816436493211113852637626330651164385672825002323107681433358584050889764166722378673393813787271304936344817613388463200622394937464843205197415440243280054601380065922370517269767212469704652323658692040196709864035715090718415496688140823104348204637805564419783070950118947040466128247484309971198791128156523346803358351448970936921562963160367694926123023322778253885201570709662069232288847627575277660592518109098272500754755246605404912032950632842606289836865353972904690791771348235193344594509543285861722703427106937717646955389463876127823726493644598675263964969142213352241477342827855572577304139438303796362102940777075905585285595530699570500320234623855262453098968321930941670764694854927618420423143955681023182622561800087891289756985961971625218610359348677582284256424886427192616736358511810648144701206440122177304935362743179431768745086934110462523367837587705285569815124580694256640166641801991260120280637738906688310537940356435074794911260134852671132210304654593845490063288657275211965624276029471903736423797660306045109402340942496511895849772662501668612473345326815323299635305893801647811637351636120705850011673540721317193716960077666593982463258728316728845802208395069586449261558073600579882684317037565889525779546686945879084561615086714267029626852810018659619682371926354586806209676983296210118701509371193922590254221829875583422324311813748519693508704559740434407431400480215259487448537842045042888803031952517168848563577460745582226240602925618072756227351647105193277272150888189118504456797560333942493225543058185489755776262318155715227577643116527908646204788140564188482696488043185991689912621977121473693334242067111737150413995907491416958540003960767262064201480071191529102263077992439210692473810912980365798093690166919674727970829801804288755724860743711127696097500648905325591333034920951448262377922701045911510570818065901099618890674139548900584865134202017947110848683510697563972633691978056281120692140368026771203976222938603550070301529221952407035177610253780325738612719407147500287580314134753520008987124242454123058587855460668656383593284717341938722085085327740929490386662125253279025852830909729230952536119690293105217345595528134449676817955523832454619722338477595504677504894981007793104202709234575145249532220272619159824942175588242997625727912994147663754093249736297173321671545540772259227525081710769411826772208983420324715255149564695650235234722316901649802570226252579376429551983219236655534988716239021859325120226231807857916218283350926841063348397284072345199645494186216277258833368069537288650701477847833843386100664725794963786757594435597380067654086764131243114699895783179362389297719325242681727580403620212447057706007838048706917670664800974981948835142521788766458982189948578305991900736136973291450692455620709429318126885897323650052240718693413752901773774322286419391960108109029736767527532496672461636169220818857959059572509496948527829059258677026021097335602168541121522435902940915224019187222921326237522813754917157944393016449114565787221027865432128893184794246298914406652610983273860583803916568479893233016279776385348767147532177443291519963801192833933748940336884467601949637630594131675313255720519195746253339512635750939990322320813993624920844739537895205178417419013467382857260559453822318457289038597394301519012019664478484037111634535908556975418004551466905169174487957482731690883850078070624126947159796137937689285392761903686527131099983526894667660449457479274548868391232972917052721098604022822694291017085788377142890305321895953464763995382339746253162240471701612862058145678728457964793373932821817086776291928390217269559757063817657812898696003625229170262580717505241708985715846769668555518254523708335392034065773414795856842091140036902626320298844125288938115513514636812517607084927715595126559087803449427124986617983772022146411943338004005191255694349897434421287913853448015117655534741290441807670682820683870212699504339115716333690492153508680903776948387083905406844984418076881766884322333607604777306943413981538078616713195779624505076531177802296026766914792970216429179994944707181443927829937649572138373844248689331653130696035202083799163013536925830769408067075807717824649540029206358510242239683792870736314232410998565477752815951313905434310968752326904323975489910255724537772284698873892605603292278123884053703374675241870864163421348244259825916155184876453931342839034556777447770621292024278025423820286185138919601352432081442646211211551132151261127875361875559334386825615422613453405328659490326312909476174008214882338553127358418776724934374855739705026752060415297853185014337195043748363965727431474936794369157792515677803763889617189744747824695927431364782282579111341262018994534939638159280446290399660805547067358688670561954465802208836603334660331471368336041010631117539816492803048626171063574278133700761901619636364286313737201567148318287589655144278868780479969974285669842662362768378778015048367296498986154351714535316269540108608562970348099581713439503994455013462464656905018941362405656390107907497744995124544383881194766502686280457389265800100177590792410382620180493658352632331853707595315089879756854788359902807072884800536849287148104998757167191263046589401485299214306690159852298355790574766193253733420678876657154884260862579182007778224767046022500377655854058553034650479591283029682380410574586909954370532452321311789492944538612072578800847747190269889276564709225195325382544029395192148529824763479174033583841440010649231463260996973451465003134121436080280531207907621830456541451394215112432539296812703876638191199348888098727629339182396188527998124517201116535029430987237703067844556900845988827230108628320006679408207721464237449366862638618055685906079855164855722378144680895104216439895343377430156473738341974957914952761980053388741228930337923505642727335170487329666169515653727289137707520728788194841496429066791441561403704645138751331507123810199926513955026947690247399706151717015468125640548518543619087166234167960130715674516620444030042197455922741682388438846411012095666683308259085816215829737388706985230300845624943723956241109331687723626301028497326878564291855642060068691294780243806012544509453634724016255365521071531453473772848828379027273455576752105985803030818624848402045279539279100502448615279208463257186460805857197096583187601381206488654713604026660268683856854529357562935376190831405864419309642242117286278519643514272410389939755444632638849204431999021291806631877325016879125022693123274484504546149151138414647144753800767968257664096757266249947653661834798580051789246825673497319757312322516006110702433406015728934421824209838774666628992615361865021706655202076882840138424026265600006250215716581088831771445819421428137933392049392890746389881478626177738977437878621911336084777224629144142845661182106752979942047031641749936854611011886612234626483177094761710677879044734225533107968445919250359236320905901640318968259779775798922338044060454821218253401047817805240726492223620681857809261179508240040589336472496887861637557020536000144147451664308834431906878875295059256645973535580631048664080441740566188182564801215488136105824603344342238319289799439268564749240460719442071992769925414349309175041296233172094052945169252405827377217892099740907229457152311418501854786148130742846557821105491983815085494063343637785019635370272205108860112832877701559597497710787601316870964225938536546437656015025798381586123645749943155108106179729170879667786927510781128871962704809673157768382110631768636637537940146577240792794928779255796455885125657694317893750184860762951434253916395066285732585597006309079859306399203376100782728509793144882258531677311506261140327214326819585386035595024800576572516352987340773727307885358639364455485761735600207631530294246876279346551550765856048685009080448960320203346179836954507746430583574923851297357509586068278034713401332048025183111369637093783370582441828841702181050442350786540216964472848327664654605443136111214024759418294741511132716783031565144154106999689715928440943791584609919431816405080730651312854565795928327109537682696204539313135960995613923322085580285493904279208111722953173354332809528032847266452991250078632596851331628839189229403063498303565806154429156709893896756750976227391407417098153020861359993107867275867954052077535503169712541091302916241463535704680056950457892062782539197566712590062499848425641786708486916301400131762247082529109452710505268468238942536060929955675204223241058495130024590177023474993061634867158984383977358441032634727688541130738125462238929238197469134717159715328143873921453960147780870067444274844610814590953742461649812212506989832452330828616611233564794121818159481002528995588380676569645223941530843218278859348897095759008938661879258365276103022529392609021765178903758669960251132239003594915709125616652595682041083449090142003225616015463073149627084956877594462699557574726440509665234257433480762513783220530704150653521376379113751517615364432243176070817576454161824223510573950655685809091991941296805258670326288665448903933728533370286951941908964603197746091957619700754401145565677746559862189729727369092723518435816544890918301942764066099993663026714884897736377309306162298305124259321395338053315759437691621074952693514682663141685446654478425679301537983320129659661251228240787305763138000858244575368392326188686296217128549933631267953185886971494564063555221407521804387857751908957723690512176490702044447806477643622719025841307283934691739326615162878972415244167359308125161885982789797943583521871558166517772096470145067199241677671483670369973259582478095270345640288788899798735266209413842007957728258744764212842303857499568766365829640205631527442332479456417997338887084441661333130744629921247998528046085255177035497460531961281202980441600981115230504712090296229691908525827142211192365863645749744811355465662049010074988508818586444646890081427959186358243300506046811704175208115983970167425734941845078689591112319474869583276839162746611889743386964926339653991926668355549703267508705393442917305172895573937950355951612634275558604641898186186783763168248912821298126871473546700277135277301425900004737891097677798528228306632644837468545054845594015964167637660861643466157299845579186965416269831469926480407745610361742743770319869801149237610942659013563867747486767418544519316997679926132164616486011499406379777449101024313796813445769100716028623354509276653822451898117892021851878165335962265980000709766526758132201893376798082993282260760160817183947629630286078869720921466069067265749426028861472568973462106302130589672711460227457142328817457537563925665798529566779293865195001971769448408032606300002825300848427904946168472963432878768884286113012915211858904355116916195099362331526964084978768263665259784709530758322668949514207446143866685096431692857390491073252400631645949296148436401791271146691332641263155834859347652526247546521704572213029094488125967023199199031118627401761455176972083334514829461764627841811675363940630047854907968254505338824016286925049324194871403455131708110320870703985666872201272277705625975138799329483363178051989383130424892699045980018318690321461011229759408627705812058283252932188103311599617414773836233878154870015175430441031015914509959983598124365595700000595765947299741160964832509880789225185052703218652364650741699549701387277443210396181004134765776581446620038038618632801385465937201120354124489026571007697680236091548407389173810379314249306951131451852811289407994730086469993456536802391194754730568955475598501630260559371243575411085096185221076750922552551069244854513509436131985532835430596342155763194035486797857075387441132681175270823745700409804205589597006351917614077618821005952979608794303135756839987920821844898261200972054171802736750283773365257008192844780003664182397270419510791423349665869607007653305255953178470752153959168177211953201717266655769177642557324717157319432344112737877421020889729699483782358340956595095074700716408667547294679377052062285684883557676157091891505565123006978256750295339786328207411172378805066646493356976482666210586308579474806671570295948191759201278505866883989189894732524799471322927031894809880485580134618887125943260188809335921294424757866891519690798917970839520363879077011650711211577508101735011698103737607861553749914292442984863113098336500683054658469134367066150097625887092744956938191013301454506211807234544721343970323054911146791291735123947278963154260130994879102020386428229785913207716282625602877106596771570224112686875893066471273468003339666834439815700294048106918213116798526298200238008199731098671831512042099069855749705289639684479234305752329525264760145504782226974641090092352209862950876008038791066672868964174586464136927324839524429973049260442819890711273650364901103771368411793495431885561879134283726286341539281900230572727398821493468329662178784905082337567052573603232517831841167014139322594745027003080613506643532920387655612581793840437109982716595738648994015874521527237249632656609736455471175849575398113600050528281591073894907317218100299398901520432662350364907088763155573309917808426894215150984857188127151421845477307612513937542514018263863286646975262830140910057356492105151311893938803428316243066135235025141114991272237778771535684327623534315221432271973553027556961698253457157653690059704179579456716317667249117828252582338770902838680247373161184524265734233200549833812580849203722397401849390047291611854212200372614534638036132448089829308198361979369913742704843399449971170076875241688849560429821857690051521371309263910132673274760188663414108620004797580488963589737102766533993946452550471607413914589655649656212489551892016061416794644109254857105895419344062945791154754150738603035715054340712528915118353905423358259948588058255796655855942080494254579450574950919914193540949801629814152989739061768494295158206648861866803668104589861340534228443468251839022711383762037344354780871666869909923525005349962320820310282351954608264155328920509075283251505134792451873668823397125567967550922341198743685573271270102252891960732030157402360314557565978557404205497106508624281424666414554781372756654230172186907444763162205425324291320353948247913796866805506119861867276352050887431394685730391771672473965480049834255601003471511587636473433063629076859309115277122542691861398682072425533475746783213032650328055638976746852850221089536665667162842289168538822627940528828969417154435865890274891165886431431057758806826316339927040799851765143488255051891718771627351428092465854078180127698401610426576745321433830501167428555448143840400443318402892496305798602105450630117079893691129550326103005164814201923293276767154406200852190389933362639865375887853881805151591400015624807983479276689825496863838036862752541260759418235036711568590990360413400261242368474774000521039950482618713330348640079305841894260356630257287208169477307504211577486308731173823622307644759578725552980109458486950767000308783308580000295915403947424839723023936120480603622843077573917921487098570901917448975107859516530046001811139330919394852958155449697791114676054769276892452741038160789249993681085217690588681079115186192854289346957178685080418579787304179025943928624812397405859535019581717742514592774466620053639232736722455295830887266303577423373605403953275860554163146982137500415052220365550879833089298598166512222651205889310608332304991085316458760689008449449049865393919163942229741310229754459355167534029999679984884319301988289877602477414711624655383002643837859916946273323909164943228669876699830431808503864395536328718425088360998544807279495367119321769019587305733300728410770550078187948248437949142078250765025108916350789457254567898960716145881611703013739070439369805303187344035541619490616139418708463650839062824809817675975313563479842764904767299050840882815066954928095323641903140966686342028245196068074750560834906357133167434880896792392964498745203290930920724746804737060534960339377616915670761043604045049147936014759444338990349085905335146800133010618157680716779425306948165797825086973917188354549391898591228711698858822090875523405339271717635666356130762530186148928838677288974314493998559024831466961876979008833686613043443094659612371163963529838790655839925956686391006545171299252833511556134372983540369354238628752985495575807243035211801318249358661659539552091738587589303306815521125528610195034681686319410929987977269600554093615841468892760610248637719407131968404313287570025546262555245551237963190570431549297417849487318624498969717841710805364055871255989688251985709999717950831616200345642510634962187404543740168174718855191103860372298348084975871852918219438668997861312441731650344029520754271866165739090467674510559925108806895646665583529707765173501937603065062902372741629701058926550862349334115646280294996510052949692023238432611294714301510745285843818335579460928652383903831333242543590954184644887719472429792310521152003488776536218005168710935329441664569802417615421323662934517845089547438880866962213162293187162136064666516827503620855348145416582672373363020919798892977009577496796061572670890692705892504442289568501713361761314505828760742338303619506848235151137283345149047234054132826436768269336466094285239167612660855892653530157529044475342150000707987476809064207432315881709230107769898992716471248445262772574766573785543850831232124902909395841869173641733512371126754491578673816228528926005826783879266051116488631738386281607037337687165996928629453057727325963120928825907625867174042993304237927803039544809736820647580928429166227096185614885530465242431717610523286522983380550615069456361365664241249519932751667313851678166936424798133614000102796557511884910536022438943964424850115935752734479795672729888852317143820980085781695996347321813087353707460026811932720031379997724413527000546399746435063021135949255830771096563126503823933127804729711575596757643480159476258726137954808601114672428310615179359583738136270692002544103459179956587087445827180989529016029834582963230986815386053387164646525739641375388296927282477541434202227319883496699653107491636043956380897783018700910022880974855713503685275458949459869918608826262288970947899461638618691920488081782448702335036895509609716716517445879354235812590522925828006025018324617685132846191874778341536158822052849743973628809760702337777688461819369098709298655116247642605455007224440440741685572781483662514192183408024904567204733514221720638785215159042238444996686605503296102634464974445236811476759112548007200242016121742280431042954476483522179858161474984340530525408590875081656381157151473649634479720698293577462971434787587534546065005030912770058993655585041823079569133321234404437492354865710075952922768518717133919630393734585705539060336411383116994561609793357339151324896159837048305440427429383948687368602575351336850703650568593898159240168442711947765836804448481181237097062592639533037119778581505751667672472586647852444057910328107455414984644823700514889321932306530750152454321289202907106804810553186357246807257204829000895336386995287953227178614156444669683381202741111741069288729609671420823572767027697766088233176913801454954935346755535700035318635650504410915470032302270092738331994130099449245244823311118870632316622227251605505755397194813263822053070341419237455248378477666563124542817695442545829314493860488763944510576677500808180357622112875845505085538214018143334359320323518903426751313966999942515523829907679944461056990209419070740627337757253375740118092388606961470031735850903806526307190173245801087677433591463123790074203836766677397215165328269996773336274230217822452115810918261542930075013260235580210278102538157730826373989041505567904818803611807150907933493746673638720179279110052306199936070710202280942078683898241590930174211597484307015791687719831858703630182675529147911622833521223615331553723379109757570383882496749496781813938578846017825845547795089723503932334216409168721888653503107910674236678847994170817572968350501896057885752692775003860267496987085920308787493861391040850216677801020416247299463555355536909552332813125606242968818870568903933491965954747141112202250154701605002160411340898006409931228212417426137595528615651013374986875058751581393464281405559110970171782013804220546845151196382988850436944741842600578172947058480930089054917100978423430205553165740408702605741759541202354383490667228587353178986510835742285088213149102917660328854360805351500648495145373652147635014413512825894286447195356124116154239454042797268126941009571964040476173270857935045365149309845066558398260965429165237059206115133671045594858909208742647051751403108485643193126748658708073300240481050072166210972415479837500881840647462413811043022975169248188687745108684262390060366405222870141115787977554787228032952126792771231145226514010594742645306124631196241616855273223324893971963492063874076808873704299359766206334637770439449684914893274388282748547129273319318054273800968514277198934342166274120481037559077543903580546473564087643705416708612572122153264524318579211273688926138299984502073625082979225170678929139869897802923673812856542714598853321562061163329727645269816169630897102675962786577209210918937509144021798363847105459412848422968041342811682586276272884173195832429073471839600943036871178815343289077942705266291097136738728819378739007263522298371557621766952847803976906776301469536514982502318076271244778238521914390079697157343413124622664993457148828827349512534465476866775173461825525369279939829890159933586480713359900659857117287744488600329775918045132576339997917540207878669977374889081108560893865024866743393718569209431474310704245933207982204421949380660679031644608696112283125449466624422817196069673351012375458950075622838919528687118032820833099044103279158943195472914934827611995206830862631530545168002109908983586940426032259323616757461830906410797058686559112892042892097294817569089235516581212001639942459363856693426344809499805871343418972284841740226274800931272488102584202067411626656840624089913250154379583502143192634215773121491407299235801105070455269652816769091707714061324454314431202056510067210539293600224355628516030405922785866295252492969868328146776942600514010706733599830774218076771125551658880792474495426684442359866571844571835172439935535325272840711080279277470947146390523259370937267593076166847672972249433688352033759667173130585203599631185866851537292429487123768211889051815193208506230295842227602389903244646820292848325785351037725270421079589958497941592426819760047427568643099864305222082914571881880337509500501837600290241257666112699922922250292621530206364070819576130229949023597686408065871495877390415724505728090160811676543946881831290584518233103573260824442152174417046000064002023636592894257271351859017473279648553716138611073647392762074467271637633886121972662926143128072545602150382213691035366257217953151305427683021377000561871189807950180258269502617149180620870534289854451393890668549026798070994735777553192458821027480977695266015055137894747347506658750039416057674629683004585248408615883293581310178780490621687851564075976915679992815674224849276585232272129075483846691707697421941207315878250986528069639440412564716750322624174433973973420856552829852091206869664432655374795017030477717538249092963848924965442156500418414120933207254618331840171873822198231478672620395244594938371439394986794286408307371809722451672418117242347694808524296063421685970719063359571297881402605361217087811011501777918307786050116992229342384873205189627376175367596950104363507197896255447809001794667798107804705984439614399135608657499731463874119005588937615645787387843268927923648026331670448611250690367575485159260791903429137055162294102940882158732621600738340722722933550078947158773997865303352742800769889029292786911136377421889046075145010168311603805192322619691078924718966008309592091348659540590621839711560100888139008470147239119675440552902382293894192416147517122229820890959605148414459552900303393576508754649740001428702772022565955344478835166945676905843998628288424665219063702122338858496918847240773438281432822543755287511418597888837772485388859373082655955292932734912372091445921179266550251841176020844570658298774913384274394961714596894675723944005274230479043699951684441681745187147480977033134253759818712225069226282617734441739171553974863095529358634834789305438826750262282747999295032854749055925893926357252031266593242306780123903338651591640589077635204017158449191742933132708566193238124140235437575729937056300391069647619092128968762736955097248833520788277166196210309381693059416936490510878413659357109430448715964478532345598807264151808419220699006812136526680820532503592751217079086927245782819762696129051383416275478459564034815919671871343691384614652711132452133863053513583849569559872060701037651094666085486183329552045713495253795509796141245521148937428957895818219840582633423396838402410059775206602141170454708470419231732749770305701708150318759341727658625042132091221803470375035426595975818121375360845942841864406334917608311854750435041068816274009384064035932153259346823623656555723148297753071724415385899197743568560544075691531379494076710042023995686276059039869502949608337501946564506380278036733945087987599754417491970693369402638674376428029805085991734203444009609206746066942233172808501430071099093830267267622872522177123217232613775293296077817011484186287970128573166024959865471697089814831361707684465088132750721652070113666560574087344869275991168272828529834663384199214388666429255372510755564570871303662535963354666972637750569954209768755374425787389986200391697107242208522180899691671005041592335874914648513092181827153058652256650166652316945247787266431893154944765940544147940400996986814669586186547456006559428763426355335417919278295934136435725059000615975091384436534208783820453136243962694845063348807272523818386232859862897568656591883716999094034399885972325723647048627933830267362769403285313087592998847808344773501093728736272932682728447581711439766494315914936623407166633227848763159910867239746319838409954141282804838604557715154256764980765010609423560285589119427677935038756062815029484169152240981075804215154277179818685892103109167662906189094159537966629588489302328738586539877914653623520044802528643610697100810212860732139401703592466374862141042116650143735330352782845223000871248583675739402563746935742627870213624574914784288325134685286234262867801153017084050925802458795873098280619495586648157528639891655319469836024752724015228788012740593609254547598962293343887020041382845932477074656678584517621026041077592709702414215708356437154973569318417271795042648348156878150530013734667047195671455506396997046183413306284298946904686748642250219940729572894277259279312576958345539988952134849412543717980072792880005590604534467739011135345129944524616085691964615778063742952227475472588520446853742379564330372672553861802409178978087035754705136056141521731894403291316723133923584946743854894199744772002520319887149826440684240880719383457175131025183341742479899270040583702308378016510324318141009006132797063615998835900588985209246978935638511537973899969136649566745253824778667898744240900415584454410208715050074476587135652348963149363981855467929628410137384467027484233658078483145432392394667188802970373864971889275019090105917525752274849868624189085236814623133607012703495738789772902509783234068088695010603189088518000198001263727991546214081280578056957785918560827989754637282117014005463598173485015685511093848712824571287178349097179106273107850422070015132147289449671141015426871290781149633467282277974349410029325818908517276096339757529741551780882739485234924056108565409159970620415833601074950500851613381020550008200860700325795731040704427077915933459684653345564889638850397817286649302742152960250850533357323434585971644924575315386281853070607688015125033667579631023537058821495570808895626589063036821562686668938833013390372685054297185485781252679727683659687893177218056897060816110452153655177217056244069695844587688153355010213226342332882324500201365918253665480452182132159276532295277186380068795492393355128650520676287861237295903712237457978900215320006695924037090419619084209459551153060557910055040217179264897132808103254582133486370941478016981943069587553870894784604133872909188114542042094652371810295623566830013938581230305552334453393216698711591388989879167220059087254295979139700452597719670813634597483044133082611764565522952268599776284444398350763646986992774614668944927056313962100290346024117880403407080612297302326163591658208878943994120098394649887085527903867176449896409019732771830799176820458105842481416596026837128221228134700992360875843789951931289934426106572714331678506974238507751242438490785383461105459822859583008717628352324743477875534693266338506950037722737301278991540342522877292738263541940117989856882791143660860123239525016681066168517610943381792931163819900533814304115283727957898147323965037440722549046762407758110708302124040807124097654778532860235443836778512023732525670697194697606586985879755051841460532182902263190924076216824476269424383797792073561792180109247351002169824712752581579308612507231413890685215095287735408914087939031201087169000786278175031392589019536199356750058498943389717666549032775843240074306680682132756264926756309850403762276991394392493233476633428354029082856132915142142870100398145175922654200709390448897435025567845543983062198815675528803608680596798921581281701275966581608296344860029942957263947702677825756925265175023673682054276157913698882132114242153462092910457900560673695246034225792560333084361825296680287917349308840988272202030809017761626843693426834991048134650918972800261846773277139144071927478761595608476390318957048099393871528706007734530681461734290921187870948979897486358299706166005607626635636346426527365860885492794964831476787967018900324304277759269283223284084832786727513581852143095757533776883494089531039918733659720661398433034069494916316830616199396343620627985571384285771166367967998143967576486859602071129193153412247872228189885836100691561861758353486910061202734085150085922739492945153015080262033144549808714692556956556611938958175676029040464979980215243466438977819917167906998045987353247192895425632899645629421740629212899101718218496601130811605712981137856936431693551278350097385720249408300412524146258120923432457050549057656333541694878314987953843337114412810727591942645850947328309332652841914825719406068146306907831750856705969321780936868806899798147774132177483110458162791599015917722894912065407567753496714985528735315677848096542745854993180707027799802289330002999713302482583005657017978831932335380288660160614089913610057749660153461266561564042589720259678305991865132742555455586016212850361312335492842882164037524438265778184163963503266819148613598095195176573172296459041157390066761445937719534969446727225001245387512038958757347297152500607634639145004446950775190872299598300482355621375980050956744945350438194457005554030260426596517385279401191112133279612403320389676505155214105718019427807314837482733092744962341001817060497078766875362607072856853822386436252988739388368601321642360261114394288792034101413926774842062264529040585400606037329891567380425543266417952664597596098555902442525591529111430664589921189476634571278718497551661325514001375201867624220850444522924004148443343380601038558495401486547562279892322732619017660542125476056316650103016222713954436943056350777499253257482690592809549144275802403638043903402038646216416378184245267513806721708763270622619695618919303497925854912581962457068295973950516708314578535202842915048541642519127299461606484733690749875424269057985179833249931169709804968100242554344302242085985258887396517980266972257599386096199389645224746515616689514586804691324559837494782656010929302302215746561473082186768590835219901842994427876697043236298429505222022714056833438642440060824725109811171377832901440309521750074072816103464136084307978403844089485190790779631030934483912099774347373825302574952483461326719964605713599097912281562855387883909248830394319013281288428417118062237332991357679839632529709981655902602600825165839542087141189147799424454267219304702881898714041163825605918192832637245515773597297049062728737848397860983438956671014016570891820659625459934064964106065092956464205608611833943702150686312814097833919148184557737683107267438967662523639868285889556588695596909697594768627006728278139879228830522814046809352406008564691378908898877423177991267247657246250883146448807310545919365800079402701452513235554692694823274661200432916233304657366393583010963971197636514132425385683360423380884148882008810401045889759327415728545350153593689972053044096606584714708154070223883533185820593054669960555118001518433936033436545841698507251920150020747355768271899102023251938824204254623989272431929679659683882446420950822071399653310869110990977374867161603624112591225166014809236217207599143345309293783697908692786839113997359608714034526465852957679414855798858402023414211888326191415638065848759531464474215749143936350929471415523403573803575512613153257766144428236693614689985473780177041200889854374710699426345397309605783069677053315724697354038033132819100332576052756034354357056717981161372657073486299612145474228982663558434248624701587570419682157151977497304346710219481347586390789155188826174214729240641461842358949870460673867464032383994306460727133840529721163434088742740773719426158983384645553611173352775137612392439690897526953800369093263540132730298770468822295117362332025785413359576705013170099005619168342330867684036590283357757256891910252464462474314568079650984562146866011144947002853469761688656529292553067696668162930487494629703886153618441744576920548023286520819613564920041286776785660170447407138640014622507783196895668131839737285720585213327788761846851055366506277594712536951577504523622357138446004986160892326859569689398214142434277026012005758887347426062024103716631147878349773357972230872374171041912654445675691437310676954388784286124806502832770656007918462560934616386677741387033986699561257016808286044737570150401481414255088394908446853746139455284968174679813379694796422556004730698601959227286438912681773785887936283203347279811441444637641163646120742237504332467786322134392985150136459325978018909321100147857956833776360089653237054938647399040506087287802535847177974242083308197407876156681824989334438884271020637537146485782945148262809721734579757670847011294602940899949631721074097677310304305548808967042897923259077236657784080173880542319471832474154440121944989362637171205322846791938933657924362554100865257734824983626344998609546827029396505983631188606488137389758504194028517582211442917768547443678988907606839346507537658901589842555132013470590837098114534210990430769794929687960824481785624869329019011151939424964129833976740668838459327614906347079998605162339938047718309802303750348096867326977438930507398673758420278075105299766867144308899195355223820723135148813365057100312866679959923316901510150962930706787210013209837944694638027948599767914599676308181236588520739229753355844116117882552747475120876978739361726560054173983125343467759974637897194242126030572812392770710212833662993515759097375968216117415251347098665280389273486779840915540524589634556265723263355178183874542319883207994553884179624510137316558171134304305898184486372863827213246833819541111775538176630485245073870292328896596431889767694989109087321295718813949561909043673228021033292909161039779641132190837164984131589170448250264185778162868707185801003463482900860591474672183936388199331705590804150973943900943858296399285007694098137303774017726554272446416555962692613864808372983979959412274320538693900468303634317801425276141949745206812093683487598307353961129809832960550146520343978073047682608996566849625832389375492091395493388415917228881046411142842384559409113395926538295000326295763984201798062975303524681644507177922811892446640090095714816655677237964887220813052884768983670897563812733609352806319771405202248756954247906725915649020490057636853664743400543785006473220355245038891887395295567524259645732746850489402387274789356431542975468976098188787973592007517076765611475280605609185114413726919490564994092019796689004880489175342076729485874792992677397128241690039917608406410241213336521507187525230043136124436507103079118830418210550828492508412193604806225326396704482337661416134815210143443905890865978187909890414903506376412067350043706807842534533117431511149252661521911261358894659803524239782999302181894167154412516876159628057812420604183596964681532547671394611234071943719822935410335191526310133490032457485477272626543121352274761985722009540303056100213854754127383109391534250787749688207198313071355729926888550350468929199969529376851737588071047239304461477231785274960036702032360171365460707706956248850600362702528952240947182874241543338973055226425014753872546223595271555690181278133951300172368175441749612001775542180234944737900034631815476369498897005255176735943259731074486340615297899159563913350675903902588302395006090827382799891277818813774535343609132249211703093349832506795096593362405068355719904867278903570465692575556859967798568753885824707666111284579245526906415894463769792861035295583845811266170284857711616262564425307251164969453492962030538444509888606759798557709694754774487049611949430177334401768718531067814372081566997628516608002016884319712440823263050032339357197000222916191733408692433986608700372255998077291075571546251121993869518970638624293423232583491459474489818060509427883183698632149226764800664270965882361314943961164558857076851313808099533846724237322605304805583277296214611591191778369048610323387789638114559759353081769519190874723222265470617873071792289793130727682488008490383027465988897043043617167911340120120898102959635012524611368142334843083566371253109785538407123959411720621186680429060879419141594367710471581305820978854290501232849314322130622361201566289198885951776983822253310108933753671564922103684863451388305624472484318734729457177764771871518971986341029682504086630562271136002961634499158246686460496376206032606043798953690238013066689250376452840530308157535630145225637943851551350735219549199556264438854983721374400780854308822756276728838021338427729752274566501747364524378167464546549036770093384908304634513961407628205492397446561157783674812393146476471711142396333593412359296776763219542666041585474531183363416491795888535394829533204537355258935253085689560249939488493741899221325315737137143626522878683223202412618151362101499898044783464322932450367189142867257944283896967302868379253652036504952822316453984348783051012639484346413263892575912914292333085513274167606643050804980434890655253690575043417761762904678088721747478464670031960503967146587615712872709129587759536890699236720126942730310155696533983429390135609606132645757814100139817732239232847453909260250945673919870414907209004829724544942134212933477197939665349051899104677751500162418327973933668903113354391462330823724557005556709538380964572439931310842463875944941118404014965764941445283033038695640870242360619945422314380370990836122599720754340960891413843779568299148833394198681036647752252798066480271334155729919921860050301576714367991905127552632375479159608171982513686912542369913999006154416083917310105775787967581325648263538259345203702424609176625908352184472823983426266045275151486631148305226814167889165605196336935072445948087936631231005186925074778503343387628087885019925150860126074872935073253503068594591941590128692095599139600178990073696773564162419053046064604699895131301927444704007005138047261350953379565390943637175398458724224080960465958185354504085102654032664393673511958673739014283254340117148044923530279885422796527816579974606881961719661965728673570319206288013732658240138223433081708638423198476244519924681521651325773395416657859624824200360579487644521059134319851655274547885768105730899603445731370258021245139142574668909671344879421337144504266807156091756795709107702959978191854512489137430011667159721783009575493911395902455852609505853649210202573716230775316863621890208334309857466612027812256856343196915437086444214289183210416723149264383517402637781791884026487303783227856075985721936100977443735237508566670718606134671123924915289993700585097520970603158242378194891778281346369836414567331171091928346489844754539923733846739005299221737209455904026399916650612317698875340852720474589175560014819275732060100218500711457572790149290951214175220431385926926452789908424087872488972665578000999395341335518378446064055226703177931230174191224212130669386458813644979315610527448487076141276342751168366030823894197799930596490990617602696991264607919265035262480831957247850042207805519626664750367088358258965993547589205543454088450077857913204851611379048302491658736545373841812964433178215260580353992435791031607988671605165784822320808346350215896161891019426701030720908266234543356653353466998350246654507970253037817808074554604962386875949708894104877844591118210603894855910400698474087196457255525832296391557934221039653751715487117018313407515976823908270010308142631335596258472483197319468504290097771140328703460985935583943217832721613643199571621904363766095222644011051919940880414181680883264543311024086357299631654897243474348998825631205770076208457957910300665334539613821102828158546085541694554792101812041806428130085096632541095451645430241041578000579484529532852758625452896561167280972548808326454303759146938104203409087398235253322803825841563853937801082379894315249135564415066682663153862709337960786198587805140959907758807054472346840943261894110850591415266984971212336596928590074571376892170601637995195389855151666841009824281573715520364165140224793866420027445712664060157296121264764063995532487458449413153897948007573233478137332937145140048940856777690828526014836700259063361923078803067112245075956942997439722995443910742913150509527851803879339890200392482096920366944485868305973675134286758260616595651793410982304895324088772873606153720423649817163965559701755950074055728660366523418076047950478979597967136278928156944121771890076046304564399779880805671859366649706048408942480994575649251232489665477363907197234272852720588097769860234884450187191274344327677148383111395662979644230593052019590802581604769530033604392722768910089576747729157930919913191393231821145202693695730789411855387888355850171555416658880597611840134310312378143102267486915350734063067750100945638421292583307302106981523979635011046274971770379911962168298231441627736326763075009652580368730831575152151361493262775054668646304698895459576404319510347860022694272883804061945271585943024745706766657158752929063256671407919295330407943616879029244000967518338621525058071478307078391532420746756075284144220781115132925676895284293473783670048267432846620563560662778130824279012955249246406910193948849722466903245801298174027158990861507435866543513733599055770960294387887723123912481169876387347841946366610526456157215667205289928135671459984752235031284874137831762959355372787272349735398641903509318366985377676603236083152668727717237341753485008497684120143150476055966037354024025439354082197220290041987468852892634697321755011228400380511128918212483023955036149828313603493098934558538977598838315628343170844950466049594499602263124109097487213827142469247372421845078704685583617534574113000664505885915606140525957694935553632482106965937690746726459543508332092247174528384889723632617843563984488814829480022255587114103961276484892177718787635747291481627030247166145108633077563633135415101220115715228372131602818229264997079995805997835710695691134724909029670762899424437927250103757808161224774872021055870341169803776970926143168625849488492394298529056101716488312106158319337236463060378967758737466990037367903165608096512459894078145322647837259281111401311147606467736351613020102712955575571938483943562453029279793029660028793940499549682863013729768918086429631061230010431171971092760159261296605243691070544320251851550866657703279580468272707481722277534116483281060105300365487754217416457306230073434521975328120794794332583679541761727658974144758856360314258943338889764984948858575266233788269348691441260791252663526687317084732037059796060203003006240857080415853353085295644833051471633505307243654292151667419242117882040369518259639714192569095717940577402776763146527140326656614499237541641693361472415987920250629649058709652897885369763954198794924888233999041328432516674554166132590987403065356015313618284702471519680892403573990021736374275682375549853496601862913371472087005179176653563235996874313383368200653079115441056078007115002068768020144501033674420077798970981162631208242578633051673589959018679990029919883302592837361934130634065634813720884101997497094318175362581861444443940310354290741205494449113941962168038506355565608643391362787849314725229966724539156269371549919327894113374686203207654509802972773317185597913935161924839048628066361935031395795858868753566485198595582845318731621057001031322859736513328527692537780029963924298880376573020557608834024664408783221087090521891263321369960590909651177286621876974009017070825372177321150859589391336966537589876915915730067135311076056092165912582646267127823549875666268311404711752190042856760868253678353783567564632255566386776084046981107906358058487233285363903613972173348255364310682494676044652359775360328613335544986891273184722078795717903391927574413803313991637267369271262698859276253628651236160194645369168236459153053478468924845796466801168573185259508097646463621868801690277657601900622915515346770281403974227860008484172132210407235179992844451000163151536933942469631972963182389771449415713792739939902713629177584444179570438771253396085884007514421621536598448753929347116516008717441561446994258382210965591771848408091060556717943045771457473938864056062567709135747400667520722005242745176869008085271714641060582977457412630243477563364660723338060876812030710873587306307234215039215445254655182745628710839871975112991380701896686531516729960576229917228664225775262890389180105586132229008213129663477926069279294553650705118489896489813720524500738826465401171447334302356784348080413955979583846616306952773697756477759561738864252180726582538863513723642971566158639014163214261210779045033237179506108595670322039978803538674253011660960526897503556832639067988945208457906513582092919712532785288261415480676140430223115726713442178793625313337780191098641009197346098444644217876396290752727110213725165493600889248135156750974475331718119448862693436674450622431270136101401294853061600105728296885165634023428912297879184527507143174236461438848167788135529572930167751901356008044717173833447141582725218737983614037353772961565985349863259222822630432149047373487237580675971581501144136526053446192899546525594118525028493881522525293732894417291059306893876320618874989188320234394522961622399461464769817830204652027124400616093567270640298618893572793311970303476636299310404238129581612915474018617048146757996048423899311705180900629462711789656927993487287390910215195623648619285827599380468001472805159781573293811451121857215677839264086713667370847710490132664210217033069130514652100590364141213474232034975732238217760747077928651324677580818234489316451305441266626063905062121717661247001532093461204310410124581192638828468307241910649802551735580113829739312501185982338742576081608154102895296796680546870422396623674171449084183793326190131639817633622302781365512838971152300960376071967324366242747230117789301326940473619352245563152816952829336130610627820541600779463103043804959794598619586616388958411402540592169891427331434140303817038742424063169843639309096793132880954287224310562795813654702439515520596380841015747331473639960548879441596528478582726855431714001737774356092682758801216997272392433086374667775376043696455264900187610021568032130303713054858377600099879181135733739373828213059216195848637816250987370216469020820884131485185403179542161862496388195669642828756869259983788331849695036267940735874155768094635056985106892570566868446297515621072686773899603411773068505151344128037507601932634756394012727455324852051264495170128550207600453501162331247582769947117971444586716875864142936623509937905886889458439438625674546753157796600836291779973106679195949141134736466677143498172771524742176744887495025545894911763244533078233421240843226300284206340825743339766269990356790426166206669226931047449270171160589567977414247430933927735655730827261326751419583471499512856468420244478249894812670345577283187087264311910799750894967582849430699125460915068522235775409488231859332287104575830705570672898614409188143666006693602787982436421920254045685619801526272594237262766157886032462369414364389525298634294288928673826470208574323665686109117965608511557138856431061368268811304043361074635285699877079517864154004314836079852052467761804707912253209746685655605596745949443798667489083356220069028134388010799701848859339582837202229574294406601295592336276287970091891148556296088889321352366894701491576937025792667005223121664036910416802872306731801627481723033849777694053631085326564607561256229868529413529963022994006488586811550624242692522369602919899680248567194509265338558422321032756327221254538475470040209651982982339918627026041521300355530660111395430529648829176821014329215134862591185533488208166972347137990887819934427171808309631602059542170702055629321830054601401306898792732361532183142688688206974983811639644276592192480099744461350767129136800916630407266077446258628875618887430362121169484731658149800259754100499333467718389856258318710215445703953044632961992456691975959389703641145352197316338349474865457442933047386408352812375951924740253808952901694059383698385364709043033581633286147078703126014515583976383734406335852634009573246101238234066429628169824581409494244588332935417427322666528231469347131264923181743806032325893061684024719376452014065385171828728955119209672090850117777139826511278232720913266031312407770924937953292470358609482798250146262208058428377431361198048705619108966976189614394700620221662754622294457362488272942080638918615941451945897895296325461385288745656465388212678353270489916198819561103318988060253660436834657600015787208002785263868390059220702836064721781231337022153765315413455236827865851486293322799227063495284167610821846243229711858170119585890136485268352382829143070762174450013039124173463834011969491780043628964077406597176650332513383192442132511886467441352417744511238507875717092053554560334362363009167034123814588965687724505656232074554611986383891376047596243580256195955191339544853339569332122612158525603825906499077282377904237824409376091711333322993754908895049219788359367728703299051949722062566652901463428804931263867153324516376003302289582117106389184138426011405158626726645157141369719424475231265822299222473232378477970787357801126816880036457623704542382364744798522304550704268036595213194896765981950531530181618434827362927004063944944972562449098876215264040189236527534517307726870390966537485456588574705580546881556834286542752419442284538362207175619517115577764256428583927867816100336277011686622665411037487038153997136604226981617743042514348382322462124375585041085682978574485732745378101406017650253086390795312194369201509876844243087034647123606425725951318248794792158250743746497111799641579993362790397413024024685964579336351389589164746393586185973627102329088107466251929045232062032042345685456776885532410684751151070986791932903010734521055327558886226364519969955517562138750552015406374998403367794004121095868289030922511975423453801593738654438490507680083368006831445746708192168688003588392985138245047339827267667320312769455438773298388987037543477623759927835420171666820600541895999914140702576615922151309052497927165300245596196389503361410789954565424000420014517320860470936234842101889849014616195909785815128116843976564416749174668782480802189053032176657520752409377310691767271966755634926467117918662403646563347089642621900230593572587053417375930244278636825722495968400267831841799320163295471973519629692302092348593410732218351006865770328245689583890515535752669074218374826444700333461030417444244040948198417350142229579671857425765765661823799353620210513340075159101769225780089887912722971948697413461818518240752205280363155956368464488580114981457022073152677837665284106852424928042209218725536435278275410968109550626018611228131744114954208831224657992233889943765116448581090820814123379920030840003932025779027028595981180966744807402574121521200366602796761095039099448292039403433329251314275538062618315898497568326972584819098121347927470697402599367205674542500289713139082142840895909523675439628960668073894648985673013221362391968715373347217434784638508933493377707508371134938620331322073720145120404700136696889549785391765492320031982410972751845804619968445043276115690573621709536835606586094721595946862087965145963550325503385349152125727283040708384185875880255760246830497427654475249534134955769821582919290286420520998131487942182831373292004731048182351283540706319330441541568180237660132799777944778789145012092586079849643980722918266443244771391879689135209802082128484492486116307787396071253817753994702584421041313748943608256811145212741901694454352510881235805257806286983031010029081963454497888036229459797239855096199417882103179550472536641042755264741427685545188756838960898983647880197711295051594024302378802866454275874867655758711586544408140027422830817141750469563965986499982766225472422059742446326925012293727825403362086050990077837836608345675706999327989959215308732069503338162024533812211559714355152895783686235575740783658428921893605431543294604616881570977619039298105203842712566228013198853818159340170031467863912252485844951272741197677222456226179391551954729221778784343381527305257041737135455989652641655579759218286546445275981914075948660189382955492809390182280745951092786310961281143895517082082275058508484700521609118225055267590966388744672741338845852689820202356794735643361942805385139163880520140022535497640368331928958937569524387439838905005245266996086041382632294987205724859400753601724099283688373361676661730811252353819026674355008989893028685239837805418953644903152976829696439288080580145571305812687879415089628772190489373988459697457421301427670677792839072838513533861585454961902640178165936012077247974663314975293917153088145030337792347954960560041420480109756674322066463619381472185646711472114894991173802118438450255622934840198869737509641726724464707974468515393261957154444152916200130398366255522070363724201040225987152554419298241201827245970573623121665660971545419544881621454472737295257266053385793753852328652712882983958867055855215599946792413089587128621201153479807231146800191973160487303395692676159388023002508465893654000057682837494850052517672030023144581839042051261189454441893690571479247932837289967385246356421429929106016891170446238921265903480069688942266702052075487783848986220824271528981413060402119871114974734756897412001638948861946800825011925411030805785938507470830080098672574246006351213501682033670782695442899898282274971875230889567368779570773585412905528306075089578579835709485264721114746150267685065856277382031185553032922558018060692348748658558096893631909281834596771533356873557460453338234559647312860065774030241141642319464416981994123809695734091522282535685936914901713647846051183981940694609029416725967427130886834217029192865886764221350618180711427641156852073878453887862129299357908622323762099869574898892964810845388482188423849864992348505102821203368103101633241800040603979255028481499290892849372112122937113910419402399443945006302939803646258303267279796874768244373862579909099023184619725525253522181967390002907996373724112261539252582400522456383547621622848006696919388963973156941364269996015054259072756499985841415907349478570061620956188530086865304005130154941122923770531003177800761674616502035742558931872615415585010780144257497900629428449556624081533730877087994247892603893514856482521873177026057914227857488782028878920916180214133473212626551616306958831907419073486670630999248768907704025371408289485508341930097990855481180191698059300007279389219279798733045338438804311351275854774053471385829845458702330524554190013352789529296686529875202498110308464593691495883741171668083361117552328300038790606395384617117655017139204689373698617169302131508702504819802642497926513079844490656237601023583353302480400019742496717920762377338064782434380506101097201781339542008340047218685403524858507226787189264067125613977810823903147087098833121752857453366594904124295384947658221082507885312469007647985420055318469024415247079898066587836376535267801646539436971912411799999475180715311971216124104948972340943654752808988223902856715802911193249527352316943861827320139159132824093719066390149830530420007049112502267227516580583505484066053873966025492979975498093749942793490574600225099385916611343341799569809116628447177744999061919614657266192340704048770236971933350812342153856230902263667492957988689479905036767326965887324110906842447379223221415733565042934131811492473429090091240929414016660644535033716753082992773253057064675301848506348649294558479150727210619281738313025748119565149665810695988288438194678374866772505643634772144128362783531033524720075003556517887898431531264901427152643111840675949672568243033934459688441314163364792560732621408307418651988702672048082151718514275964711483709311757734591936014990240322595088983812790156483659122465222072246644533414938575098490104013585496688212780661947575413572300042520398704302174473611763160559489762005756587005499690550892751855076669132798233540625076604457643149710332844830656701571969812030570758139743205372326445506855800017838324778963547014533319117517117474135508923984807940255243456908075860035408423377342441418536796619652101172295689901632059912603132393534016954752950874959621580545399590970822700483511109903315310720905663883850326285424714613375943374459116311905593209968191835013884416075603642398728271330882100294150713568571535290354791537138249254148915934966792833703119232667732487056455009061137817940980988396876523444665841075987334274223703031359901559058713094588363972683946889777009367903160290800846534039049322477066582135683400781972474288620253945156560243369383463036708954321136377535302479342008869738534333080793673727125932303183175222415886866006200271693388552086521872224481595412193032923343994222134926141452613018791765273106365145450725549373810671085941742688703948196919180233611478722478857344433226934906604091726058838581191014931059851450218383113342330617179135638988342505897562126737205803593243720705379687398438997315043723845571885867859914076119767845800827957119682666702536283408961114787908356666610634090308282604352186622835545417414185635150167540992361039925526657985804421706336483518669526633313088589303639741036163461075376282549264535486676264521311675402131335230233772815918999525907670237690551041017802498444046602502067789687560616815237310382267082313861707240827092177277914784797961463771531568039040308949020361607588477809384502312306291761570826953240321255678751597076248724018581034107096564175651947045849049790827326067270592169469359925501452163667468127800138489545919207087611255820922631583958696803090261562363820604645599008338568828699133954509238309946271252487118136720853926318657573038601704488910080382523975460482975907639041264066653240258734845710594273854048160240722031165591673677100441619567495823809191325518031331054471971654202113884326076215076170713537522268841530769571786209736124183001177992790698847206845646070084284194157441360656486812489343184897740980288290605900466939506421002216677297822533892500983072006690483621632927664138048517175673830892635346653109219333410724354626921062248329475832933512856213379245022092862941530493475535817127680075691536179982765139194840481103768296789672065125897251048427082964192239384758642013654322722164411906305155866339303078801087363631085068502789022050195112589976769005849118591610154066979612179251597949291463081309100338384907135779558784776326563412190555723759918613985802836865613017920393820271811497679070206175221965811631284734635854122417394037923727338533083065354080788496147673547121797414833272584066902941218811536874650602455311620651965008228549736736221470494187846300530057345175226417831368133536579207745813717966316394117631738283124480441224487469608388959944125800166469078379022895605753496606169567872431699869111330176199144466752555258498808262522508184567336522228526102414449796945241713244235476739339947338562889231478397451215188115655666449053158209092041416778073716032761065610112202888520781788304377485603867072993332725188383314317755351856749883829384225433011587928670719961352606551252439349060667492958663621760482810052114041280419723121720795424888450912693683999751276720661873422569102523510738372222726330700176045271004129123044565737218374195963118870087547535047506725968915912259125063868410636052599401027587709720916383786513825746683758842153077393329541043533689221652317140764093361660708779552649631733843711585211753355042532807115221471373694711836653955201001605227216787520020751972578381067129298418212783831839890785414332194710570283185130912528292633064863800592951213994576663580549234824967223882653156478458032713695628095523835033978662512693597070187089265461094148347444913742284465033676682828249055824035008496477763278409587836880528352655396058821697158959503530477249936237484453776363290424751899294022010280690038202217201299747057368947634575901311665528544832270950364231558591483792261987842085700683638118836072121094029258183105092972485762232121479246240262048678996741792359322637872243141161762140710744652000819792676544601957840553752060681294946151774658602499281323810636757565202271761632966416245528220621048126422984466900973009628554362604108718836125652341291543040719275758398730892112613723561807854631597799772826519778425240303061849240874053550921973468612965655018511878230455919439656774090072855351253654002466901001815333341623060563788979543347479911663227225638830606063860253595544378015786351921592371259882563977028208847818439569164137243685390417580599992299244035096990144878153829230886667774665925563172932556509964252984026430055220988167303564417043136560782210044835635454676141883697695454515463703429069625048351472164530211439426610891057610020825393621094631814277411544059505008491529689408668988585783212576220413398206862971471845228820380784518860992270560632239628651428950025022640530889719819892347884476596518604056667401539338457520832389226701365624442716435882716856398811832590888605653221613211503211531375792841839891795886018406417836044081744415296511411927623332349474917190157147286106665486511913163927817454409620388552679291911416652812478545155489138090934366238535222511346824806980258799628724001114453414757185748671878284753391026799329755489039575514620923561665148333625821098392057431444770215784251721323836368702009829850823090356001196542556466990494628110019828349097509637885096288564404568258836368088231849941809596802118088741991402786206379381923034025339397575818598603148770634336202623525651035300912315772319936110613015045506061470882290109258156802005629305601107426280860609579106233457183043551013818172074483623214503165175269215918535110264519949089994368648222833368870534883733366663640571316299174077077670703202727524972503450934650146214079951700102397059474441454109276207718131533717911322323185157568733339453312915929271525449677801179123317738864234624153859788829416499824988749824481854118493761552163078243342584823417572815579612476447809696983672698746200576143585315922917954531284396296256596763691164718844976463735885723164106429897336617703958888499961641489767584169999310410651019363708308416452171717969341404748364805501942436882798822809551851833280800186240689467759359604407211806280555056747829685452831460614100183109292738348842569902707039759337915038496733696569172039548316180401914245467580218386144756216118605019984999259570662829782338537123857421510058849015457256564516168964807867289340132538784959839928429308962086732300552043377002553640544819641942582326386408812882557364331980188081763820198277001892067206464826677002930109211648674881047789102463274392701513275228977477823119772089094249742808405317268982025669999459400917021036672873973983188377117140991989830330695668753486851265282378683460401111101759403304062459774730810988194434422785419784521561430350904557679238470149648231068046851911622704771336924978932447803820712953855508961367966577537450785068967724130942704734890961477270289017680604929950813797733744134632426745142796772694240128374991748144675395985029352813452298534950396024811395177503026841053792947626500568110853860798517495150417800337177822958905036039270875315263857240880540592024012781345334925847204945939348019755258268861273946134423109582878109418956791005948025841816836655031047224765246185034052380049783739511558208926387253016085585908410329023142558916551034677600144976523458404171601759320712141358749370810675713764071814738725748399340145059015838244002876353012515911500811257981469148735241042790603504994327424891149059769660203181650786000638772581453798118034783770278995625101642071503934707360129133263241369197518878393001710352492515210046128352404656884424308383320279072372532680470621388621555604120968433616775807774016631095104435816549113201356343369384754782390248653937678714908772360936570321875361833474146875378936500381675384945831264724603037000909781345355069296746202077138122620106174445905166275071736515405073589687191304748626183555540413844432457130878300300898281094962997455202860792171387274785506842576910326185081344790878191228003137477067210883427907487614038715213175617735470277153231962693787174188718736008264993981166578653301173703738017970711011916649336946485955679349568083856820625404003949114406190246557315375040698121209075025677300297105877226094413361961583663967285693567063295268648991494744734390761943010359960444009160884112017631695726141890249252015594857504245293988299642481702013434998879208984896687123658596387608602686691654548913208526714264560218836040750440036307770568331495576981426903155379163186469941519253858870247842465443710513077275813546079373316302094564694464220786262349913227634956119696185180496157230041429882072916359932042134808150072953532473153082976643904291048517202281807576629946845190075563044879266871155265153085667979649473240034097704858038189130400434080082689631147877720236587651991208502950367578118532004924388703680758117307634445603500274756625053807072042267446724177522586221957140940767244121376355242382742073143033984675760112816150482262160398941124310788202083400700123054721567664076113904253611114015403734476687183126313281545114960621973464099138583227424521027133819557038447364565570009528039839831931357920440713681144400460110754722863179322840464333400441038784500066278217681785826550161990847926603551990706330030033205472406849030528046224505731959800450629083600827708625255285349607783044770492288129113217085126760725785253473843340574119215284573233729287566360342940688377572826827516541326886217236522533147892694088637993653679581093042728654616553157817724792305226227529458843241081211169216428511374171976927262155732951995770432227250297922135704511892558390112664590911478791241778520651384732121974162198929337055770675345033110426145253619583520694593694772967413966378804735018896150289165361329522891756650794145547810608636672153552213474901703702039336199905976610826798825263776704286372002013554878471838174144932879006614843961207411591862178263468697900274298902900299897026267109164199949300148623940761578016011583050463751724444672108552650611775078867415843021689899678390697418140709615799771907752867522255316571109646241077261908011276344975609814972467454738355355991454423050534877545069958633917116113691906808818543387660940125849708445842929439256342753545061666339007660798666112466553075282925352439326577437230464422082091526292202699487064397923424065794393777433042867152644432446897721729988701546816570575729662764193187450154628567272118375623072988201035297953794787340967234475328548424420247665073841081377506683300339294886898765691918084201857639050671849690151132656655832561895239680483908528196630610822801171704586938891379141010567836279018648002004632549418952381553825355842016561823555589380944100694994486919099270545408582256952624217781768577622385888962924329674039062000865053371960527845617022568653956787354615870608451365773423720415125931942618579774844301837252367938715385854265070709514684421061980023683290934714401365444952394167519363787416694467518826279748313282607586736629781571474691704604988733861225361282327230346256304781484974908174006349400012819834121684989999275739532312666366962867195313944287641736159614223870811595914515907147040116342684262594226975220565677422279050057432946012994177941127371660360494186009469301004520717218888303971315915792051245119558148869127699553302272223614077739331581626429702338606611211539968456136789230443919448952358972638725516800644659865654652321288951422396986420338359024296800632207119037206210053277675546563537487281121803184271142285165639625333659283348136166502893432602716176531357532789178462568396326725062295499675740023189260212098114275241083087325469954860081962727213082900485169300719514480115128713681226177656977526729121005272274189915199428424615887103221813981558287797632473777503392739969538087779185144152650701471969085065245476343911983344989627964723568661124132330973999566316051672914063663835038782165286344018098732056020265331944773061420265660173101529459885041442786932113906556160369936157558648779874763221322261771089033705519090302913157103751016146547099070375981576414760512548224191008526799254290203361024813090076067064102543160551866895977545615329916929322913087825340439098153443002606157207900538558672929717241264244803095101360434095379816668979278978839375767468958693587696204764209360839072344666592476576889481376797139056787503634330724455109273691188647043783372472598918721983541851878831797424242607015707202312528250293815633181464511567920347313226337369584036859554250615638066212568955409630189299890122353457007420769062572330335187846761096152589882377043978364810007211567105836396362008660429480653604429174464813255386148464423235697797127046205846764263907149471773860134052306055380159615067241014264521624352555911169599250939876055020122152304932482280894315310573474711647346937127205205952859626921337077593790253449166923641581975210110991788785527311642207640577613722258819070938523978650699051902412790943765465678551595993379515009564431696573539367427060811503165596997034336498832988816104134707199717803343629760873089838554491222139839285273078542974937481204619670772905951775292181248030698189645370147119059823304943752751596332346506618440463951226190082213980392004385585923598200211154069659933347561296745810028391757863986693208003976703187522583592198460902457485045332914536645116273070349005177402978101004626450906372678946619623151801870514449377219885967529996425515139162396591169335504237176869861230774526518746759138099406712266621195034720539868007870263201833708090636652380092105632743455129214641134814582082995649091206139418014711027409593813561281964406698739961100292018609838254339874461972212628946751009141398284666967685328985269962710908523766327640242570333372277976485673099911676878619278409600922492827107230156713567912805455872986932302647723402702153016942784428852882925285380094581556008112958822593034855003203372693687708301300019808737030653068334323844265450437422271930035290000527953227501232657138139236269428776721864627052959391647840548272261833705802057378884177775938424622454780859532408452655454947801953107876906133945038271768692795884865672229305207790107225538555702050216643839477175890341818525992941176832983489102171769457034119754222644538407026157746801076989490599311102644505000756206380677210746259088322936136623192110417019432553594404061905344592295922871397351431855861674468166404744409786446966234489397492371984199374922667439358097923197031862815079267017649064378641468057766138804856312839490840321931146173170460857629648919086071474540880162462287261003047829743684248339367243415435951980691436860424395120424985364559297476542456670187372327327706964046828985861390750941764290931512414921026621578276430403186724613181893330302584718555814534744354981270900490586697115130250997796255979079091958478667319861268168407647475061619343219019845074936385785626207209440186100870076850557005571546519379392851846946563201127073540442283519880535236605712102131325749225081355991077772009082884683449776186928052307238776653737501872981656918006132361569783465688143247393552937143960151412740773760232842599738924532878734263755745355362351126451285196760603406876688766542589682220868109518849421448731595430061300162787896075423029809549777307468778608143059672147352922314615210358912274921064739214072598237643609041722334712477860243865301713277208778380012948007087339701931281725174194241738016322394325439807988537361301378815377589662638963722136935689912882325180663218973455723871704052752242721259419832494860225716854667116090415664353318223278896105449127406260058523679332499750663946105592264845637892299357494827104149179834760642108252600541881465505319777893147413033733704080668051416882668952695623032103994949823676745281809427653333143150359667576422611081438940376431967627126669542202044460311882606700840374230938646015517265840144932044489409498051042844564966303998890202455420069080935822272960706998819078807895619405448698613728711598568048640244394924174731572459833313698615462722460209033116103283273754207245105608851317698955035986945472648641251473083343561262698014123771442736847054887872134662514331934260084034368807996581581379437211581922409662890346295949416761872595419815349259042264203410628707442110425352990066420739874255104050837327564598536461721245776488875650149789770036897171277619932836417459789177183002092700699062397049241081405603583114555962628876712983910184712105736163359149838603796276733930855176643349710105763433467240604590068327480794891449246639912661470131680182099880382431627614156923398746449463896905557714716795102590736432351000822118221279473427182380785786947454937397680883381554675633130289153557323974120811016202951809272708390942247745339656132377561032400011752430239026785709717866289817022870274216894571533279800917595766455133680354260598805857380493703231942247870635968863127619720250182288121385300687921364105702247364171872117728427719559314717971760746559753645754739282270601094500339203769088376708284674403763661804182357612520091574427292968003967711866117308930042651349114737185559934110256177683067475104565231055944007865519500107711866448672216906109887136186757558612160633761768741144492758578427920921879520996697679574358561035023943861015309598248402592897477541597777264149089552363978149065003256413623020620526158710828513491958761917649189494218583735333722970887726519060163252905736317823756603021549791076372443926725840979224255102262086952779693281777772431698529078192390231884085655797743850643125018271783620402981010576256052439512305864271068180233524003346634373125672999189392188623580468466156725680591857346969490225902539244385337211792868049445310893148265952479514759727319983335114697179803893471921971132375500917443452121913559653439208981653410689895459158415696311086016684422866281792569455420188845465921224852774088663655031668027000364271100918209486475226701299386939268658291954783813526671089957411324795088353521712325203605430524447922905134171503852840982755151025363960027967418759119918417002011419059736994188323526578097585639671069133921391406804714710687442936642555107756241144881005215296111085859864217806559798157628025310454716236196652214126876972899014772926611346094845799249879300652774920986252228328489438174674499521815241820460769446124361319238972863753854842345523976413345527369665649908301322575284927848304194976739463547118566110099703645041772250279616986428966321760815629124732806433456624966466718788414469894847855415025849572157949495046302128028532282707184558766618073993006235054063772319399689384090766930711113350345097571853796196668236257053980465728165993157454885490835476139821401737937192262463415804518483292654735456096728966293512971960839789377629098023392480600397904499110172434677321491443916162417461255876295222866135893373143291325301628712695821968971529359770625781483898762796996032495296310970914141542043434602368246720165224906367264349246062039658947144687722124042979682569569799275100192346045517698962084397104392053275867442005287293828612469724135860628264127669568427230773456151063058770651960042033920742016919951381977738391798441986088610430703711762110920454409039324920037888604287733751259731708851728608179960057550315949506443672434584219001784286408526570627438767149098986685934278325489543530890902376665618179453739895837129387215623838593151307908730695858802357233715785216145106014107605216071466170240543016544361580267328710692046212193856073041781843803317503219150871010879547662437296474951539355174637188454529459728960730639411195068718857445144658904763471945808268624063499411359125984109718055273373063830118048568178555990987948875023018218345413350104786013537789575590101938772515164981732879269022453324305337036064843252737694774831975521817713611306736758375873757401285529585827199473592894484831160943389940041907428022675911595456908627483807132524421474923379414878829714617233938245606975984185142800323997452901617361915874069294330220458182068596947235324995736008689338550443495768074792100503327291500358923142636886437646309448595841713622389956757714021656486281481186269036692883871420048560520721629517733028619755979802267615375300833644821915245418747344874771155464808838412482555019053925552911487718913351766508025251870921887725045128027199270160502080951955035083317400194688069084047029273737698118658576195944937309227217250695147831476635658861417079681423624761112517623421837567031895725630929561822075738438043073407269418207159544959741169378273603167753879527597838096651133574897246008791087086330505260352965210523005771591390592104758262967356418806277760774225164734796264376858248642974681268932658042730401971276263275541878204282201280462074561709613015106253048724229499646843594385435292265281123608706232127473997463219168599137872767823622947456108112888634892140955632813999389620090143160047397803066314111351661748416708231342574907219666983658608732433666295421917525360395967322592226300035748333839855256723658075605790555325949759442134906578844122155261097534158782189061089773588634857764928935951000742134571746609397764698541508167166475056095488213185135052234423941403252169770529666068538996453560778199603725353479606248604113201462502409176087447030840676581372712463712764649027176906798284465539471862999463048333987894825828239635316960712373967092151297157202643379615910765506936463895543662140527773927975469005021576476704525830371867933753489281988448181600557593122900842047915850398099188629114998831670987201704296883562559786576557839197718085449622515411419345586445904877142009354178181583626386715307545360758590065590900249618374068828044023633007825047663881961239697276779876645346212831087986492396512198885028663233719681610843734482705681089597747769215179308142006319444483373689418103644270358312149462558109166228685952560473387895101184572598369026257226393193523414387148655604313932299551227738879215904849162360718541847017164332842699227813146408565805973932324865881982585629679635821436459120154890995981843932327918666316900467682423281851067614205756518456609972592557888074961461966131832311773238359309921406004313640027828661261629911896658307763122488974912903400580442688498855486754589407528707258112816797216516731591965702319724110658922683647774728084764386756310313967650582949768466825031156668124497978911430200033012077640313604695904296827484890955935812340350566780062895731372512409837063788232779683558934408132407330381159987116372808926721381586991246770478528160518835844796032568723459551987607676366372370062957542512598370948782326745534431552198778505332115251676445976734495534599756628361931080674603658611777749219934231982083541914040130752615420718792221475680909671963694355007729543931232315996992952298966650215288728145787770269179838577875610760436153285134195203861173675957482787625211990604720785006809691098910541571907087272263542918366095366369020898471021265801950561745185298520285611947453237144513768709654050276641760447485279401517165914642531397818347543800203384621592135697805253621497649960649846543873745896382561958799731038744889838048268836230781817862822277462142514311486020043365563754909755511981050040824569717555685247023104025028973907608661664129686936146822712747014075860023106315802173399211609394751506478160275516757754049515922251468427929088319366839608476538388390407848055229628777901638740591095343421288158408781834228785329951358962946757162690067375926522392884915108189322782471091123400800988649095329065679816748476605457003967601091350945777811260051042986389248707709360160222847169470399703360134088317153171725565541997677147190746882633194478129616081380196025680321126258284604219983891310394542956305382437794547354721831052476176466477473213142434170018600902894529721695509734542022330056719982450658053988606737863313264425842379407262992859786034869162590125178245188499288614373571191005191606906844959768574273175730758105151550080642356057684901811148335019923220794862350929214063793011204520571695935962227104008155727637648230589384726299166790728368936220876960430035693903931335618936310116845233462917680782113303451161198152086355244187250079050867862803763071813305274227353645269676341060675308641207015861252964159721555144850516504985988538067597676832827861810093611848040542989114667833384719318726072536792686225711988251960712280116957407279326608993655870297884157712278797882040368695010833543276703290434932065463339277940670462924656387930039263561873408218986487287021474772422008362131285425993428906689539855256497525555880842624168313554954601961423906006230742824051993041848467627603999074808436328140275205250720742191355822904445839508544757517596801194376649211529821264240249825976387716593002649323965891882498203611937876656048103606009218425096748163133979627216885173659468256527355427378141955563064354179484541011273620098902047576824619813027348569349387928124319395684660888218909549624698062758761514344301674831428222567455777606046211436833275249324318269007177835184735238686516135258363937307751742819582955740661833191533867624566297661503417070106198776635429522064349994187017501236354950909620478453345272911167151121890179118656282556282444091350877864822576949161743230674227597827211115933317468475467238978431629868561045813505358759861713521910746146640432448868079614490548374702095072671363168057906999003203785168222662987247176564051804963097481515645987460566439856644151267576171720659295315940349994814828066737729978254713672083738444574385572127881932117861580629996884251797814672033914087626878400059102019684553648590222230150994476808923907938829179582705736614869022807987441490529340662398028894043371763660164321495107214375969535817071465989476427261379124267186095330439355379997641560989563844516363734845280723642131493424878484090184172691645428584851519659717177131793473300382933521967624179740203305206101763795335297351968947080054700352671173797412534650348555165225663681361381361801664916472180614050199645751524351908864191203300930342086317932427219996404083890846051172035136523679255416863765025269113650619595800419304225166289355782268929281594500626998122221840491171180377632393027625488324767967360296629676751138890360061417751681998719418057243296533771292323487581605646509138791072450293402865368976292664436825536801373904456685423018481415149964275437144609700944022597768498960638797899812774209682575955306913319302848143437212623059210019755853565666642128095182592655351396229563147951808329854739107625974004104911578332233320865076695363921191546836652025418223640049145678138648674030075140403947546815121504546914973183381094396233307981452821570626265888676745646107562774141183370904683328616889106043887376596895265326937300951083695621792670486241208250400709769579675426488426373911202623159336537527305110826398118100045724981438622034404558636455263992188559476018772219169607025638442561056664558977444958871799544660870340916733663512374373227290647423877579993347102969362767912214890310734676666928913511065779126398881974571398579964653407740555838402510821280462275113296957072167662144405917339583775458259638064903363311294833781264559494546119570578074616188759619902968491347061352322365600739831786902814337252604975419760052819715162058715287146561565879187298896469143305800699634149391057234379118321250743422943249387374949505393201701251767312904683507282214502464021071610334534489415885365216831412131180325430733859708219947652623284843862910455206593649423344925384345340439192776916517718484627923044422864089915188520326895663435226582161133979184130752943725211151896131013134420543188184223842980241816277412511784900049225100994666560716351005654225291360754996227148452547028906062024266320513591767464360701702537973380009184577217802286096255385887576046434678494048383656664682214492744576949708145360332539405983671120012328892031689515432910448652842093047695598984285224127408286140062664096099233806374561109759196819370902831211038116598310936501094690206416213378877215980391831090402477389207728813358176305653689236320961657584343176988680313402111287272515871058343838981405084983677131410362947276668745141477015775157867962008584569184408077524098929927191364373371360698213728688905891371157883033509177744968929208970624111601595520274666797903325834731364668931452515946894469108181216194757800680141937248620221770514249393882485820424093812281463130967003884356691096494157611027887798668664916252951907700113524431173126202482027145559079521747437239984347604160761582638183877619408898176658520571742147827652664807307478520340354418314224246169125149480066015455572126426911156083367084417026682060588485534619111253859564468742400458606018924211006815220338814947096129529426057537382503181819083659129798439672400912789421704212151935900797339933321342152410946214200593937766685281138916229785770274498905493244392410266230599748363382849465634604251060131380491010613005299684619892937848139560842081598400001618761569925078839816414090990802171825744169810000287178743501945342624880061846197331125362101808407654987799514001371183653325380883364693138818398573679275946012699801267219720458695168020936144508354797865327847003923488210542038257626582009122569044755504961621761960692770578748811575084128078635586445494585743175701752249417631255636699345021423913624695270456819791972426294877712410913950687812448947524065885779414033051829490736711007786646744734116591006957001552572181186205327813501813889172156680787162694740808964495921728321854602216359506379069496180962921408428912614821428698494995060363284887826742203310454478906958385270181842701320457170018433831303779084899072288617529346236287454218429644632603008175608509952014601367268334294957485030288547990373177782653189549043633341963097735183583059504979989009060221595947979967965363656483081319347089072371431593547015749108495899083023690245975143514792423693888209881356700139616376033696817254791330544899333482567723650063363328165467243477715688258494117890948808992377203382808504507885996371344337645741738734762989300025684693597486326532427725588718331711776234177605810413853269525385077831523111367390527374275160434646551114834906608643681715296005815088146746639407765240186185111009502361047154288024612704790618092382246536072710850237973323690464325599824403497587747908409540843334167269674544387010913660182751650624537360187585912852963158915167334174381973535730755765443585550472330490280792117261466950284138777340338348235506276632250164109029922028033015567597806901669376365051845939757980247401209035233988298564703139662764544398567444009404527832895927866562572282183096631082835701450515764859129673712659391609027896614801152401618963621869183442196425731243437261844721766887868254438446025622741755217880890025111999621028095819781862897225017503915981615240440673864279931323211076545477957430776728313179101394939814706465242342635450857504094494942464706690764153386990582158180383485447251792014454278458444199375608902111797990505388628669147538458912627165071930995373340406711491421872465284293544522818368350876578859988187815481291209920972527228966445586491682785829163481221867351970093360345105322348034031210381949775242903153209314262851422227719143684726768756987338765922254519251091950203955633424198639729910983135514790098099883543937249581633924918230707833711976224697456517841198163269167521275635105819853629971173797036179414340723652577037224768076977281704145162921932820175352742791895574724085254570074260833044980507127014971672241263741475587776472801348925616042945113125174915075056012182377786468782062653769798991970362793303796265374844812041196717009029710268573438947083515311537354092866469693561141087108631046228916011389932737225178583670715004467575789157494715252958749569527382556588792993075475043487540076043228150020984741412422522193368259740605493276643694872956096695978619860714983063922816221074248905940025315236161360687356113186214999541627165799877088838495638231379077279546549999831364084950631062283448177813849016796903531799932596435069094637332427177775765120216617964685917684869409889209329998060953232965032123992209033370417117565678419270500093640007605897644945334241685364556101229439919831103559330971505631653300221883844777033108370544196455195369286384325773168618093167648353987053790710472361399981506324670287384037423389963896856976533990123887246953702426488477723817428523648997511295860796759653275263191333218107891079967598043170071917645487255085985867581099405718982946175077002000119533351172818452433401517835661796765018481357287086566265284714968917277320717723739581158807449443226876089305632086734112616773752276187402038500686136795754560175350839760468629737884104744742295646222951613008101548186302254648599591218545158118860308274363730685969218839667324019455280846720263795748384147887277942529240700017910548582309397473994326860443275665213009165321673766940628071241955391202044532362574956182274099206487808438090944600344141198658071959579963300139068997469351280271130246110994746111897298009334321097427231467554355528225902675331285356353591533344366597626592960596599024826830486961591745719411280708854395909686651123645584732524468927555145811476808652139827786679940562426231600088124207375528246032831621551192074182686626072744693739414569888024585044059941706678171281470544149473875521725864677532997806218410873864420918016658834636761606098971247657105662883860577076765995285269818535867762700018909823154511951533701626092945195101951648194824311446565500742453326172382429303894393365032471850653304915710848891923502221199034052349490038260122626555070581642251092024134434497066268571427203698193578627307097288197771786271625322009659136468658668620974389152495951955269989867257545428151650483745041984218222730113994529974258485680320257749092666814631091624665829852398828319744280786813228157119826609449008764036166811506409422738998623137606489133543520257321458654822417158112794422372987099938837480148820641369676510532212988606554268507708475622401521593614770153260298944069956436852293382239260886077827125775374202491683471891739642104543025904807297678180633178331885551487512296140814861817589498792431688484579393776607935249222076938388407951014060185476305668577519924895542510956514647773772421565906590806304663163108932974838398138989912115121964898007506465910318619027419322996619298674564831319861878941019240635244291553557769817966229969686140340033878207663292960786773262867514723203676708793900272248840893275238430720460106391429204190281871046587650710304569042538092169732941761215911081966011172542403747610247364322577083567076907585900335232273650213025105960616456334078508373332499582474596056133523273814326333235757870181049399072405508438891158921676032108144121904551424642590378665454666924197221550856321808440548854840782196832514100845116801555877285182950077577251924017950940550429960884649285507004276995568750518813159391941269121762714028201631764139178717146746906861698052545426459297115629540920770361705107294554462988377624043794223352857668727145669027736016270987729197477266888374919777851756717726717412108927413801784604663321572036614802056900886821977450240572370104720606807035075308204994197221882012088710652138687649342554363214824235435274974944934805574146090530719510124164115322087371044189586552488633059719420843282709672360393460365605251448378127106456627485870283228652683176152458231947298115887988381239764596608765492527783930892164922518905798813807798286799461566480400812888231595919631277893043864647048631922872933055372001285819427888377759357349356567440186881440966349330024230830861530745461936186485287509465212547708680448078531784958165389367253347752982143858643022933053129778612740913021567153318841814064671512510610288023145734771122499128470279942545146330057113460173469833981904840319366039442939224088381299028373092358256160754525398720065034480110494855196420242271026996310574016419622798438995868868381604224226917280875859892886050958588642238155669558060288352252984374291018473682446400289001877076556169799518961815045852004601441307000384061193295443064732055703499268072510704211897533560931666912565014648037758091342810495543709880155058202110563702583114174780538333093672035357886976459106049078992012012039882388730816467738309533340727677083915752082747540515465569977242358689803967489854510867420087621679701081872243000934462105375046465865763011188329590628461367643360966525973872720572635389951177000840668755657565752938701178906721614256115645859793886670514856398373480087768009024547525041313682960522967253448523595318731244989512068738445107763447503711587746546920936054256731990771646769786250244570851794418655717998088298313871259683914218766865280966899911197045910845536138590843066118413998651416322887365933575442120880182306176757809429999084386895709934286195878403298639030908335631536182295289822306485536337042354602730661532371984957000984220241656693386147783835859205594674292760101598954813551654865234084044741603197931471028138125224478563938176018959098931896134066865143560759419440642258174750306902765964028025827527698803815255974296701401632527629710542968838323440967644904562299176319250984584007904139200014692261400918057726555774051266343510714482537721308429684512183219747369617334619856240643498959495872374341741503515393367449380127274426215007591709473005274585519669497920201909515955108708288017280576846686245268625609011341270330648141785280432273246660593700394470980627178663276376964956108850317455240467817419731688825309253912186730619327644785052147163896253688318738824509679237408113453903937624288405428168647289893510639423196399601646497748899182013253424412353413034494848323657255081951705882149911399426506579772293880898673378572564271370950709074262997307392299053470714700248193191085869497022736171746236777377368575867124035965222017193448956608026703920000734199713213164018316169273073448427023593954650602212239914929957627663221942862445881441108693420221550449972128029951897392037944690334175966213783990862972506769367226379050561620367876102992719381513386636884167078735696004885194947354914340545166092464693289562177640510656764733166304957446625324023222334603821839956938840542862343180195351888586111916294845872424492449103163706021406968809046124092045894265438406793633412644551709598504786743061689112481004247239209736968513232314987456662964012937648820751910533483619573782355108435032572134091051302629138985532352767766488046379079697724285980149961649082431157093431624821934153067321011876384121982800265772621785930740205157726636569309113997873611110615772194382676678234402648933734755202111950269195913141977154587868255455522034383107892735093967917247023083118184859766503827538310249975355080793703388936230183795817622976231887927314927584996084793373457568574987147895065641346766963898380712455782665403211643852677320448167011016585804719587051969686244090204539787640669007403924364985129197760977126360909479040902739652783553278029515310148858282876720639610641155158977490939838003526083484154360714176979275222284144920776417173530969899267075840628395625946978133388967877741030306073184818563690989657233896856208526631102043684826405760230767026796326659856807216876361655623146285865264759735503636715781560633627838244806519040924678319024427763146812619916315028341019180611243881614065945035588787175948019787887166968193894676934657844625462360394928477875513610721219381962648842478068886161076388371532382612030832920745036220181661705355063563399899218837333828202260502419720716082394778967567800358620943685037413701369730586218462659003758365314016815085003184279990496059324533651066904651403897568605042503421746016040322205613072264821830522964689879326048265542036162791851086415497939210020059808058655458749327946136054803421883793060249724784107941818945672629276563725076900510976542901890006901887009475941428882984799661070250223879044608963996240860213883016264257909314988457896244065411607020929554274452300170985217249105626281406732638547710384619856438508294266857996969431607815914829943478257680426246232503768012353716280718922738129290336453279040874324107186329990479145784648887540063658733002504420159205761940990630086679000844810935133131173538262342155078432093209940453169044883978633992462583505167746871335692087401533801193881760345913144604965246078413414699767039799278625074379602582726048436812423980504557358047496907907735422303066640097306401537554444516369335261186851706219740975089418577717792089026887457978544334574953296254856676653792986016160171214839584927266172949115624042387664424353183659395498712252333235731422860954022773318639661702917695815183907651100414859484431093316043976141216402080273007175595979773317180067547720487561712979601599057713315093318657610245506568229707746342491039864957539059015145566248644030958280726160695063306542324476342594011511673664123827633849288462469467446016564323787142724117220247509678772376433350517486392054378700794782280642990168217419173449535018826368549954697946832197710579923047652357433260837885407979285144436333526969292637607759744700650985947875092719096830294601205805765709463528701757448341974612436862257596158303819393643775288927101067370232274516388053493231823324900580206034969712484675136121182618321853523631729631360344092450479751588636389306071573633520158630772383407470635970030023899500758910512577451095819026837396424957162964233172791811309160988491850822485886921141880796490503923014130021322659277831972373655740487808907130230833872605589735604203703729954704944646900024459475463385548313675786923087885235626354481984099128462935975662295376468856099768241384863485784964990060974627064734971302586862444609660509649665954500714221812863515191085745376450117955215883091112411009902640354230034687654511447926725433410420034494241081638031328817825332597430060959488684599575066679839413158889123960515046229963667446132391938160694788975507305445797510383516055934154510470060085482176668065995280818463484196362399467532730710709327450414207479289657415582377830946272941815236122873100008601164827796800226992876389453964540648368447047843686676226866874282361954608630676233927176930179049230506461314631057399901806563468985118319211245776447375482631401445431700239764103290927453741936614380910989386803801445386840308065951750118747358665673762929455277729036193142092171055950061561928343078732699357185046768387076707884923331340463087721635780047220785202245156233324656553392318402439171524352505976042825436881156125878970841294201615746716194597573394647310190254090771417601676350666733888732535862794011796727885280162340399413889492930301510835456915288515879423983860968671935776450383832612227756005939833183756231185070740413570881988239384810003679357021353298726783280731377158509641949961702197735928373507172496102499427602286174438931596248905770688238165720853059321478998342703132492966638804015494842092184393616403526637969554254737186953484989537035694880453473636513937705155066945915159839346731709616913128310132687454338429523453341103573534576705171173877031395307237320461376699247582098027881723011966448837230142032651597427653950313997274555535756561085546985192565892058029957552277562213649633405195940365702838537831056713743411998593987346323958288625841156177409236447295727228388839644623149668852036911684047943951543664672179731783461886238062110552390213189024330217939570185537009252007791040268969564730213447343478314798245348528410212853070300861712051162831975501483338622912047163328030457484993005514463174633485331452980196615119608516333440605829461351156771644458626992898810565188283118821856650584318180334646420915529872358657448687806921430741128822215797904489150616877116902330916828764748930893082356767601681068734191691817039585791019444913677639842628068580822237461735410395795269253608165744287894436644026771297956205725691099977264858437549119337476371365158284178940568797125964967971642249151529107690726894299100725582921580060617244746364488589989273506543191612659258633881779457109168044071387253873926135767026004369003359054756322914814919675397260771649133409984269339134008904416504442125147925089153136180430063544576569879359018211937473255332633138249501930177893588613473344186156