1.60943791243410037460075933322618763952560135426851772191264789147417898770765776463013387809317961079996630302171556289972400522932467619963361661746370572755217963749718324565349285620234152505727015519360087977738972568819354071276615473122180952794852129282135805972256767228528724046158944817836467132867399842463775959318942384393435345105097505445419474050136598708786738321313057297204065948538383872366275387654556271816151165993091524320736491167786390067587258577876639158383682395042548795623948403100198269711749099374149848095762101691101437886240335432151272312573458846155978729198088657068402006659984447269997321768118651760122020297840810901964752669976506892065897891338157171620722777455977053432038778749682937536113380094676404833028500217477487970800714346561635989704125890133764152401700588859873494848778797105431417832020145306209061578879067159812516749904143417212203694470009268559375978549211896178643287587684832205835596199679131669650932338853158539898237098543146311007588294814475314896178911220148595518518368243798628380668942003786202301607197949615213758199640220335606409727284156381544998003019657346802326786239683225099091009641680999705575316720682615096152220605796683304425167308014378909216055068000803262319499463241476615174477406163623043465789896566101224551825980286966011640512920144258020079446747358863176325743436902941503873265803448006253200201177828605327552047501919332132701457586526261399058791660517246490022006872934154461681857004819654405854690522067457425347467512412269628744080817520731068798916788050333059079627100902155331844827511281894557007825517828121623902433343399822635121694773663131235177582351843261689351554549267357367389169879740184473743860584109079340897074426174633972186976991828676162194338066238892899152344014992985143570748060188382017290338416236856427421572289236270287517426794559457053845966027407165540790275978627367753394968548699971669202336142327082225479702670595413220303207143125343535367510480722609209522138503275224548786579980198314015941596376767739594122989473400086516368722242717353308473057778984394119685685525925279844518389707570110624998293533510717707910804835007290891374814180024437276082319885716007546960644426355141900724136843920386513838461559536765546793270075072146726051138179377050015663611419041006965255876065481217511556597140548221622869995777095227998481813746407984306689698105170179292684573289167684917488198836426562626824330822329266257984723118274763016156763759881699317588499615197000597451615650899544077272576859526890918782311735627116332116628929706164476626449005477753271757501415671710665413275759154386800140001051801531160078074523370627303471875744179270540580282470603551085370557414958418677234661359336499824025217586305099532327767748560803801690023204315097030853518517744894552562638928853328829174269651441181322807532810227686848397502281599755769268274104776743334442568642305274067175781278391858444008748652572125152932709560247650286533574130284678049757655864984653386909181712990489958413959053841316740165548636385529763528130326583069458291908036550251369567522027379552734994080022593305552472588860067470223925899779768525716848959549927811826521749018641593246899802793511358196891776202032492795948315096565530011426939353410845523367896806115854370268230592336085703502497221775870765224024291324501331742608237375218718932346517035776593861870787677353552211763336523265700809921819144277123193281610508475235891977433196389048704192652648123725794804337246478966278560665753661384172614263249601336345680367879813514441006006917342790862221158319583882429889894341373363433941589568895312195027314932758643698873082432039632472617259341721031328789090216234020698408496442226751621911192904337962778201304778016390179258997700834275598474294768396136851466984934327255139577042256208201015475886205388784435261969623279965309585219597661199962966703599650623202204120351303841716823550763688675271582954614275238409556833991741909248698922941687288264161838620315388322700118383547716353905008243944187367649257916891574874444315767388009094694212392040131364369361927628522989238739886248279957764817681536427418068341535372603470070295004089766082937635693404893749810105983909148787427831060063915475072684597054209690653311056580632738018364759884089254256733910080262705820070778726479227568225619025620568691564815613998552707678541647505362890314535832807811105717294902143594502819194697658544327951222975932253259056394135507983202147208711006483010070877316399021596597678226356416655005990911668591970332011377240010136955765664990227822182562257273504761208798106007584583727489220164240584677182880177765621925247734055251369553186208949208706342883193223397428061815200414561877772426656885838840051106782230974141353325141856061971703262049060517137394535583177267991645153555636607371614907778183110035358416691076786850737180799522369188378537346493864769561415093974179637034287715107279216068657347062895851626678191350496410235328712722682781874793591066857908061138360914748208397211893286075520378854444059937402316625732083181370638102032828114234748888714503644248459781430661842362695777724647905701801855374889878835882812480969743655478828824205068773994563336851734614810547048879701134743564823865378002810747967800349270569637565083366894033508262691692009109180442029245440181214783513135824490835146236928666950772073505128015062382311134847549802244767388163867608540033237660529188217874313416142835829324372902019803112494910092316855132547184442902428031230088351050855887430897194672944136502282564717390279777765204299582948809577229862991236450632690390916324270358400919976490891155697753702823258065438710246014620912364778981301919182542790128769937695931988464056106903317668855601319495665597247166510958840112833654155449746969765383662367368381492072391062393797060309400751284938139760605694986496048556735989484550898033182802691655189067520540077444615230982718031727538105129330203642387251492203742529625651289925300310036380022709139082756227192046236503679193325875475816076784513640246291043739086097771950624947105482516964455990436743668687450515727418476102138426995349458889786794551137968806651214905226122119408813574300180152603538364920850225942103182371134040525334248494938207639450465298969343559182314419210048563907684645863043116724845420425121834772369394290911285730336717081575421728684501854501552593699354710429919255891813008610080095513777584342809909686690250224267778536353682091238632907814519633803945135082515797054755402991576639801861116170892683212727910079427942234551102888166359825894314165644471135342071297305528785857099857223709631127958870569727678612633745684251331014837021940508959366546787432938502166048029826772929131508212070580509205547731067339975496466647124447258615142601646329803922865924970295049414031646481594231785659999151455781951341408548053063653238815862010948823159139641092197339509059393397242323597290587792974149984649629442519077586279913392668400322505336284875852900984654391682071273864235720032674874279890975431591159727012117150384448348974159181272264591113841088770969132638177698049416087173885596976839111491393437503902952997793016316210228578608986238676875797430821958683253497940992379123723488729777352513810528324523620482436430532277847325315581903165712190232446346542864737531876191364165766451237326837948726019371915750638072329859159142062326837516077527489175465286717441954302188945265601099059011906716104546040030674840764365766761681257697133071782481112998982056013489058628065273558217458663728734387608192429892839304273215756347289442789306644145932869203849763766503824928850229467065526918205398410408717981055771388908010304777233883171550031262001337012144102884987564147418924195411172795413796071931241289043422060480287275057044001314686172049197075007336617996380214685171627511112724213256962773054921522629552735738573919231579498120681198403183615634945002924992967905104170417351120177153096858097557200863697481856694645496187277363333431055803761015489316629101672235824981032238271724106627500709743284933019246302197401440103048708317119394060723015370629418547390096229017804163669041747346442194656957002828028407335267287672085198680344597707461993759945176094692118657403947300169715190116773265226951830537420012501911074358228544177686258109058171907441760500032570171579553380465135546923058012499496141591918077338250577487708887730501701493742698210427234385760544972928776583388922771271140926331063419827769696532258921810402363409708111647650614420800468496101768686679579174629017026616970543804090126270141322394749550254830752681209551916373080815835092373582221970773418717707857399448025771607053332614333307874188184445012623608657824623356250066861546668364366854393077449858446809958725640078171263480414842979854535054451765797727190160545053426093983327806775020292243974950444096491981819757651397184362175537637049665550696797337805956094607852778311927221673531738351575748574827233718983335229486977125530905562331964478030937315907627866872764723832346634090439686667440591327696416262456456397246482795387736867529989189106923612886332580568219170064491367598714517093112473056978581683070219039054443073271136682116700380420194973468442337060336188459081721135308127186910524864543393429986142001707679118894218729839342188954840200925093886419410803663126118445272372909721086545444877035729919316758161148778300035936016974071935472344134187289198893864417719830694966850507765683712596001717770244764330203678060509436267440185100531072100281428405374385333164963581625520536722317478426973311127631548780806955853473101469813717035371429910078390080895609514131877300678757941133217611758139864452459973076505191102068422542022417484975620533041266754639801524101824890278846332482345891536070893725451928318155744429546614782461631509042699362474269863808170905347881369475980655961247860598246020881348770095340358218327786996620558893296750357534482385123337908770890381541324529848157745853844577412687552806897928442305206818765464234223462775689875316608099891630318648626643340189436397345345728037488894902613091610749658717415706006644717955680332120192223292639943345274745833548751980719701985535187134884111486733035487622415293719014703660132192688970991138027223197022171399878111657114843665455818747724111226768337003624217236571250849743803989407250639851352998117089010880820360494763184566323401634729705055157998618505519516902766489007695616715147388178544304783177030049975726591299587854282573626631881539824104889477087884814777750177978283474441861258159584477657712192694114436105472157770515484881905755529629749271268509641394392185121709117789967373976659858266340908453018778045187886732426474373073567979480318421316732879487524732418183585565718646445683566965573569010951042790635695872190898960570249257563835484831948381585291508832049210755126819737903225723642903447603282813316743637583919528980357442896267007026663532905802339780830364971012839650387520833831128792031007788563152336830088481094870773178743220266770863427710775021073016611783209978549299652649752918061114683979562109865476426354843660315565012047693822669168983289017209361675468001121887966848389535592712437934515263774914440403027738442088270649729992814042696152424985022617669229472382444485325669015070994910951961127635141196567533326430496012113414945535889014758321261592187845081719382737651666795203959608529380041489711474922108578168040820754628813060882587744343378926542212114993873512616752736383934401781243823592241422081329150618898120415712002560174988662802974876395729315580476615445782067237934732475832693075254128749335199149406885271833116766976185157773895607104663456488168464579295003027752726981653856259143135938893930171439718378268595789868444028387886918441756294283017557283108630607528139901829576112553963341191164877695895003529836755828560907181907156161986375872885468919446960768221228221270131830362844870217094116028559710149991836050338248379828745133414671209343291015055536217584931279910930851569790625681332053190793409505243739090574281719086102315064973160699622805384947450640387202797838011860902823762766222726148408669487295527917708376733532642761866074805924089123855827956556021127071273211997853003383033402519101319393585863243410835385308779158152585754375605596667506337642805517229301733422737644060119108519075448826420246609606230972479481145237094959658015747747364237508344871554907710504705138471358986689000210770279135905320260912571048772064960832109151115054616914925068025023529982046363929188656340416368553398735821529196698390592476801257725593802019479662050835012379671258922841942715179270131682333614036100694955718417861401598419481532915688552260916238106614859354660463226036426609149173585860311679782345174533357536385979794898049912908910743721362719349741797364372294147266844648373358705283799838205211365738751321258997191514696387204271977950792709992108536446628233946317373887572885902366303171715461756575381646352748471045146056988870111068595626903142207833922126581368924810740719330541260421816400709345557244222872027998902139613438379976884399211465874110157594081728922356316820517952370210155890737458064147945089020608139664167878192260333748586508777694648845042553853656635757073723452021347305610268593083776984597583241613081512986329822838738178771205335150353837804173725529549658886327587616912070975475875670193066393118963776552624056710680750417286621460885507706342526686078837388545407497358458718321884146749016815247179098280334496948766504184545790392118508454742897352768816102584963416943364181759355449304923710045356592927854442350596802235386661820299952356047299356309414235838266243752269722661823946150811850031095497071535610138421219868421375318482015740112180649533129943432588692244547130824139680826912797420127124481324443614547348635220092416243093403360216287125528231764219238441052578287541565458132980134192607779022355621811921011526597967132374253661312630794310325877658398075669155843966880779843920482599437081722972493403191110640828722853776509991277218386376906781343933471806937553196207397568240601519070191275175116407808717679503199827947503866360173878947395706263912508813641470048894830481660173761308053007426308119148844554073789833945748971009621760356783740685098338548011126539469716425293137802479822107438191025693283008214804696645010890673473242824780310615748249719326392102324616923362253251328918521895613304897038292011430962939642831314885099761519398602781592856554022603674426731546230357039206734969226923790093274766369602368206051009332903600324970813453073259801739202125861650039854726421485438677414052050590519825393741152744709549718537770383590824809256315930772854608511007177456213543767232701492848277923655126686951350082222362620060337516348039590571264062404977667694106192115548788275052101229020813441546140720163472989886453989171972916036722394277496891834375171695385884847882402154447136811156807385542758976411497883612486820861482205452955109382678083028211924570051901854826863505550935873573615899918657949918943585294697215661517247071118187840147505716887421072091426609445245457604652498242582238668474512586981197255433146943956342851168437012393944797541073048371540801126838775204741062315569084607056216514286165945936766758535170181241914317346569824475613617084589248270965769458561042890229636819465040829032680980814540971392548331040541333558162207156249227472229696438260404373216552955211589592919842334225354745847001138166698293499827918423767507205261538313418964242469678642517132596545486357815353812364633643962955789651415163568131894500177322024137056848805776283759544993594469255453239234493703431974416837520863779779125226988217153581660930136999707072064727741315512026430006212229632688011135894465400372597155434840654625476279031558977846965638994486824544052902267402925974366711408454003116282818214878383352634420359174761584411020370191590020841801486229236157566875006875229030389916561013054419902809272309864369996137936553769295740487452247236005614434873601396712979421916846016492931354179866800186892537259553137318205181147278126043009863486408265478430323806914382312898382622352473919258150624274949984115174215456297335306233025934855985175047390667826528070145111878558828360635916093453713706490771996359508101968319976736683885968090772096440073573203547391124616570258538898185606361549271669875141724562638980276100367262162423983126650032888854775186797258395888137485986224667026480579066069395050612110647933003025885375183922275611476005725147743026421006556592927815965530207079349639677608784892440783093516871823435383901709377613991711998961644943211335870166664247010286591365830927029682906690203814555073762771671823374276288379910034159785653574301833685417162895669526252971787576286299575168559379733746915108223470176573370258338904148337664617977411453594532576848764606257531157577437064012469877929026535018736789528482521149539147777540515810070508684691557063664657054444377399382634682429741746098833741553303721093749921832766419477154681974733619306800592038571334898659184372612289288708986925944728665388838063451246882140925532722336946137810457182432045546543974091846716946917682980475138640251634208522233599181723950721733733902589879002950878386667567210547154911990683718625343632444832295765607928332857223451739537985206338838577432128376664162562713493220501478830558447190746049325575178444809788029319194792409396530863904143544078091293563591241334181094096828069750093715013739971153085955031790184781108031891944608261498988542830920586477662602489003453080002632935921327397559114825874175315063369766829609922586677574671266239974148557328216312272000792330174767895145105019341878293890010278217940563368682237145569599003150942227713957091977933679326939912672659373620569192396876782335411710559232902992484921484742966737593785330600691969924741159861595900950860286345340573603692878446262822228804369807327908855206227768699626655869391717599388445773182034436700813795845215881694000634101736628189864648418176756959279193859567623276905996977711628873179562747201077586593797433025102582062934194167620485681221287394768205670310796743756973119879770670549398183393821961451601675882359731300964095803041486419567128220870715156287060734644344948996290194336790834999519534885847990643692525294241142057290620800139116258467841988575922641447941538396448674171015809710960763687702890802787086565058262063882629244887162805882444257809816890930556074064027109835290626594762588214101114652218356260005899792724340561569475444611013213927270810845443013112085183685513352515923877422898044111576079795951197280653344933234816682991683819602216675336504768522394819770711682451556815773757283894525928487201945763057861753590054611106713851369626394356125369943386303306086781877574258739767984055592725238371038275076878108860455537681049331893899361072893898739437212133306853464084329873645927149918474646067030229514132893299658943505920203695260131450122656924447640351833694945422466861380560375904155909767681958500437642651246329036718885063242679897918581020810594304758729235971531177077547638316699927162477875164997702781195936801944557774487549441994877982661642836870783440870737537964075622803491949575128080662159054768387224484395971537849578590811633019310402716361733335441477263681724811435239819448030222252015574887411135016439403054310198234853180254420446751659446541237019235566229149960519822457142892686384585322489909355744313190820002185679711199193742266272259604309038828954206897474565063628483463683532618899565775854941097228926678684473659489029955357549589693861472379735469271558028922323461563433486373979092611626153656024460236786058688339289450910812694715125635627820275530266119805727900024916948635099461594757429654179255943846837908535803496243169551830440795840634833503124790371006765564736755289138874270446632184873598437907599027976012754616755231997731368921033694314667860948443054121756388831079118589310518953827177250393410378565827878746196960935214739849299065369374293572284707035124524908566790016414856060631031655736662047966999231431796327249215903690113217991231546886956199426611311098777594929595839885264579930543219411125460171194015619092792509055829332228809646759643431132969993621978735092878373511063112490154890343129982582746527754521019525796353548970519797508100583511514579389445018551745494895487195755067394216058452056433361260007658332613783497199959691777417658433408128329125827162090395251029849893286344781735170486842070544923012420182548181193301079276791596637892120629527899325429830459086026787216359693306647165422695151150771131413173083823882525594227049526918526819043429841811208937695015167997646318845379772793906510430695062496634395366944684624007446924814737860130497005311607340192413396857580765895903660142630627958872146344712366632616640546024169855024471507307794858602408380237701117223451796685828284734178254522061467180338022324562604212951888349399654137947914067042184626053900707887048399609631674563956336210555401438077565817852965881011280353882060602023618153622051306161438016812892820395486349218216364301839462176181204509846272074877624808632133912735840008778491439457643628181187046381033633625145399779603935224156146924509899254814155212685288368330294435815709604699297366537002636219926665150438771151783291892276827812662075270538053650280921378292673000684183357735978887912814553603595358896561085090053766377270809930829262803458628178681260020541504985427706796492518456287289698456824455869644811760475630732169027477672262186724446849149984403293543559305495085821705728033921830000644249826087162581736643878551920333071722755769976075792192417896575741379386706435886506798568398485700099489415744555045588061348547472352489296396628580043614069373348086271189469228141318927407409355886985753172440804803766336289808018365855367063050337718572893976933955763837590250243809192505821327595695090889027260973536562516051502985428724059364775803115978971621497349708004944058116006765761124736851004036581347631741814223292865111913798339508790022769023185170058544553257827916544274256668945986585807548607014261493418305830719893255884414760690432550110316466161123637722908837316762119599695903283341944476721272213895402127891857864581998821290241879424662798575030680319855424470271300627743690787219623248544286301266073831089205630961485904237775200666949398935383022846470153892114489488350500670886717163191113334599632426710193430136199603535121308423601173355563636669042680822956598136007303937255674852133163400982557212464520886072986281913138240142522916834630319292769952921143578458327861548794556509175569366122692965333282151245903441967999122767044315763179199848985785529927785325695888795607734575749975518856253141019009949823682385787212286739985699635835812335645898139855209343459412108991032761989300998308189354160129465294596799891608532010171337737655429256524025797271896162143206321212047471914348249080936480541128502497032054256800603758563410230131338329365538767680741965250562354568447058888131201601389301630183740389051559438123582988264401964356128504507321736789219177019467331501128638557096426128644262036613205755625689361589034845184283838342566169181923860197356175837979564995699360322468626515252723719618291247165299115717662179321154584609816116745477121534039658884471679977221418056633015287567734453356554297317844708542080762256186540913314964946072912094066229604188047364818864183592981059918318805274883914669096601186535847152082269541130175943129961431957861315401167908693110694450728448897131299643808431178564002527364118013622280390941522977000155140625790052633506099150622072785987793061001520877517172425895778824242174839626081342270356060755934090932919263596714801930890004840223568353760661304208229005617329779125559439682313192793132748728522002230387618884751089632834864510377324360636488250288349823523995294640670986223225022113513362452340201265801204950227157915314985824289698043703827837008513333957435786031197384741271343410490643381148766774852994949062383886023562646049964663534298948494887165188891941747472010884695660476820004559020110141361245406084951679471768365500162977180335593095959716765737781050022122358152211315478004338712999045270171995114200332280124082270952928138686701898770919109298439829084905693046121342870633326149322620208879447455938249610919351975574933337251324153649775018082334154405659854196359407348136881863587539914589408620900036985026625219911551159618186233463654955106771583939042951562252325907036115565265197279971467045669956693518142566225397615243870284190138619402152864446823853238988779181065533046261608559807963551683459165696850999632034774018440920870605135698152649040809372508915188524566480595811183100577285928163864116160875199786203200401458607792717517119396438941841524638091528357866579086699008080502895025584299560384950682518303243932130539621588950687633117216494246364941535430972254322754355815401588397462333511601061385024813605717621197913693382642684059265249693784886385629726915392788622350568597329219615370480024731235575945405564407208688436926611423891004016469648322098380630015975280848033231631201502053325481066006528901887844172540082588377885282444781848128536540571412185707830271598767021305968400076966713447593882541995637806430409624033765636227986879659569955424726622885575697267530663172745506343071511385437814111228400610184508405759823739942193503474570540282127051533095932118724943623557294020590642629379724658345660086892458335840877789464033282944881979479507674604423503947843549669497245616375007733737836076011807528408201493566922199431177849623679056997773887884813718025160657148022393477739019458309060642154293778500299106119445701680640718953817251430878074528331517882204371409172067884390119080161850293272236981990046210662979075526557960781378873313472372148264349371303413454661862790813981106139506660573973920153567765208725401887975177814173145021244250140880120470498769990725946991927162855674929510411210121751922376547798049548842642990895475098457893914466617918876056100354623448528623322557067067488329538669289320946285372645059845191968134099440689834893587524686941239283714462678848937854344775742309946241724934909489984920235302961166449355180701169858497171210701732031754771555789431674487805918574770276523386036335222469982061706989312838330647215856474307487182280358736763988527437153265467328133406636107912232710166821522018846055661160873864659811451542793780216769906241698600841343966641400710509903159868989590753029062949627235326246539876927890810979889039774188741026917136806511088513393116310582368791118531587544903003748185375895311361505315567842406385338388136968882347233262831928672136021553095550867345639019842173569967265809855206716847175830904552097480561656918514912010266639548891464042053583494011989025493999460679331517022838271419079273043511477282590213135613878719674837912140191895567505280822890986760935316466254388620099027310082480769058161781129595230543586145848524157210831723060681801437487401817533611850099107782128223835334820876442870556425586089863510063522887625041323845096131485567324797269717869661804263134674216820548007768530997704805975290607262872576973729291774095312858151726336443466034146145351444608675102592292038325503247437726656695389461229222086382213630504831172097404722997187724040591632173846061094689913494947101750006947119894726431215566219425997221640755171711390198373482786089995171711174877178351624541563583283334277275690717829089216177319191922951409878292801094856662375288984690798997412373662440892411280769853041971323242835524129671819837424398042314108818048585960979535147878802239895895580210154924692168901207543691781929373156364664196919363463034986464201878736989855585463689781187440724100750090863961035565157123027136607287167201020031867782070937593937555306852916777578127135598425715008419823531330469923575827499911853416089810069321795574899502123524818672580809491490888280056630042579131844028233741322701691235769113887106540075678136952209683569281118686361325712119587852125762122336050429645909673327128033173931615234572876854380226054968270656021980844448165938763767134678890345040474732468279097190368738488801827042825980988309368660627592158109914530231469469475777296973700834282937728833331851830124459678523369439303640698263797852041901370038639126444823697952578037225503329519133629704547328742549782965009470915348723898461002447675228232318259686956819175834112752047797847866557070661768682845232439921219543070490592715098943894771587713135237698190001160917712926929678519680214505123478591811778207227169409541155531440244378562943414637102518547806523492761598589565918892819321622578696330122043281316002796596021441393484339484079108234712361486829174215099242477288871338580749924023994138368646844793963871427191617166509043661114684569047148358426954380383311018458489688183798881189961908828155116929423968780637883477749747774313534846917394505234419280935901898076405891063214176198429189504997575388697435805274801970882225768520558120501274670958078085793721912367005004506061370970418136309887551980124091777995523431105295482244288114767859766955755271270492284806637298706644642843584988366710307214891950680220021520751121936429835099553804059511480042261369980537900868887612172428827153222917205544240594491456225203553445557677722817880227203856134303064336575439292507567945536433107964021524607257408731365511274167173354819516226479228548529524815850440574978719047184573175914501437267634517798817505291668534627001295715460928292235500537940160402497815098319883789650951437270669226408967834754834757807853334527437739114113753293179818324244112086883806469851321377351997652833517319866903473648330974339996442470197102199503783915561287397096436168646929096439186236753752919351762785887430503559180331517233836399503465604367966478280038314350664072920592393778264585939227445672468027416419653784950806896930047524255166576720583586352687551309498752396516274494398709263132093395928761451832326983976225572713533109241058041975428801276415862114504640296559140286247023111028595546134084849014801037192837442898688796731938768537932701644625106634706859772651399304198547191343656415177999271071712523655200043762870891882965819584263909339147974985377139071900291780377907945615939402122545755919168288005586470297763037701644867700672102450901837168240880056686805611073333475462762847665905937080700794006382117850314244117428789690499312034160814280774063976880366793275455569783110951785936021904879966190873371081320457044849311667818633071649397439951782445765698161822780290293171927755397812770697632844877753252010937950231151833907585572001426027320842752875715327505226661169334170104143883492223855650765946493397553301816665185158422109918044495941579963030269608093910492189969928125077208828670233815649067560631370994957582482093947051485980083941236023020167513799736703442865376801426020083870149257555699717464658398969737245522378561522528494306462320762962570167348018742339166817875401493463988104662669508669345550275542354589852572009067191790082624414744933089232942166758183733649730474184674047715710595839486406979430726746949047270108998355495943183978224955880240639753319213524333206280310439231380724534965311875777370482268295058712389247103135187380512748389938229394075247120275991308911889922184439715277434742873799186391497058066615887283675371624901325523005933211667351112507493822760072705554677316767570450695658985709117170108990894702585471865405349198219155157877833838789872747137580059655416652695832381265332604044769424215028649108757952782895005499508895876893371658472954400881069963794475565178517945680150630388611176107047663383201528232563384603688053378683379178872656585657688502559507317609635061753131100859288593976165350627453004341074682631719546703504036237702712889069978159425607642865089176688970862415769256482117324734845195646102207619257066928721878788769260432071273112282761087737429252337146941748317906599789205611380286586364674983371663600334823988073826292954747065351475178867524503181562779336651777223912129580794386022792338551680668556292924023646044139745251109154805830600690880283504757696670641187817755587226644515562831453810708121444125101613640032552444205479641349507593731865410907910215987083768834699928790098387093864899417197784444149733175620590729504518964991543835701286124434782947628809428230590033399597343233790567434192140081673447991659203188199220659838761095023153817390548600427677766461163049960033899081978660550492004740701503148697168309005476788743747004406210295158991306963582115255574373127687256664233609537132657594980306325494981825565847843400266067439642503416255142032796263324697019392303331936330942466673227139619190252345071773258658084393016516356966253734875252328703520762674907591751324964983756450322913477971921674381906770372241098842931657469403180926421509708134023406281017862628227778751611591666548920647582154646850670459083491713670062325809074781909016336506340672196391072552701810940891875323296179602101099063463438689377842382277303782977082487203209475226989064621581525539552703088869727248385578008598206970690854551461469752058766179726409514126938681855855173474790023121434023576226350143461095581892860060250566662825884614600672403454192839435539979506329627413865799355775251964233080498071932312117776812177437959385763890596491634392066355148165932647537022963378385194812570911884107014534318260288379804250403740389604999094118457707317168228782924632194539937423372184959092345793068703073463570701018725837160182604257846779252256668979596176345762645474631485863635239219088292857937483321768407573969004712998175265686322263174161219896945723951601158346946782256044551519458369479460506354448115844923520100044421623658039672729005458296920622778191200404064204082867303228763340736632491571483834203699113342190623999849836407413183761190836387140258321453176698189275781213247367138920473973266264843242138331671970267311182456919772875716177826301064019504061409123068273475019432029819311185959793642673751995129478282240173850372532936948072589516298897758611557845226553313672837549834406402397571380724298850362004113799499502130236345199577313160227146401253624148183987170488044008202103254083256110172293373622469797874243435637784083860482364367980714847986808237927549710613842370556892226267718046343557989332213407048148156222678153047169381965426873485183375501976699826583428406248359255060049139352740286526465247299573168425321101253997782405939757725273382510464957937726250181516553113625873775298203405521130020940208211552767485905846217389110989870097968112976087933171641754244819978156989311352415943319137358099657246214435502031090886969080923171095235281429264312893386873305633338683379530274042138127631568513158342446349456517565320835544351730209059753179008540572474848268685380925634000450129156407046599516974844475264950668768376479865047844125300110531614962423039007538061236450669461771227915393084291265453355955802203381125869775552446853903816345371787467879221148146121223578521893053347146441935805258009062777089985466487383669989222320791055029905220157585154973611115323009299485734693998022259644843003612997443973779959191387322351328697736309667730335459232464092474613059871364961197937354689973226078790958670905275694017329725974133437934768789407402206261731037038042290984750785441875408292977578051162188247124763876755570138826678921859454074358482314252001632878762337179741523948543357097318367417425023472289980681087974708624422423363678575820816702977160333279423355898925410844301605897667297420999644908341065073341907604242661312274422484186821079968999926164384361178096140501712936390961646980029151967319472933417891799337658681202599822030397607493722641231558863858387202627664750674879768816326693313686792390250042878457338294619638460113174041877461122320883568924129971545446601925651003070443968975646533058385948091127501961749597583345044021146669124619111574110081168303708175704820221082727800239739382554198315642732991496420699361783972031844562263753782973643099543792388990760475467513791234548182172389070183182239801085528196058999507336993577297281381529429561771034089780475273046776517598949655417279756424106817848262106354486479347915920748578845100636853713327827355875234599811756524394277764641068363454926988206974218792594795220428370716792927706507884284000839773023255028017530971376544678164123804549290937756472983530784099670807241500485636180499890825746080485475869348165679259679965189484936598312513624620819058308164354110212620375367132032914066443009121122559425750626904107741921886952873466695780691959465425545551074862878975890172202150152838863584969456129044226870317048823731833698003197287181310391116441977998902208927014434633690924127336363248594872774840847679775605421541115646000911908333743663034484868570890798603259286165402314421574893340348383096536100288358072465298965928555680115917926436682820777963117487393547549080125644622106841777680510660731841454055469405811731158883072329525212360643567914833221327238275638536082201559004717807372295597907972220051597078653477105769792736731342594601223285263461938936015531553422343184114920432259010005487204478980644510678694847529455473827968642656874183025413414832760834766916287755889491092793101335787866418392839698558925792046823519983259329974832023431176852616664435544781042542985841743764844176404273548312556068889102074768213352408316167239658613908490491743779402103779039222393900062644323649675247144966198021951146206183120800923428725612012503387786622270476049101018763403611529143334556160408341497654254888882133421585821774920948565049531790159292707076120683157482329051835197069968640529218368378456634201247701881189835207571308899517000110630118861716799817360765791038588695619485126709755122186507644840683813450949633736306452789709369571726521573217095097914084278373435180906073727826906409422057507876373735929743039271927187466519772619437041157272508742167343230790745535598533797645635117944653325431016835094554182360386280327735926866649437099142890591810018529048674203821555868227053718284126133219617255926924758765128030531814909992530710274006151786017944927575450198991232040872263323517873999806654447087029757561206886806038097826628730994029170879539169890475392925128522430921372476899481386755011352886224205274729144926150869039480122508521337730384065787740985421643727872939919456460510921353896525199195416411335453248461192717265490995828461257860878727176598489617544058358736942785176067013138873755081630992939787653959111724689676718556008482899299560076880843347329182379567699957482314162996803974794852526926427820543814591097007477646445831598824795265024577539563724582381158246350651422310899980842687833342157922651105910748982948007904113641688870743930257218582257393607835752899871534377252220657484479879760222653170724597541454004654167349520969755718068744545257679710243218241335967393774908188919987396327169309549054675955328131279384521514575035932977713504602829740032084298006984004654705658160128323544416058697985834897297708471232790464103747709820565249815539253840214774276689620261595866842194747298809826014878462228872713277286126320182233528368289276483626805605517309107327151148523197060594387169619374102418746094165428445893297631722856427296404272682918276394445830692453930980064072107632833496944167487209463917787102933711510605786359364244943658298032973365600391982210046615551726055984185651147313977441951597434482794095708364701530266293800488485769969648286025536874901654060535189748722301198548480592957614111148611704817550852630106195962914902049404034015512869794602412006890782840639692923018412977412701290938780595521331203258692161439337289481424343403769412223530651944198818052103973264206403023414830821843504645785423365639124115863783644732689819448234926861689624933985582951116796574735874133796016092990551567069194713942988887538595964680221228870745694781915142763471210339424747308631162623812263721746172661691888321515091720534961076079801207106016234976996848387038874404746721146877365451356555587305915296077992285785456276078331885391893594271247205060991169047119848340383135275171491586151287562458263664804037488759325155862386593273429705173707632113393924639033182269809527670774117773557753167285493410573305902040156269916614666907373381095540782729948539983816809689661568027279363165384417819402595910385514276480988220853024138951146135710749776125500310027400977164517008938267118240851818831024363880438822528574232310881134088038930048897549547451196322900548255576388344909036396851097713229080202796948347240505421048072539975840029256070324157101835168965963261106745051719736530243957023606690378362269946035427471016692520075081709776784996747078742484363099884917019374140171345548035356727761472768783399300153193513821942919544000271186156078921649386657658239323227509016319399631172623687265673413997558082244820812798842121525627136816097600435742375081138322067392716322891835969384372351932604344466595175778957106645194310418163285680848896108374107772311811881696314064189639264749539242844423260561351528286112489251440433702824291785876077033927547593681635458440377937429720665285841967114854839535778659055147536054854654353160063860032090019783049924337352827093901294856645451265807946741093754932365949416498435824789785335554636871716165699552216103455497832029331050610985442624130612100672550103116043115669020098319460428535197520408803922591590802673217835995901876146282669919024097144358390882333175452773022357384008257038342050773565564644895992254993067981931623463795825613501164648221145323328499451471122268407834323701747322781504369740152918479962203776780472260838629233782936712458828344593996230244741478474573633393977430386709676138263443997199776166362957146704876519720167056317264528867502639143189568721908477220179112680502789569407709011983239460152377693014679954541060424821129383691433545580615197409677455644293236302304365174123767549596072015004995354991365047938587328966251697348668155761087318331078724502627540878722459179867719601916977072045153457648188537605150673278817352282219922312824724929302658589710177209239002210177722153196720337590693495569010279315302740578116212992526068555108688198148909001134899023693189395024318471025717166756471310235532386007548493105617843057977991516758467656533321928113388742264822575336156462274584990970707083979076982310184756052966972500977348445798716440984605398945427877027733822970703232628519560035969940583934421007056389646475249002448711475373867605445225715795575836188374319372308047815335349656320048033926594981681352090258257412012205276385474124351429072979966136764079165476617962214738035772907835529655437552968390762388036459488842172174997349019246820572165723224985413391212943748404683503497527765667230133294804045125825885229902218735142057931387936929885165017133012517802216968157401093758434730688978888857164694483821259690948986913884060527494027836246888386441837026449969115157842779989755461613264905311386831668421769334974063075119118168229396165313157444417219656758365221029618438570750727833462602546927714739312914353551744441864469474077940753211298121783700050847577365167085876789819580029697659398680286855369335338424785289054385595062652827472705520021820048462519081038667677830406543577055797632556520977501350316245896973490506448523282108243423025623217015970474194619109310293668732929014810856251886695363369086250981114110863728711402642131819867904914705810753384106205507210030364926616703712985326586289639243950587702868303128163041723508134616911891805158399086957114672863512788823940692745785085087101693644738609536424908795438764931439983485625960165675802694056623137862458768160793274721051833064753531007157315688258590056907254510656806636748269646116730968091957489418910850657636862724197347609494009685895421424281780391190234430872546025176971243948397555684019617783250055731034152814077052488446593383088811992006226083756252468641158341676474585409711434094905996790946719385029983433981342875590946082789338958507397835563959357008091393016573730360961264739131083505878987099421894619302510617550938448850751514289414279077732521123274976255018411163900926648726435323603382805673661647468585915363875594616154012198399933902307970535524527830000574935949705366971130558799242089728320375528536590404833736925174521908265767738189629076557015494288887725914302688978153759413133764477842358894804229345113162727619071575919050643645125224813552241892154065763359804530837048686976484033911797318459478968128987922735170283717145633542427624294576577006216427004415788545677706576338159114529019312977004603568024089313523124834145413233853489895823010123325134614039018776502062349673776780379974759190809215686373070996797331187624803717003439053505731698668773173606595191787997283033557201799448284704498862717334285023108170792313576149332946470517655593661574562403064886179818546053312681091165845637342495892957130568325631198745553691288869094999751579983977701460392381884042302958358410745072712769253576164664215424893868870653404041051853146642264396066115206001212280680784228245297898987104465394949713552867729026916341453805341945593905020659500978302291929844228731136780649321649519884610945096007602666448768782645818800881516755882122842675796018330683720946517039551420375988277415935800315616825124363182979952901885295024304277283550925840338964932786349716027172311797586862345219935395113120551321317260672140904664065253417132336587553834852907552423021372427943252652629784197620020188137178659096308449046014724715261661001390738502366885638952986515218041599645881286166324216139993281885562485014861416839979540410969991599614311372205217425519120558918075122967488205759038387380798292632151007594546938103131632318913217370203849055185264945390330931659504897241472894962124045441111324675661104612116888641814366627445505830114405881609787739875770849655897268667886758111148407847414128334564185054846348822796103661070636638220872063628601218219439008202045284873699332032202204579225484868679680757594354988152527559994867394653274246310722022383011237706790812545932650519556248312592889816704300592697480627986720880815129197723536487299067747627332507575802261682471931493350218118976665854369081133164540819086879760261452894336575617850304401166022640903330367887640907768540217220940948687128820660708166650713970068895888534238469127615663861583738307310968089452653839733398803964682866181721501287085820856565718046543506549327862902623567303271334414148738530775677303088717131623795296578591806536946797004028425642781501785194817931756326905787424208547736916865031634880762360586300535937731590661255306820174921614749875290464596250427157284034848678558597937751575160595967442957744567013716748313576632378059887613269804416048070807907599010603650300810277461020315218458168067335261971258006302436899916906552883630096854055152510853667553138512988179137884969919579751653807397306565139682693282674314970435205758764809994920650475406726839854208400155911369844475549826624836821052989244539812151731040183757389204035833824041039728671549305460759750357241889539754005878959977629068274477634615786899641432541120171575577176808693537916791357282117882889988553113076215798460493098233071208684465461348803295013945106352590981270492423483967223196389254349149215942627064715897892462986120474930290124941854177741861603590496293985298561412947246083943780235774770049546495671593526121736598692468153967406944270531366042853104336522065933287708939446304610932816630218425275443329350002493809284268194435929872631184833976465774687292987364550951562787159049846262401059565211849519374203475301858441839295680225046820952977181694191802628548532627546142495527696896259591575638185753415758134818159288265280414721802708073260236131303492239329474757025563132481344687160059163673289756672518244677953088802253223737603058153962044847083396881900274730754678664498212574565220463466711457775465189826359042843761539213121932015728518784254328962431463850342887805677853712007838494774508723565608896075546108256392667184597309243214690289163669172346863193266462392996375023488275742021584416490607070910878002159062903445128018451645728826701125937834633225244669476511630874536805829272290047287413368776923874978995974515609657933360915383255656994309479924316493455742338648055334664460224464828536958486070031332693854758792992715086743372004703172779918939048550610715409176360419191820912549379860136566639674542833465924678020850370374435031961213023377577273169165724017727649452006618380373278772112279619318808640555982348986333103014838627997689336251899768537020960216625570810026003198901483340686864242764759167887202177000406689580668452898289959980105521121684484709262844884856686915318047339262357262034052805415544466186496307111752538431222278626633967204035417230898732688757551640038300174540129341447665903193505277009331342515596812752025165017326362753006709468626066169477084691738919430417992091885409743217540247603401170784061218062087726019557315551906653989662991842815957303113436013945334189821793030534287123746441152812719148408407738008437082654773756898921063182630506414398078691091955670472834879049580375271165528838441488077546606817721671811576494572925486341367802632371592957276638072696732085275980070871580846621598171655712488911005408520212021374129707413349530765862973226978430504065834401924630000977235378969360677562570881775633308605968547428832180038850060821984347354559310901002617831948765108512569462556952392032100229603465124457838195480620947310817240835622345662058386025986451705615106517650875947601708326576390276911436996105014458566436555315517492941442410774992669228010235193076067948068478579729698281470857369531134006880951926791877229318743009500432126404264408494343643905111705598315234609108959952593579123312897311568654329306950532888405460666989027191964285659518412709834882715091019510169917432178911778066438105854801432883852370394066377668000146191901627374480270348668371597425570557349888761396910260242673556136591470718214834569325096506587278604001594544389648972644927473632537399231106123600237118010563434270776810285888180274386932120144686490123026063363240182928064446691987769116229712784729433711505018139578950115098488981483112829899660848687832842229148214404621584214239283751114736280727639517570783938576717875898425163488335082616239282157460697759829240419878851826754164195939336263180694953588012868698311729568565815879802123122336929931242827901624763952935475962870806307781941049120469736574196357291863647102494496615797766595974347420535666794182769955399381304695883682325604890214014334624454908906293186783768623565768241086645116409585779409961666827267765783245109000794371718045039656309139928415868093243913653738903488054843673758179398628088918237989111774785662666065654596262083394347071081636760520845552700664036406696410318809464100858632023595069074153414893478703502084429037865528767239804649283880057099662321483344808125561991930726396611929335956960554427441507725127393450180456059530438251532212156764950405617549520464918885420817643520603764742008141700287843800043772333669674004122775453384762198526607589092617278058086964231596923097591123646917800371154464823590522436772582876453494113809620399951579985916999334660423162545205611290257462923367778621795604999233055272005520608961693463896432856550880755413553587236165779899559782234775088314807115004292700363229182359600795239640771682243839948032632640385437539161423172921101050374883880252947113355975086638634580692611208047892214033827727045335748435761721158582903086410660921951896591809781875739450970314439887527219288222259971928730616827797137381714993091007963684175701417711711144139678911726803201429009513662678187997012481968147798275568016981332321251628616979257762090603618988595381024801315820030218315743311023419055087225659644053042239340095300010884825355142779067320689208451083358181869984770502653038119520765173169760777900027500645479429787807721802494221701572822283250119667863417236768558351046495140378590795537698552494216172692713548188670365853630320288362649592826473161056757382402335998974022726957101449928334079593750464626022947240696956289850535316600330136692017778421005780092878070480152510082813524258287950562737469435612005054673630101710167471521567054622425410035134442890230249447761862128370545240594968777611839273268566976452132126836761302599743983248512534056773834891895437952644905749463695367421301875426815529254990105623224956013887692776401998236505584902341530279599777870356643975164321356146187964494787298173549579965277042465509931474848358496226915832296145502282330276470437767650635808305652453544242086083337913375110106507829568550678453013219986127317561437092207481423902517969545628751206651748592402953243411331531752368617894967248166270531041664130805168047784747185265843554813452262706473912801311343307311121997527494264370966052377701846878966231853796962724891312390052007394607251713731784062409047325360988444128131207016534326009843548497217842670033371010667432616543060851071918323748110008709889423099528248084126110995767652624569572599199956142528696065321250670510756640439270621793431786133885650165111664064152112970257458840461214629912183987703591560086135798920313570656647542893620618770672524226543539312183418932401986194581641489298669916813307852374899408599578121050909197335612276520899389122660039368842489138166253630170379351853517938144692693970921551964633653005305648872746594287760092186249123378658040661367559037879876469378853095850670946483071662013509856315617454969138156195655564611001744966046161291703514664088751976689363310802358590645959873191620916328736668780817997663272942338162775194715823493896299629977389504496777141691668608138344947849830586405855627167830421666038440830996794978472657629748243439309488952148767166589329079360408113109113686669089419158500140469311159642120589435902312601601630103282029511558722206744017201605972098282765531389610099100134074787842194797233574867619896675209697132676989380575783785088025823703949723609627821919124826982722423051429051752082391142601138008213385515412772409347552394297992055547212441792415304435723173975740486065951595791123104272935935562408957015664804992826261424468615356668761279412552718451130354285446702071657100123511040248162339053111462764652359713446909185066859140293200345615079001337078259740120832991639138063775797439193257493125139852858355251732379677823563776588108314802130655965746395835817726613922177368182735207915073475387802159584204396072713706260511092154183380911983092968743644719455532839198479459026734294977677870281973099871695347079730388233243930341766914747812824056647309778209948487533372316228664908037934137316407967247249449282548106679304806819511447713507748896841192993500167442531659245179544792263540841820441925212708261167712515396193318205004567264763158904977569176815446835006421312771840353966216631319293769738571787268459344607229694476226596672016683309297679560145661125353824704040603473064671724563451269141509045406878146849676567240951917501106305666685861701876727363841317352149437787641273646157861762037736381858111574706903141360628854169908474502455525153881592982069131622359400576381888986959489051374369932237919471763467208632888594172985554358120936694962139229758682755920481422747822627260526929506507026093516667159529219381461260889969724277426412560917520552986687376624114120558920822849701065865875632053322020357575527812768019480480670905420504571190791830156368323016146849663188054539292390138269731276479544743624461264325432888649610240683608360880463149822493327858785255373776088537239808942665904080716397590249278337531098510540494228546912813734697087108743657882786140762813671381740660556935231451588619258019492033437389916723710706952362236216224005723729008322908708811304382168025860679538138188084642402487702862833176581942473936449420345858518245931294160566928509383249594890970892833808727050452831203992280881849969860130612955172195250624566318632711444881982004793098437843214602144513491830061362428216811311782453787310939273560606298250261362452098378732059426063013192494968304098370096275276249396721847640632956723434337779931370999273815317633815394480894664812041788283632818738411320028355012591924973881250440113403152605718651760327304552961501882801607210665716520758526717015717435382858020696134077993270363622571559740721391114711524453759248885883789241749951023124651189631192460900814102072425396618876084155851818994523995404066184948771726002908005431944876872364983195521576252241312316989373144777840199661130743504732601326081190955703232093889167580427533868710907983298380633304368874381610637349128591988580898222827481837450977368098309587839229121085285874098643250785531347501411159574124323129731968214147059408424416650555911030311325621872225226407812326689885203138892542246828299824272992159563841667446940952895474924248021542814622201396254759535418980815666023701555619947253764420477549298515884222538231102386839236089493537296697691107785260591995193774112142128298217393228897561397614978653803958260405707946256803979501886561355971771832426694437422324404261937310930535014802541290642330013923547658986712146895519848238032314129924754054224092059491631507594428113657737369565501162454248163839146605063475474983999005181339215538483344715869045174198480909228798100275410722298021995783804612740998868280233987646509279513044267105452432891612577709767584000917780575390254561058949177262788617249154407234690275694415728438252995470534855791085453749038377917977078825714866007968488217923012907123092251961734403961064191085591781212329289105758099467442324106937770767271109390332263011894301331923750408842225203712341001459635737045319900518599374838593973718472929347115184990287211105240075889252986198556565333196762919791179632281912317478760203748301354805750955221365317517905534423738396659406181282640147930361721893646446790333841047977932926829897691794100959647381899117855759156125803182152954780918758873870792178344718770538498699847144434616792030841173536671598753056015321755040021548578993285448918276302677678172458601544896227379426327783971232195423665681052651891267711148698336380835276549521633119167737314046129129205479035213196485597619474317713258858260549958264484932809572348097965186875243976064149434285377442648050499997036737418773217635431153807903199218000477654002822269100610973219373013979227893432501895003430080487678630395159287911411560934363137848261122309767396200012245106709481688517859300245749506475633411714300393073221370456405540829652352891083802579577324971757874276468199110010212044082955662705915245864672005298338123518684833364990563975907020988215835623284563106521463541214842758380622832530462767943960054017792831383830517406482703840204464012154548371826680573308503404480157797818238462587439500265447629668488970531987120173096527884757033402764973795672983629139965409685098672291867037763883414028603517296080009362479008970691623474731232089771456845695178064691841568234296646397234545680177048510942740157144888000005150898891314591897500802062101410122775661361564209681655239734310112983828802133651763100351627083927790687022920390046299465640084529434218617946447405227457285426757033550391759120602147671630924282947294486230795322024626232426868441390222321107278497059142469875149655664695388952026414817217299594418289268472932718614122690168451788443427344246799699114866446410558822045901962138705268809888145107728532893296552077548288475660861451566630462550390169635798130568937031929561979226808203040294706590728585990793694469338999615193685984182405003710673048053895777793595918545725646419012547844873667525755914551930104143670559770380016488897194667737858183950919764465438648611859234448721328536309709968892783718872923085996462163189107513007350708091252408601070258696311016055313910488756302101326887141968411200599949641619616424890997776910068726575197938074994223551559067630220885968521530132098737941822416433424694130210732038851719121639641101534388598141121012750667847415328527167927050117889816669309749759244214949586261145896366948934926322166051910693454585895038473807169634478187135995577511021796940420083558628900827948401739533434117244112389413168885421960058863910627743033558967160627519891619990245700792401825307229039039512476869018373847946290285083372974399340697432933569215342731239314192346097535996756447070478024105047476714000801305914194456846347943581363852063868038420169531169440749989502407379597167709216991399093917083399784548563447668856524575268418771737187039299442215271911752717844537412889690736575356859553406009018543029922336625009535910518556117247137244856576874507880361557690308311984671525520613009886012140140434962068273367334641138494755642377427024219264817490716687942138107063796025730107032142549034234244784464936673110625299471605035134961848663462656922259190838701652090895097520975559171077313167697764733354878913853696551532185349829603578431939301040057701454082295276221019225476484550402183588027982608878954700001814354594550615827183434038621864145016926231823442804761370083141024419689489083460421797941152735721724832485294420611586098671566886778319424111923792781415705508200632234393613711004526575863712883161112884037888982068968959728102870514052711885201686248878317875974086830195399573272416674230636317857203898869257944101783172822134824038913989973737534809669376655234064480036055660295391667757552676364720714326735434961580010705069665645546204987964154394962495526227927509738792029887303905671297256477170109083890695005854367079929086224439196783573912279178822716892062501231682133283671218790088093123764551352080365164004076839370742611579495031674206176419336535714205125467145522638577887101220479731030207653473237831129539249908909373368833656232327272887738150876379208866954189508057605605233890662034699369143611168683679443769050961533199150144621686841311617783556205908519119770897930171829140513647129941135554436041955991742055100035658612748389856703515735010405740078165818989317180724283065053926261749404645165599338207937838828774269654099586247534335827106998641198508824484053520918998700578997111971999555096639296518778554427576023924567972015132272964430714706380179668349531566086451090310301150434619977447192978539846657513320419768436365669273152983489239357501534807976900162635390702164808281498152881636688336109526909626466482339804159624795620129677522971158201721364013702235207824504594425091895586324460913911297231513786474973647367744831517293814656254722207297129076633871152924871854415889573609582463091281617787052158889929716229229338847537873136434696441733385685470658117912062755519662787332500971466298934699501800173704078060944082449095604774068656390331835203678672583374587598100834480644773579265253950480870656245582859452498249506537646422757073399727518578051316499971261871151661889026822794238172164936942621524044179683834372837015029777919364018812689037522212671930045465462042669034586942131073258555803962465581246288793319055319847945088682250224663161102834101762325793837832008986337583759763117150799578882386284930334331254664270254640907143446486343368517609041231583268229976689469250303358200013071663282196969516744916900814220311004318045039674656276205590681287464540914313296969014490218617779746769680714105076919090109175791935664460999061791458504038952881067917673556275938210900695030574192961456658591528646652719901497386622054071622143055186098019426634850115230464189262295728688847327468927503636147353565931000683368054193019836682406216242855458443282533860514178594962037221499456252823956344829650163375603267486420189988246438136746951065129155655418628162815002725364795546699829904683807380513849625815071902119511878099270531951517771948368571766054916616158253387408639467457740010829108542204066516291671432200953413690625593696523398434619625232956268653510533945603380954204610065708337040020172281713282708959048765762515918668895748370191761074533298724378977033626487794402814631051901191615625888303351939470273418726397866565978452529080573520680647073640483526616346558262324153741135655166633338422988623403987213337413541774297623233194349357086080859617221731324069250465763358869173035556094269549957899856341217418437916717222162402745250923758416137445377516420398747817902125049962902287276804897421864882288222140321485550935341068545038805603521083459541592348155241334160210613366936131657650329939007411575289680690618088788263341325502060471402778588886929438767695547023225601245523116468089036690467641342513217186803544770377341995657714174426153190293294527721770227448168240353416726987607822716106686211330385813287324905307469874943514193872805613794331658909935313161894350399233203269147090670220190844208451765081410500465122187340938866921597404833387255318271641796062489709166152306720842566431521966891462416059927398181712504368039976427130111101455557678113639311232663876341206336853306229189587001267200142751251649605222317739294737552397886311183978686247725859316703349626164803057556083911224403963782526270806855143001200505689463237629438007026289968060317107250643070801712722961581951251817841048261130558736390706022303160961802316105260405438796685444051100357086025598741058160754331713585071720661118898115803364209283115427953041945430464288142406209906921179231290232079235578376685126839202362002725116666049775121664688689020073160661460140476463674521827209901426146178801087631578420224285639932159737406457814086622985654744835308977468713255711499797702654309819283791285915934257949114175245247651732709799312783140845249808381883087473171045858630923322124685608471265658455682111448887372708419289140050696580051284468075808351231446245552161520779378877804454516573826368307947522805427177762948729277344980679040716616358489463583136341710202863068472146487526052130488433201647618761514476346181730943833967661814032661800076820687647830467532710428499947364934297056294299622891926721950888984054212218522156174058497365358265605138124219947152436322506751225975171669292775270899666891294516929050382283274843151603122393919453050449050051431091262304736962231709795850626836609924545601738668291227369295218470907714066982065238991708348919716029496587734214040063091270750418990738809342486957423199854532006763901871944103404077865827806893390277288768665597002869984320758692806700784296383101174351849722689693237127692609678477382231002500030368779129754444678532140222566210476520716043946273162719519895795159752745143739376621481014892849938885895617965332256375146218724835450631016412435655821827165553536960989992788807075972013254269796671829437714303977021511902366138854379805066275155188424766826115568772610436005462832850648722015214340172778050954220789251173702099586857024303425637716793690099561601415920290292940534261288947316465665141006550245201567388932346754876769084274399734351689246244829781735393857046901476185528896353827535817567623429380531654163559155689820805654203795874490095990770809628329676920324156810907045031872679277615108175219605718349571777685999007411933359160327050174731853834562540617374868002765827648790587745583784351232894849888167124710259827120493280212992681551842678742703247088591201844697195376647199974819340099118238272785878854910761846218379575681791054067965350792228059821828760892074638511457979055244477360566097618854818590213948042735884232186859446918213257446785044499710440884045115192854172324057639724144439153474637842253893465622743331767687174457307009768043533896584818889961421335067832151710168564269903457652463924933416404022467377070978346008266471981553532363784946379906503725234129936136481309962537390811554242548914402939190998989498087129702924497873924674107923865792623606368967884791368609146893192146832360856899477803679739391839008227874081296521879119874372381157526517210145029102556952119608111893843577050193999994156526755590787103019092635140228849194380641677416793312817584595052957274740120401404861525666263054650657752343950552756464301919317498940031841254979572872215815266259294568981852236902124466110248464225673698519717223553982175250668405157781939417369759081677493110344630532515576374628163611896166714379864977699430121152138790054166793505652439002209968573322589266863416448765306914631089453944544701256725788403737983954592419058350988313349917271132696574021497446306862652632334147625907498357481646326996842115096293665554379511060692532744167554128482776181586121808512637813463015595605596547023737224420718193154276258628686251390833166023719678098368849441648526400261653708095003032963614250255326299974235643371268719567472023639503682682442203391301603256053526997739358616167117838967540508804341822423598431872534482663234455228418304947059494216690040905773986872828398864324728504024498369321118019718950562063032196442349425448848390434198140838019609465934666717680343912787283098543936448615331076202829905434321154057837732040760713478650888615018858968479952974472270985273688726967758720809741678929733661607578583309850263133636688307487727266227871975189667627364313147587784156252147204367957062222373555425839129890074932354287217045117701835190436389643011952070050100165210122377311231525340615645154884673778224310655264462882219450974134767641940023387554785981430417299876707670401954541808415208037941501637738607265799518970010474696070385851087741830011844849413599011304854917851741635050801605500227158988440688238489933553179255790492092650690984855112737918089773933420698863945985322233880285136136354507792177765029790875650646352108918539486441959232994535034279183064931463795779813350076245674885420605767485021758940196257233362205134000402279656608656457497626144102715950153535802499508439522878874862642621680843464222422380738122441517988836786043108615473321042827851122527675245098937439383061729760919319562362362832646677905483994156414518172230724147375477547864389226314602215967184359946200620316708489069796242101438779852533120973342367113382886183376373031702009388268935243487355557869947489249929431308871826388666585473441222521994523168514248433469574644176901094483592801373416626669328209261990422948352033857068853602265439830324331645794600744805152779091483737496023749273123746939305808633170252358665495786209238997692465621052604438521930500721955236505157177118596740185320140691505169266144251800494291167487757295139398870513781780052947253483842377531636381514641538914152054976313316686528552911530357258068781704144164036014435988261978268501941185934386559239016594538440561251626547914331919469932895557949465539114168929961740000174253283301892254503343290239199323205481264996738500961310716644153368368218906265011385699226580513413256103830369727051069116705479182747764589861966170809689614816168128967938068551742498488404190187035816654921824077642402264952134631100244578486289220842382770038241263145491189556510967659175146296772019313351558345978988530137984817842309747071267026911238254374145032754613806158643234911726320680073488825101929421923221536830358575849541075339141811786631124710736201503025209989531035700137799905303148914582496954138812764837808934478357306560111205326506852579884629670460819557605685778989703793689723795859404469923879065234719498526951339772511442185553208577645077096156182372306726093901936433745481663624805070188322789196287432964857619597941203098111015915637515824427123821865762307157577037942325848461988875907999380108847946049047006835734329283512693248577167470818792062051360063897542868008508136192400169357944232486327806912541589653785540754541587379700954649645463684320835847500769976779163556800735740648480586403304548420375495453661695734320829460046156290937841561881583278522700975828072379139485406400494421593737641277082186292061531080049861128346386254536134184794627551975026863083331660367241727368431102639005125594361821800160242364833167368762036390562637954652877995013917177365388642578810876501305785850083157449738319444838633329941306500397947436408641525848924384472596294651594900893525985101913759149708086934847890430129738705342842286720563591273691458201627712835960545764222764209503993398257791610181331758258091089012883012001092980609442173743309890620563117317790034644354818550222117972341268904834188937774646101242505406488837627301908864923215406833923369006946833499871694619813202343554461021900922978495412501105998221583945259313007099491595774483698188929754220445696290322637867323512192457897506266570973095543649921508632803784925919883576123300249540630237235179919522099073114270001559000803827510290380045957765249500215759158093375320326869971941582327408719657952222420197644555107295259211450909397166888863391516536526979792887608215160040109504593667434051394334617559066093037826646339976369429234691317758533701188566122718686586941968845032220132896858828989747493116119485436006843202609497398098230746657249407637221531861828139853633106489980113031682385114445196558232231319163245411986624039087554622795744898478794276060435228369295668924443255970736828714778901202205391546385963726537102261010960321985421321645898206383699580141230954943899814480428137224577789233267726503475132677986634807240730783474861117048237512048420526127026234449887155487671611015367835008927420446665707677657795734621993354115345116061332132796768898126638974631984172787935521626511943185856519424168978620909432020979699962121498202417001751172797980052259271941480683571293762223522877289817268189911405632807178724849318675391199039640574299118796691611732693730399118083883232987880260679757314779817347900449534312435117455133270757843723550346301827718121100982490325387232474415818763311218622997950312107803419011611884520007856074473009450247427262255758965495298966702851669344371448975983688380602221754226795548539102041893630567665500333304410679966637883682562300235546724332376922956409709738158070266611298059591356178639538410637637620988433859187472697592911058103427117769938123368448063371677567675507630964894560357662594461935744042184976012504129582149551607656742025420076033521485389755450077396374507740632056077878086632640103856578594899660145233817738489402448565412061932559651000788471033724844302755263937929475456981025010309951684725405466960277761590167537667371709803396305201667494974968025524911841332323248016474825294429184575598862173586721620532589180527176103568268108028662791592553865311857037556056264189787345858592966775657904911750209003843028296535369840630836202713759708135115207944476970582153690752388288185464423460412224418232842818799760931029070397704541181492725500658264651706988583111957234306756234096595107011909289574032352509546919273850040484220118532005005791832837134029876764864856475675953378127320739041547660244714947128647369792379519236671929062126072441792713491272156742537126145717650322526053197229727862888649500193666706791480591316967696026195133669473702137071712230874197860516321782229995210132557934415092088029098356073719534210635624859115953912237340145428160154543386200382447683414125020365338056604207502350641466567591277823876079734433363230443939781776545588626031990758166257208841737493416710955750420470981241558455276893665878071533803594354413909906384041658048949114733066135971219074671521395107399617963106795959368563059327919923436929500042790192986369117245340285546367741103517794034367317396831672997958390344423013039335211269104248662577528380767171895022698625832060431318944654972602893078445754280075692051981341388127684604619668276287291141276147815285754448627603701888106776619664911083096045660033654756108194400024318228702270273168463710049752010825745075547453752090812553023275560729122687471281466892860822263747625423844171749148745103626161552255372911549875877784775556340904675255436835508963108634173296394399393304682205727909125198088211625611771964659063584198552755981793674574478008943975396300543683264750491106322070696392530209204510845810827996346093263700349767274981182066913465960970428441140295178805154033922861135686895156754490118211778578918176734670673189621751129722009523210098065144784641398713028154009409949477441916611447981217308120292246356314799083621014929797612451754399287678313493468865996606327224304483962978948678844887101869255193027932486008066383144023768394724485423906945844943966454094728457964641302355648542439594801039545440952305782415990303595821723064815063673158056170094268143012066742542220442535214782153193988625016581935946409768564147307783264280197644871703993195150551837302933152632522408090295790209424018294753038472976930842616947014009892826715575249208276676253058598914173520122306449284397717209970560046867230140040004184122846718875523418516820744807270798586613921023893090753824773951949685073907658897556429451694264567592331677119869460209800673108924513731709803119527421810784668655659264417595850567152938451898706517932675269305005937203647690817684055660841868828902086479469649613428457381214532476007684101388455237031854737865052917389197787985696432141916282812768167328182551323850711475438573661133096575676609736317262154896811582169356147315101394008914347165407125767353382916563914066741630524415268335238557729080910463344485389368101452957427537603514875429593376129270567589393640640148450694116036405410180039155611483405434448935809822536411022617086217398350502483197931241719421691236346445510247322788703589115898648700731324714025651979560227962139509897732574284326372886191383238450841132091754250628932199434571760266131866260302783572148788773918216471371320248948141550649979574111712299245215039690957227777368262448911719481949826369015377772781016937945785913635676222550097258490921738024671832984087111107310207798739697010640267480894601095623239932107882642931498815648181923311178892979136439335380445490742441379178807786537256504827936913976513560969511485710062562780155090391622387448236481730860420734873265347882013542697198647198653099057987828044197416162603530404195834593115737630074818171812269148720065512159324954713338298468689819036068100540115695787954804657291763457490748249947610273894563011449998321750772350201957429002625168552153051530107048829364106155308401161185891853517381964285993332140715555883533075729157421777024416264805276392715239135278192549696776705503698000494514564769473017546424026544160645685826576174063800433311834556950393905123773663581901667257949621276011314077728361078655169144504639827506244582629265081779740350853010150813654827266831516015985333899842807815928343900311462617076649413889383184956600004525124768986110517304423138221583749256038482086032285028199570533449356102154992964921249456259490506502374217537784536449445997842191063948825690976448347603774695907668617222374596119719893615067554242530739512568161323737758018809783461134582170661878919858997749224908964643934731720167907807739947235150433655548600815350065118533631506043037156848201843131002061169036208234479284923520619910944153421009673179294105925769964425237672630805920710007113768034238965946987919104271452337156570349907113333614931368452610200881131649716098958949074012347331253779248029874524359908962334394181975941129439358961663543903674549826036592757512916759941264323147763954455606621476153418044997519962742061452853598858266718816831123009577549921284431347310331299786437934946116929819983478800405905840574788082202804983640189032317883409586392138450601698961387437718894898861054946042031943433555001968561298554528331513848567534262282168591506145751203814327777702899576194089217854659142101020562096001785149907442117799417333920935739408919352617257787774559923293614468866209343153511087432486769536492974285629665437342619355255596457457256484496208816350801316884592003616823915947586009593611817130029229298338329540456818758504402467273113824541626301424646259157959774144020311427728609797644938569169594466860573141284074879635913219895880433696711334481621230374518286957835245633032675833442076858112804819921512783253579353382730913649468076237753283360399799862976434841938382198313050075434539410098401674857946777306862924173990643069244015315847045767643033195320102657980432439067412006082361507141793411582612760483430577849741440155512070445772385419249742262068479484576653914963235688426983865467450754062746484894301521589463499305276783914372042667021968457105735906884081166676180124582796358859952639621875281135705224317456383726935032971336269585876683303477100438485878432189012818972159757781369601454544605818352338712536168805628998771787982768056607971117327185145903621141690165313395831053871088404304270092594830296873029546305966860197403920617556192994550066239086706292629717117303918476477034044177711420058672618709582186490331192922547459654235659179714013648040783784978942222302418883146650546842540380470260947980816130015782491882731926098103032740541064493840919878818708928206850339098228926960080430560552417023347903221522463833323202510378142695720218303320590380680369293850890876770370604103725743405932662837950306430874157016586490826719894247601630419761543980677915646864913453450701736830937768303325376197389095268224190889210610534139250229201053173276257365113185801658829010263448841419748915462933488856228666188371454554488250506926825963043600882578133291288007654983508425295031022990742257947051070421725415993354668717984161007256515771307465729840591775756662904388193608861278799670032003514276537437732826565902527151492165079461932711041303411591482787160719340888276977765060897742080549065730295475502172969175569124633412158558591856001780532239871863178296399586288050944220004699350660505412823248530649333322053160343622359803961111304462332162735213762238855174933404873015434893029016458441934891940334200000656652302753197953940382507862723980631258342095217373748052165582712814348132822457601682674817241802062635639845287890762487712797792945234485148632881987667046755783752445256792087241157625289087442166470009982382667927461660763844413012385131300682698301814562218979494064990343923307555128753168584418884710382229191015536201814358773740956499901713389768469079541583015622622156849200749182514820768655901389619469594848931647013074236475119874380603758085950908389338579079128445509357459730799115311333460940776927243269336733789269455542587865985632334747783052367169326593313312494483003914907622089659432842164916688066460888323428679225723195295402784341500313180136297095195728748048973770887087162426939417632841038346630335804911363738814244296254780208782580438520198255909696298064851007864094000242986891147594082720405957465704107426122398203261177932244920474852733916076148718596685089153537919984926299967790928702478012762919462572466519284177025458573344175416452695848605908751143369782119530494099003301000568871673760108710794833874773309188457314636194631667974001852889758003995498614570766309173277431829613269619178967119707865156525786388653326082421315641747536983361968880565898223287565139389453325046737451961372236556493794110763278327406648812125093710770404713302055801933203050584331256017575888680449881114984993742162896435397479908781124583929705578011382028335279509322611743691148037370479233033302402992650172275751825128560340000895449753040718300747436027623377004949805436047975618606845595794295224868434258172848567117815147848698343178559429365824470993416843034766125572657719859808509085769057876842749659029466510008080391768811860761917491582566641797030196177808798443014781178713735448638348758751203199025034918788201462012377568766763607144634592313718818598282725345081586383744324219700774808926181148641007789469004362167746402693591313855437932228798953102601948368298481419310519683785225766308867032094997684119604129565996691815649080521134217603134726055823356025329695683038789566693040605025932424117003035383934491771239229035476856084444140708981696941094252352903764786936720580968269431342994908647684833913117670025083374580888847098673930327135051100866466178162635020887085279267459654455781682416283013870823609269199349853853735504768406404224326449306573593356384547478880871405411018543816302919869999965429858294091062008855941424523268561055039241797960357764683732725764839065686268183958683422306834693139387010764019366396515427089760019237870032045918491639992612267992033665162328805907542614645648692471845147126360399971542089847840847793915254802674985723444917280142846719928393417933374996993616234081126202213521022291024932402110114598458130428402392794847960147852742786007976590595984902778984815536667722998704068613274820087848030042923915685189159659634528480137672374416989729841679108446201223410181606355351151910705962373695586196869056640283625270136709334716922853849460893010058600828339826928592368256557984412273557193931708494506568109853698639814064776038372587490289698960989491383369866787153469608660194386162231368024929322751203568822222480835926221682967002183523843331809867182184782515210537276494780584548257790398287471235055319559957674490681134911410363141708406991232055647741634952128082714242905658515592407301627592575888526301573092655192903075759337677639986860254679560135979547620292525281402480927226458973636288766917832716638353074599482504845226305998939411518229001957425690069886469113901075223137761544590567140658272977080099221879647485219395734189848360217231062864576251855224927140295527121973493401354820793744371439100944888001624193682615903112593767882253506921114113934037282368533356916715311833739199824146470908426848104589213333482352742310629686308322706507691184289212274173320656854672388581153810384901148185910701893531507184595443144004251021318873615229804775531997224327441268680838820870810736658830620882706134465145080752066720857165326242538769360529825350631033899783066007539564532482271332640099438847636620129662385941845963446987896129900664484482033630410883334422090813941306712092404103015771965441682061196035195512358339121166250817885987153814331264309983782050580143280921646033179665153042809439777709017926043635309764477531757224407023314873557229413992723161320584598922820890783322028330553426255634568256039299024683081500068810590833134039029023003946069376987633688304199601328933306476323749978353817445591449189163564927911709662429484212610864340003194503149483194322788658912621480081530269481517187123819947199523517717943686262386990208325950922497002101931639630196004202836358884974623790397833176619706682427287096668755643418079852853489365014678428290246549431800468674593565456329969364618804070522269348371667985937376824843829988597670286735464569754499832514895816381414670881018154578320305659704401836391726084558708312936746714283135363616686582945932885060560037436800535283030841101131955354369167693031796771576220552839102912101678409213385234332925055166048718729504649539806166498241525446213116446641974605443020045750933538211404997317332653981379967768181646033841993605328963832678963332465255465042667026344346905669729924723621002236575063476323890070410116352753727777334404237770731913817025794939786399157985115695305697569080886267709947404429396066578110646784261226706049388619583098816173761941469046331753238981449271170970113246384761957328219388333182426561358016365426374063959732844450814889564538088452596709954718946182865571375155627761780141802716265882471084286273928388746473466157387029421919350321203810682331815036324287942432711796245433044859477024295367064747246902506445350647430100199257623241763789618968142167130711265480559756190827910406740871002378378819441763788298842095008462468043399376543269545427841054800991389125270121033831313717359931009609295192867148394769528525793464940226004467868095596162392161731892206684379804874452465929856475651998513610381247420196875157787412030899085637768122634321803071088268945524223055037576559107173176009504246937112342554258785805730802577287698139541631671771356427480160825176533378816751264433183125924966088523336010317420627679615736006104501792247976930658020420930458591837730961399159700238254823623327051067773824193447233096088085949776742933478375882553087935594886841164376215867003679121860382945420645554885548522087294210917492142669523660554501309943518513274285086223355198487635157849121962505916078453775111233407386929146493801520063345215933346433245668447141639732168220304796352465668074613004362150162025233385822043850407533638204476649969350572775852223776139020350084668846664157409705696785292135493424999105297999549221793729511880826122787866628830139978242620732262191246452967360959563864389105026201207666697626650179793568430826600163902666929639296135004145307695895622941338741797835422084233325128735067258982379115381245939429478511356026393598129492854401220376530583837202070188556002887916177540328332875770952192266212186316117964741374139102614371723768181875080386425001419090335806442356694688169949420177531785484679168588425009355668774675536833549124752398480120024091819471328488958904716713763314651758078479860530978411943827995916024531179929674390267231427617260250438906244691503872585490763529697004112681231985927267341338689935173843323778696740056227997384895884085005871120678476600498693594337337336874017393979248951981334488121285983977362599961628595493401078478002021085382129604730661494649585132481557342539453722471274685025976057358386984415912087323270413019975795714811636433599497513500457275366563990989149350230311827292436718279982168173438343278644523366238868800373477044719309343987615204430933269533700254201572973770221194945540689142493754696470694040940624854201684218195636186601156959562188786825095920418827615340790977498501721914318550158856747415145754004938144631129524368911349344390213466018699681339901600747695189011606243527786712274159517447630490571322563878831329079397900614370597861443235314528900015859236761846918136661698576566367088322110465763894886920585917536117973923451342362457105173230574834364491722237900461459945409152305243199368931244010211044427207619991951656273757694567424636125111628380630271587985620425987738678866846637102393855015180401230449984845422225102220556269778670299640138334594589686397510364752718652507454921132161181956526466694811678112672282695276900433417179177412443547643576176180663484004675795455720546676823027813148800429966364809070041294212285387397094610180324883348430449324971633149504826610901759961456339970300965261905627519587043250320700192204398366172791049410446052549566196531350444002468808933842123022524087483573322076439171356614040592712587917695252411418696533320229227633102984134255012018933371288124874493252657831806818577110049996366323437497282606662348673090611175431501938355869238335860482232524651073821138712479909472570224148114079707241879946913441207526121368117030473010997716831287493697752265493520547555921842884491804913871320185612986654304766159890250876909287478036455288417145215335967187466530639215799310475837089610513597556089844517018027565154521518816011899931866169922237994767221500868759345143200341864124912457614410108766860139198765490941980154802821893357437594627456039075135976707012524056278915177985196689694082037017796755751791445595353410127188399520887445133169720040606452054772430677413359645158591385309256326760486585844249597009250965778596782004318556828930795730695619999812757395208070417214286831812667022856847775401434955259236555558897024372324527823840143375534241824085015261368249620560110452531145320866613492560302549016254338496494307060805976163016801502655705953103134047415378487260575785272585508311245455730982823207980963122581152806216851106310882491509069556812621986283077484277375068846239294582043383567804822327590620689655043941120441858717893478806625031342021211562006527025017368495523443240293159058596704270360401756303592565968072221687122367827111057983505629806805087745355397082274265490076678671743522627730240704727714711317067398856044706038732944463997960118769875197215620722832742782232801873662098572982084373346499742623896626783329067021951912096431714539581985372365488994906391550914779401190079063073968447608764147241665579553996776451819018529520091978076905289125552324971129548925211915133356855398600008347996884352983173146352059272162517722176246935405043264981878734876691693331752126860011079229950982637764004162164154909065312431588306941540095643007720845600452836120888797967970375806007230896016100419904377464059176792597384341943970062687935423393051398253089326491381376685263374129096930878802148675780161352145648990304873768716519731275896214598317236977354997291531825337141282065636138859961096215377845366455535445594470074619728096532507358576387592339800824072000600824543249777410730770666137907149690390398687749716586038704210841522182894235566241830391710173815019845068860190370082484600430319215543734545572522167447099935972150641089534760219400556008517473340943926331165796309367277786116571017211531973713737404714366496527365704638174885643925432260069976463235255622995364672783800231539630085771915515699117587199101531731544973738664884654904837914763193854469040871586695098334477586507212517090802869635676819650600808407360258784623058361203947049300417930189837264326372820696149006575077860319329019749208079047479921917893758297483884866707485173103062312165867393557020139461927673449348536203324518184580386038220102032432946269071579368608714687888146713880672230171196911668093108844115234274309656734409914916325502880421964890491621978196131587684945966567046355918450117338654467006280327762894610799746921840770761554617140700926958440466945394320623996648889036002225608661291892484912478967589532851099147330721766932931216646314110846965653598925831616126518590760298349482343461147881830459604395249795212117145362938351683561786446447325958402652657608605427671604252301296256734940820814069487839063191919651858124055839082143706422638314136601471556790014152398260391324306886131082297401229179508782040467695444054532486483264126327088161121870615564768108918029086578420642794284504560795204892729040317092674461851143665983174755615429655269311681270848648788523174988310120640870279873735725984842898929998600713011820456716076903555113855916376007938044997492223482891164010160038891628509593545480787259672117461878126669967895248515469821344921664491746977784928300660511618365137330155577034764241354865753131725158969357032426945579225339753329867091795040307199515518520349811069592454086536532387665081730368638635603335702688658010300433078377001812888766894598648406041057833914005331849377132109138598085184046087006304777948314721127923570536563439821178731553206348951874311591145282140499168043007132099909223464911725363262554603486034133407447411468334656257204629360778293850699736711523466877274724619794659820106290173436608885125217166831155557420478426236797887824478621534842411873187973715034080942654612565303022792631358659743082718869695171607988142322732887148175234759191297276745425472006223091595768541767777609454517327484456822406464786857907970928824559623829933568294755857282144649996472671901615710518406284755760422610202803435583159149846015597659701794960148363951695235289560854780302710770425144524233622898918054596931398131118339518855551750501320093130186989530324860509946172750356777903613102373983431232403980980849030286128296420140010835522743554111118841593804775864913309655698101692912050746966838980402469252249676357211594825288692355859027810944361984024733278821892147835588689746432691602862378063087883239636045053657587632495664884782320179452537005182383727288309727774326461590940718853687874178195096471295974397943348000707044906625568128348130102899018511067268717715501371262133536607154739598415893341442074391548265973105217634754616754683743656271870503236981503008996175898642949815833845577753148269388363962482875668907233230967826088358796555811538657520703058518289228290082642767937354944623611956906676045592059090574552003842927014030526937358369693964102969491481469108047345432973731232175742024488015199087663009068490842021125537205944041626503439644310292754577816599030421803485999691567803427121593881877272268953835186603713497357145399077975713858831832524061187997813510178959208810380150364580267051341218814369630595646442401401900221654824824471395343244840132527129603947728831522624615610775189767461237491348637206447895952693040401236395872478628616310061887040051481289619768545964547742318630153800791381000722057321626585830491824404717188411461253399836684749574817244622403464608505372545460958431125066886861251175156484320605614909359898570950459045289097887067120469585218312738274184890851103602855804676052331642919428330583037445120193478823445542173582365240790437739941409689538963444662490140360543894483516727110391417563828085330470484276553118447117626118966566898115695665394919903688006007374168601637088162517473298397052473890477688465479403752035057330242778091670241082670755858730092771879765977283543202821614660851993156136142750527171607200440985824769403027659154550964069477128859514746952297085092354662311124802625014121368239452880905081417796262517108366843235841698442582202573177694310273043523288468164387642789067184423161958141670038153276027883946215344714945686673527460232615337165165373658673410811212723427462508223449535731821379823580887471116181988327298478527588865323623269977720659563124999271910369526530035436511296136339867927999398100645061651833706299255758189107778575438285267485351286689751944369595499987161175152831228607959064323953419889714827535803100270058276293558256858899612777859927532291721675289947365147095261953821006871627444205428472821977316867100055534303098384856443476167070765398396536552315408561629053524968940228229217144464312881785538161627462633894474110653818290599908420386936177945106123557244863725844666530925967029225822137727714007531197012541986353940781711653532252935159067883528251069307324795869748100306372401448693725167977587847832538605308520173346980201861401046738296407096826641065204277596784998646928807740416307760981447117230769094012619356883707337977018300359108696580513955092655640794643968949613550118434112085869198966630305857560156399068023652386116827630212745432902624922610268281400692498908640473887696695695374854647979270435090687825302965343604988023231226791449767783445810380171374415654278595710246588927958639290813216470502542536803386759437547861715456957421222781031730530622232729080127108833580694457362106020907117387879604030206597732326237555453685250910908521698391677395817265464240597322412426340840501982023766852077656227864148677702837602819603648628661633263151894862377699445596853047677975043532618358930409173950021200615609393342678623884638452686627868185072089432720454821794991327185796037165661519263340116553963762462267157517189905806216522501810122305404883717743106298056790931810788938962852493918778911145707371350843565303330936451896181321797264493680787129279128520326375136437571234862903295435377929583839676453698889953385179888403225652582579898546040770305805139652854182706741007158317875318327276389477023436618911670532351582258265974500117730099542265209790186788644944303172014794932183610302647092271421106009026232221203757970419762994920684517920106684061466540944406982412166279958103835748496506546400701867562438314949289950928751893929742261207030096372069281772049365995362120068145791523320745595411787333714693946436820518887336022252243303021575088113572968651324616646805756529771214976854114066936200678225640577001731774040321479324771899479268153809390088625960659041944552831294329840181090231035090563553688295018348190511932164143131532525238574165001722291181762923691451841057683425102832096393851392399862900354542992900666390549690184336494662782508089914445178911525379236054854684926544919635126637531529047208141978365248058194053324698164365903459646382848638053325983748339947061639661691878333730917102192271943868175844339874237747804907302292535715284937304233765824267095810894035168695617378834980316634584655148437867635062156141026026791971733986157937179906065113778569392030716735392566029096320456385345765337072984206156619045533263553592017316448304107331894720249898032614596505054398835595982747882525845938100536476591663333910694941219666166694968831778671598059535892873091309915005375474716047787686486563522629156979934343329256848102507221948872379339667801301892734665677954818713576236178991214605194850945882944841459191627878893544467184194760706002752844123926544117741664180228850671340122461104540606863539549748637335515447153794572336904704843672886274640851413329816289932909471082846116146093604236504346623816934075002384463896688868985713253037552686892036436604693777490109358065896209324403675394669324637730763595227025741227659907864229120004278214833821879128362680950438882871246513258955544638822840636906384142267574132426907069645860403398718761785616370666742824602119791795787779987363973091103154193720783809778052145932010978688502842292986788559466557531179975018704817284451506916644181883073019427434760967731559524324306846898113148979351199058285287865540813188520041360764774512946383002200700115448247266893568378178862550826240897757751819153769712019716139087038720164676338110666134936956687052074834458940358949525268999717442325350606672619294181985088773198167750897730017477686246655719665295720874417904049701947011494698162810968180734433596948413560105785604991790801689113663919339921442739243943505952337320171219879201545062713328377818224466083010778385488604188850072163260508156221556373770107138253653927683754874496156295916857757534057486296163276290702174583034610445774591311446787167732333030579129670273939741982831008298177709609786638081476566246701444282356382777319800818125535375422879857638885015772515359047547555733169378292197310566818842649412473077847242279423225672524139297244440717930866614645644421650462154894304938192138671260104881680478378190612697575843949452345354689193094678015968609690280169948616334632454066995439250274556865377094285239760575655414547355018723441267465130368934606732716959093335418366011540687601824893040166172605424092359078532715936287877907584798694532076684621041430708240085807357443536342163120221014277956680581846851705517935542735209195454371434032889934123905593266508575459608900944310106551587908692852026483063954137098438341254227978084228801486910834665485388326365587621787659172727083242972495929265800338304869058499671064443156528480374939596992167647041204333761212899308851540310072601334785420541732669213116449416186285133393463743431992596149798680868986861823618213746212447611642962423990741392793371191138941553652003685740811534855094500316809654071294772114205598549439534701480624372359388930077003340341728532488460954991153297369878151163913473129891837505749954261696831098046546101212927623978123703941701217083185883945593046254024193104166856557054034494317856813348957451329379009085003091812721699960732027750009374283342488672148924878120081457939723572655230676677938865464184911053250849638317015861539554737807542712658849856250868382239461204236187741665242719049457902140002047787126761268679931465381568435046641707079441102369713386003574553433592153074836342897487911539092615772613990207849220219065416867647317521891309018242504020100142390585093417437894027040277811772475692951544782438534209105044182091432474037088106869894265035967210509659816024564172181850991699517932478113515130499161078154221601353576596435032923669662082203386259676936090759116809069391618725993082540093120264876643723066157359096974460195216637759688430735005766304492656348790109901168809663055442547533300274022700687203978240262167384801728574132885783726889703209408602812714647311860500614804300836733609449810353975040068211754483768408699692868613079511663120055398089963067946700226729277808347374055667301428828235834020558343985030570239392253916513315510558440254041435882836953198699422817448548117623201964294600328595152269548687052209638820379214358429580564534916705698974653897956438332396466108462559786331848849496111532907632820678587696901829804242925350225995941381069413619559522485258161346951824036740445834935869220482963639221368271952913540747129204782581077987071141106990942743182010403205849793421420831210712784747877614005528630190702920196342321298900427047513397949091885674161111304445555926059543940152880928095191082029494749809326059647862055794620218945137297462517181506517042570129187024212026571410371305938797218603496974389546511700530685576641334376623487817368375658224308674055211415872371413431541134953163477240208759513358754743037348309384482680711448603093195075102940550351107379931050982697911957154078964972734713162111078350546572889515201528724943891043703974223739603916172139062496269867186035834233110340223588313134589411731409045910606622765216512011647020948937911422569889815581186135985307239651804428251601060474492614740471659712652814765733650963418815098182017027440281200483931344350692100683690924141073142630562836511662013886855142135228780153412373630485835160220715863479546969490395429884064341795984270762969430555164390151975914454249893153486774206388071938561739346366621012566074851755795588199423158704512007820106062677525988297335181576381518644695036190268019294537734672595678766623412985108245699779437552249652967038397258961579772525227016819044180989999742418316648352285316799214269392480249494725726351000179562734316987819691662878721863859596840373661333109441895739787634415738281191864274348249937815955006708592275939085365664178671135579372945217776389542356919952322531116311475242814742977450193255704124448271715518102859674471186038672011678913631605801528618953449090381612400457630928336063161035750408892514621954293455349381511685477723360359552808599357902615826055245904593808116867614701575074687675898278251545560227342266256416872509951370557811625109232614052427724002054317278466816065389850822387420149206222387436298192863372260543064664701344528462699693451336947433779025482106569886357385853433144712430036123208705917053810640407542263181729117178955767901985370030811264707461679203693074661980724673468017052080974075927565684329048531450533621350117847806406200354578178704666066406039470791726283407833622793284684747894475118135906271793794174224488719992607757970371907421297263490274009735052652870227474663492070773495565715710640902793600836720168529281039506765396993840139175042499579225430445269702210735961735834426756659125110637206658538987974625009410741028841400138084329272554006567325982680675402190176168090765092112074152655926923739959734723388709998952554039725735843261059067950186698144096107545629293629554990676015564539765280000759906014640847941626544644150617874278737361987198478030476314585525128419418996708934298427605207956610866507564307045177085454098154829402783332297490278199562163311361902916191841060516084204755214419499004172730630736450166180753830954330925686455846188384232071508729542606135005504823458607284129051615485933945710518829597313744239460916419598203678818965416835403621552610810140795337801922071928734144279591216980235886982667446241806334071126698686212042614557469959776991258166852420546167197639594325429404825230269655670680453421628799730935876379941447371093637186858609347517398736423608550805211128272568814510320524823110559537238214491560457966327097993538849720607556380566096472451301466146829554538176292748631617346856509531405492235647071928389606065734825593020776228707854400453667489571876941059959253375892899477577602204475824989101946206298145402558551045238818514658321069020550753837608508379648104174174090088669769801235090697084429143970307693674177508024819673741174044140035214020668203586165302053341965674889155080133742553075583283348125190455018048921870600685081081955352369313807128480372805107402829220822007801522757072850994459537858492023461193251133662861253952437738307297788120051984348440116775670267664050923756114137804633437768579970705267102608515586863020726176116554038144491137454664364547787084535823179467419108805197371788189600324801953707051529865453856885219947674015549789385237922153347872348733094482248761379064135079543827620644863613552107144432392068055786698528524008033025212470400657903860817203431019157373736958870540402507621879677685992573427058367129698713065854913874519803907398798739336080040707937025901158081045246841414194587430534597782083555933318220846551717055309236597694987481863357776860694637039930821040237707639710059400699182508863468728410160283072877784731653963082276570945382093842438181559304119993911021533011454109238593028838948170737452136199371610120943059592719642556124948186995839229224389821780514695369676821859341404266883714802770693662380587324918126733106804965352636707082670062161034861667871257623502081549231063348770256455547898451061209830411646949790020426106591992007962848611664802667585931663601783591487708654811441931758067548048736620164936663760018254021953300395110144347340010743008380213881581810969496538581856021998945846022492629590483664728899597054618730700299724777330185405868757997484752151491341888517519228300678940941683788428350741512370299521025226717888043590908318300667508269522092663325005860212034347521832092557489540409364558609382647346509392326186410283124128921607494719394957687988460203948071800120927654223384918069615609061442704083346586142833945251348923423163847190093666734650315577948302853543836623432098269524571082118954887379772365999584573759625255062773242787461278665958929185740711265108786008195183529256582218571302663366128035451118495910804567308888793850564521694220717851036242659570745950700634468832730495124445290585780616182057957571283195943532957542466832193761045102707163616365531095816733764376488782712610739801389196176346400812310664457007948461421901923817626421258307439798953825603895687662666359458775674453024263743432152314690509144292735404056033026017689188798743615515363156569406372578933231176703501225393478178093445168167984128758579916284105052706713843914958570373498543610618464897962865469931702004870498508707318922019579281007454886936133190725226003652884326488271889751961057134913106994357461709600983156713991440966381595666458775649359499324018218998734047971915931392314534001807181346456033931807594049002530937984390499360960450935809156598705693643510100227662199351219769012208145660260884457665853144394317803147828720093609057455764343042399458633085020161193671904523686984344816733531520017980035647973350908282381554967799378639392305606483794223537574546694517877097475972321018646493337045309199402529109696933717336651208268552040865957403203900148350757857136103605408568609389461507968221418080183768430232561637886971654877268677851285568232861513164908117048282947002601509490296608174810041657049523821979007644706559894434440393207888968277983346107112330922867554414401262211009991170850002851255354920179576034444948268649764304815127558244372824943402677749198297829143339413038414111095953624476284575342622283393475100874060531697197416246980629701195840364960516176358032236985733550283537952980696851651362927109837573694962195063047686974739834477629692003936928740996304046259088758925287498298011102057457070369877455743167202333313115554990733318296394265827784098148760535556432705347810087347364072442504331284246332829762532091037557254844584528279796228007379045222888182764554816939801506282002182068721308756526290807468181875281983343856709884822045671711460287310829705667959799597297439261367994560111832654156233599083398931724083663591154964770521704138199352421422142088663825241735562018666197601887414038359068127953855953109397929936141521073150007929694168196200966890409763850598726638432090112820293892176233188025804440793838445392552569994744140196003144611581846539410498146469514335197562785456695655143556760670009916978059319497710308193522248367916751425650573604004001265914720331357095492946378894006658759534950731902415971521886081489135281042212485906309664681149311434989634929901210861070825316683975631831096189625987751142066734081838914390979973033315443668211000463033935941656571820377682461247837727715337886927229325807071423203016794281705316969777806076421246673772089760734691128506081435212557639290595464589989771621861804858266558231320232241777038564879611727972901832941545670189887484835611580547121047316825993609172327381989701984419359568511595297895910632836492757309934392200980649759829204567136995486747538454802885050193463756775798921221535983811747545329809275738731946956559167714848798424863072153287162010488302134573332974852684525487004791826324701946672232249011470027227674500361948526821303721268045187282481058691507683774588738117507253950076097513761330674944458740071288906927128843871913283540531664402798532059722199219723226056024731784021925093686994910057461859647232885435094321798462088843070879953110757222242769238708363759640107259171966348929510862246187849034944524931140554295796527468648339571381787653949718648200474141636211598684168562854270358746320258633630569881601134340466138410774450405541848511846125288476046747990116333208174412365385781746717785117802735737930083999615266088221293740157289709231826299983460794197853427023381086194344653066485313284099697923006636734757751544571755820716544224920726807004000557975921171915619212271463921179245384832232555663908305203958039611691157085761767848536606251251134473723529095242136884584587154765845448614086779709627933194021676274404449485854048832906876302785586631751251470933907137472211766901398519653820165134957115413012861049647173275605204239219303735846760380311982419105157345672904748477684788021950657484058438991740734016058807327175204314290372665429811721383617332333525768149898581374356200829008985373081742183646529594464760611042921654363548584985270516420118667415868971165650080740972970859518823524147387339605827657701836868747036812187978924597219568060409659185077057907944638944723523595608743955043112219028499424423829974870255825547562747784712233203613472418036647019481701829858370978198985316688902434032137563526216438439199273690794678534488717894040674733168700494518275072249068324322720816160743901969397567458745878844205128192847977557750867281887339279921698557852915921341990438881079426025421111257631204252640572079663856103532138175384490691846061249500115851444629575871253472691546157953803792979910507009119064413280609484285594539203028153578687901474289116460800367808504842278464523853401170137194444894340334959971938321837684015249907473020813376806919234855390980839505546870039778822307256751020103143539000676251344915367067711592760871717789294789713763395443838194098045341754904737254201907183714744396867991291478157075566233209761259605632885577361988665536932565934756003877948565069487016833238162884188931498927700441537143026362027089870693489795655768680000949932682712747658376513457885348419380126953783492998792872968340781792187957353276724411578245009945120999788782597650953211053683660081021984146151692420384485188422033812262759428251440124527276409461056158534854004882930748630696291935121953280754945056876381518727532394951863418969467400679779066001174238700510297200608582957015418152521270350416401704655017661700807886467393090799499930640780072509175652963079544731593224241054909069682583125732354426247253017190185013548811494734033642315483744439507635562276619764074839333281557597319543573778419742598118193211280191417088775155414891267105934445442796704870825561630942036282897619671179244319640115505800662488142124709529214144047023231503558129586227783095655028039975323985715623455267178045481004676479928925630777769553750924346197943734326844496339936216209515123351819913155533403326043822074164838755986140343855439970877949824426588107300584063888737910786006065589257179798721484568040391613498466113687260371866627597870954261487956872353290422329718521292180325997415280430248733442733175843622208464994711473132792010343368837230435796598266170967571128015628475832753945749660495178282311605027837805590413964894540410775161642214040621756891110478356024517601756483818373888747649754228983848756748108370397304676871029027693344071201616845457469806100923668895236141852916445513649223314264551926831659947605526583844563343831446113973064270515565352224816169253301806492800922135117635918444342025392968642532427125289794655174080926457242321047829461550435417402970548841106281857279065543337111654527795125932821704717988083883796672786727477071923000748341151672639116475671151889753772209293223477013079066995966010200417893922105164249721455527096243894589637652334373241352050260280028155426804330259299013414139657987379541812514419823815732233662296004294763980700294616822381773782518404249352113336761773324121620806324109953740581267116436837893066401208758104334823949550961550725934517823389898188742193449215546573509521113827172803514819697377738973785915894893286312382825603293687551139450607402109721756409286853716919572500566115750787025535302736976212448998962007158203954753318234153820004388165781459238900245912811167124294831039763202710608801904458135525355360744435415016349249273605932876065633387031295171084496093745655037067849642127917926328899057369654900132736579328666699266050730108438864379827670961731647934352181420715213920327366478867659085627321655407176811132961808611799827774570675406244026245597655607581024945803288296622703140612448663699933119167914975355948657381540576287490939345442769925325352875661363366201612916312921215331149631526663795622719355150373112477299613948193647922411549233697783425436114146277386846274881886810722789252507736771833865294012597574954975672993875669965514410844403118912187017036224745434954432467198888801279573351340160044523217994475196544190912270815708312554045773699658137859181797707024773690320319510662403815594640474689300090602844299311585859246488435867170996949106820162390447900568799462940739908413300370838682884334458608213611357040404344807947670184081067497695830769963698165137544000778354654942936682700376020437217905771001877205755913730310844178534285751789013807734917653757448236614626901759861429140515437948247948259395818904792347890407747025330002045543052715311694008726752896614336562692676379027792513492108302486368907646163775002388528108662613907464538691799736238186268061886491079651094700048467141627575335100382032880150328169638871022815222336583088852804812898622629894004916391726385058412602522194902093953375161109981701676759798887974920044904317134656045992782925008305960683321796119742935742064865263557089177373385654060837206290780464476520543974858303273577452923221254577986854647857490712458152369248329798382377811124859088518713289002915151586492534428596841565659521424371305033958616685336146171556469155951467238536924446783132664851190105404252156779322528959207368780346634991058832292557875134158967764183787645296860305124202132285759029365681375771749979810846307437787934049055223025603241223490501075543838213704002897820099933127122509100558340292004850519838889032456843603612193832655984837089049748084440572629203702832592361124265323564007236048246128740571844024880465554050387331688758877968227831766109630793871885490132575864714343835627795310004573187600218483947039204554470548548455232453139757355963004425553713078872036003673486419333128561196756578584722738287620060888646513756899435901819377106595846960662212743252145888966510071306958996272838508105480339147868648254717838327650412696418609745663614233640435933952267893364057162587324568506832658477389009176035898555681093824735687662078276900281030468895255726404971060214513350090051078673133251142307548222401683230723319978914491012782500477978011286821029959110043442705109827513915743096053316239458333183765847366854258602474835002817775461694859330587313014871643773139008444527412339372675654281614467448793027677578400316240779817676309025678008120297884095486830431558665757023624295241108838757977401881522430079779820388743517404430887136155528415949157633897308698168221900165289754750538176271488273792723073467403191986320350219107958238463772346638580593693507415338885709934835329499288395957708982832649754270014707732844528367678632443387186366427836459477905259158547062592318079374447789187553156976744838491486706482862453326335850214089002848181548491128136517033087221535125021417916898565889433081860452052130336937369099930851889469632310269706970345546424585299779544209937760566298707616357462354295360264151326545585603926941669276628999926322685575914190414669527907960626562120071525982231089058954140685013888680513663354919445729116342007767114868936782569901175693747338119769933088739652859375205644475262944990286967655227615462335861353020574398433216532621113767041100042552870484705189297737776186964505905099873875910821967925789442878554664772460375149127075195891180863885935060898616177279762211807078923499019194922095781398730152824213004994447465861875710529222356798232905176859388105449566703090902445067222688545552518525929442611554663532428886596704529044937092712738590649073037621488177217189049284085063420667216362569376966007714711373508350493973589585815742634690147425236541184439425326817262139177249891953707141909082024000729089403091530669961187854446447613000254467386028783327807398547956696628030969901496599053014533173922010619217043596404062184025052022012507168449351581122783544576890809705910166075267958490068317165978375420317693877306782014747828971967540234058467670811591766948385902926202471248915021409866410147704038302172194095551382660490934039723112567994944021325795191562855281314373259601118960604531811951226861094674836240458984911728016916765608594745143738308785460182698903085853132936614624735090374378624266089185354618972832989736274321735534115966412939625127489325198872841141328810470404776913223714772317504686822761522592791461187322488747922720098704725302292669115304717936983471966998459233957234726969634741368379314056213986501055181981588423605485256725701687476512644822654724009704359514305175192996913465823618146868371485498377675873495645254740748123170065723696560628351769215598833576498759979610631536049426388596810516098039728838057679545169470933815891275357276945415384441295646800082785789715906971825048251171985832828030666808867018785973753706266526711620357706286933925295709362121999471569752872270299105633679475747235051931561657546961631813328762725333057563297503210484901890462635979612163901599068020115501554611295154869410421320401006415857420586552824989153283249343870270945967639004529535861547367136782930710109883763943199344765059841106992602001911917109331758082098285067211455817221241162510746959287470590875349384861084654758234414205729445879691314526487246219821381269137910004336822806374482055423440727340325157123827574189982187672345848350904906143454915630709478413111104088560715919388414439377799314142169539989177591469321475301481664966153293258012511606077098706581930150808315745126676538190586175838825858033087701229922788286455447279913070833465423219304896952657024257140607081241164332131710686551787847929220107885109853186655106486580577299918863630669171247993900734559045610355256349549051911232781789678009195818769751138789563227277983645534945928610538391874582968045247196257566973683283046872386650189115446593630736544807340317432843439307225381524912522045708445375964465563296672768796506120144345351084392182303525364357370631401313503062852576394398039774383834694079150427702615464623995175996212395979208385634963304169680839048044424751570668637509615322154642955635518393523595205876861342964212404725974026470101780385476361051740269416587340892685495056970092210867877989565762691110869504496200207548002936583821214463885742816309358092759884825617444306705907370107218576237946851131174871113829063797002052042932093933608226657540272305329929874427859291369126845322976956070325067883228200808869819152509851225850540321086698891115371640277179372321502056212879260082458894854794530757148039607378920507505648414151140784415028720205657014748425218490051305273092944269393014381039613146131604538147756710512878959987958590631933282078489227058639832867533580371533705262178542233524426438010074930804286332823400658446611656705020575221730133610600402800047502685110847447294288842343186021611230385239480813482592503009814693208530480594909313748074116337400929324635095493358302526897842376825421673584129303136588161896808896616143693053251514455037532555880745392077609801756202675378615043825596921347919839968808258723489591055328814555316629234367173948870715227359120250451583725475638136536058527415126588837688200037854636203529882898703371198450221593940490495488721397787605636300119427574016964151050851210330248406554603824181941825916658877253536480859198285409903916559318834318115849415534269418188665271051263276060419163536499051075311565349477374932972967631144956114910134284034853487031470279893585902401392665901923421371873337293646520047207997126350658681522369810510983686239188020026755361053816267154394422291458889104120890009705633614984311308528379288267716443391122061902840818492348206754573460834849168538160659862918667732922903592915283516151356140694232122989487419684268710242439108723495254530636421862781027926899809732237837794502200652448730147525166737658654202927985843560624984060030639768041099259296235702547413749221235483077407621199656960249431335529838857123539064269012668385557122597532575901134270148680479679472201033530296668281724797197376751321839257476966899642986675078718758566515841567740197451627017968961918640521900460626660048993750130360269184246527371743252462915709494328402554714358641357827120038666440516666689969038338712396232387369158008872359222104181784632480314553164004614205551633998535600636281159441152358684580404504892754920278405802243679676828631592483861712834574655917975120882629693516026900796164025484117361111274022805654102920281769250761982229051641575870819209149013373557170143945471829041823705982402963767721419000828903327118835560095342403242849343767715949204651950738943291306115204282132926757132641589409576416301974928979158220993570856086357564665736833028314371502893857093307070486363320560005995006501019380534991056833079150267563160620168538137158788710484785058828482856890077383267436644363607130130765301725664675979179482972150593593403830472013817673531286951933095551122015317771372984001018396716831534725161365358484258583761435641058035234517934884622814635009714663719494992525843410977272951653430552449272523765982541817879866188511261616889079994057904006844492595301275805914870512912673843605160623830532303998830852936936328510654525981027191898934631438952296169772686906718949456795813772130919156049623440991667398040389968598619226789405878450326662434376203620953251357180279720734579367641710080631018217950585736597973900439350884362815030662168098544724812498540337010281715565004017242445087065592361082998743734814988433056119815340981671317267220315638366821786485322285224381330359531493353845402651763829855831888115732054769241194642872076955888521303772297259921510504135661052026918784873865051315069325412204062757626947443950622687562789143469089305757254884937037003403469570178965266896215478640678003070070024011238485819542972173579914760005805433825911589332957257849744790459361495561823985812895099628078404964511047237751195356770830506657011602718126014315708671745848460218102166150886470175427710368125728517860768890915282270157825643012674398601461229497710398252774182543358430456408973917813789530059074314091892209302006258430290961685911858927204452400570691943494695234351176817287224673691151361188113862896903859727553198088553699219144121540584723845504932726601463768154853472756131737283551032957620711304573107962669596978846759985377703106182295681974360755032303979288273206611100650672703546045690398393212925188887805920877205651839500712812230840847330076114271756086101471946284237757876155268302910854719513211874574980909778805730484689570496516376575479728330438546553815563328612682202083922538309400000239759515361223653830651008140917468018310216475043198678443157351286247217517954613673331898801103578040590894522019053412507573394708822843975553170158942642998146875962235611985027930680469720155495237200441615680015653115398122515373785335838504688148120596930601134452311235444964003975256794303775700689268649604126629225333151732716809505412770793115049461555106120059991028902817499494339162362653601474974708410272392611985446763759369726744701255632575037196258074994991983371399932597005502344998075647483319598722381929335757842953294425741085487920665062895746719877026785676934185189445855079463047568390745882532049120397145318808587947004300718280799270934061308747157485058906096819771028576616181839507566138180232139306756645813823731239455225377110275695713575008089650790177266557716963171107149821548411286112696406515338369303188166065516398369744254774416575528346130550241766239723795862958416182341968946598203248506703458628627533940782124073921784117504023190402758018742108092479100015036742132095102357688474170916544546869389184036987616277451682620315759084700458949874404783750433064169519201521878913719025478404614545742148633134254905378046899372844553170090531111245773574213444928920654676982503885435733876230387835277854943754587381047702945080262207343506670453169940924800122696903733239461149228813203632934331180377101421706197763139636494788071556395422449869640090274386694806722893371933511627466588014240268857034032865998755401329147060347885740761518877740223115723181088153076732589615724777622680980255669906236941118377144017072619207480299103914256008746771066662992946407562305669827725647485854301255907551541924865744591503682627263138297890772071120424819911881152534386131156759470808801865884386259464935640557933509536790324771695443501656389405991988992640321968418989005319551867837059783051482265659535576569968340137647966440881394514940576125877951132081201296140849137394877998946987688278261834576539099056710723272317999798775988874076249224456965197881918791039031973167958386575287324256190061803051999754147096862887310606128874017301507114739408442974490819206059412770237910579596342731499150714397238200103271515216713430745191282474633992482528764592922046125141897209501666827328334335839717829682440009754684890350656885883649116970142681624364731544325118581911301349592490706598718272627243944955822506706403099757339912064463633987046907755291714302221218741568170685115256051724066529942565880945771266885630415483458914414369295967539821644915098485524235707357127989698837549573875967913132257134958004584854605370244591271154859630532753297284474864269074665828609936934739738594335041665915347870248575922036094487891258204816068571031003102996766176299239631959459362941696484279907988851462592447442221996031298725268190955172792803090095713223754591207584322146622832074761463653405114151507939601557457453793657476818404036583798362922830912146407783310273644828077623738057558099800554060497585887891846412478478699761700824902779059229240347682070558555593981796040013329557231082434012518801628939383946165411921652120509878374550157528185196368795472603546346229152479732298900748730606018530205569011295165107488180268781944439418060294032838674895645634134092318927874327418907607071869622219593599348705930592277141701067496006435097457733440214014278578641809616625750115973849484989617929993303440944558936969151336986645422848544774949745882220123216181672464879243649652896009125791148433190608783943887432468357870031307258205659991736929563112007658127284593341827654399021219886275697356507145052908648542173966278980755269489666125524398346860851923771031186824203874254055203163610593029366696028256881368452062053288459961035160208807745463963471079286077010838421025641962804888856349979897791606203090506439153419937864147837198828455432080591308834378064713454029865913005242948986077778296778306347373194655218454600634453044420368049102817678906858522523964010940878667720543318762345387312320972847724866970033877335832548957279057760161152100531583888489989030758014534176272326802116890701076758797608578522428863684901407385940762513387125396633085547048932459001818519298042401603983195443007934073450450238609633069084509743454014110664204957409815181620479338977278985361365691995761854913941942252801408687924284983022631773086279051447978942931907075783890068087430943063314191355883160716515974748575302896047981720804448968577421536427427941165393848302096901021469843924329800814465613474300922849881345053699718138605512980185076381901534418241787019220109152000287133426056638156604539436266900740708236932982887150537842643519207089538021349011648995755555845034950151409887367720083173375809422367446605313253469091871550811109096998892526751270285853976119381208394473048629844881208510706921601404090018484249390388447612718226869375846484447940458113698906159597768968887586210433908871864776085719089483529708944646371975645428899069927316801104947605146199384660521310916637435474252887559206726265883156347863906909207115041306719222649240959472718436338881279312964732793473516504667547275075715080494759218071722615413766303347794528058895973825476756568421118006252637853818735174687335850169587973988707774268517700132867980058111511167104850811260088055314182960471631196818849214639447811026267116367306972649977601221219205331470178399118507354646837315496980883494938908119109806375872054814841360492544550705035029028629963356467250868897284427086094916623367210082069912515348496526482890163564307916364958038332231160305631406845551536773975000772802396525466989653767495122589158190250797570644286560471840836430154289791536383554588160491386689631336406062088419211880744796860235983543122771086830633193914632367764624369969911885839738157447898218783160592756676036684624874508521205755672973577833260667226124743750872434371258134530081181521500554375055847956939353368929994155086110319607632679256339598932839817136969532754678658944549944413574943454642726378133138710520557541165727383823461249117902069612421106497121719392323590209280530858613217829665405402618538214898635980808390398785857371646467857460188948861842049067155053952848894050640893246783568938662249162683648284599528935360368331256554567664268434042236505680559584261310996614326662218427632759431019203130806839902110783708696336649602845926427012667281238467790667355213767032466784766467005639012253817632016962023538495908544780596633241947212916472763143097300311026873870235776035160818935899844466780025884119720303695258237294427427882714412455851596588213206827897934964764684392325181467591386207366222490494613142530413598597983431526291226071498840489388201458248098603497374188657106766494993326882632183805792665786415864878913149793253363036716036761209522520837625967776097195203846349157887122695084270236720279166440730944805211469194300025026620579876713150951281466685708761406348731538203828450080492229247613031201020958848536081472106216607504415328893294757065183780169499600003935954657537110319698370372512521516707733183113812177924094883229444624697042833154062247543497266678739877451394580076994006108906386621215457603506466191910359973669581842313770745689110519312830884733451257429002080745724502895216575206988438124839882370787193641898887049873280000928705984609538588850138397002478424840871520112227132281630608135897023397035690093822433745511890888201178397550043959915699721650411447342108130123366338999553864580167054870340681394973254422429663208499107234204873316582857864989088590749251280018332030261198907611562015177090358800170561799594183062946244697089237886689133469669136469067164705829346108441619209835534585065575855618656361422563340166033723796076233508789992345872045814138792365863479449600328100219612511390704787158453812356883956035744671689265613554016784634874003769068058203013325179833321780638574293068639306559885810369677315735745937817151811256984223893606973520309250359793109241652308262588175301946461249676182640641903149244695392728762651149955711695092390057148261620882067285186036735827968315370710389720231219555314155599964923173551910989245645533095496547848331867039682748559670043553900125096506626716377668563051566844799152504168551674735234483213219692704295777704847078944096001477349540656321088871808115421940795209687980384989035211996403783344477864654778884407965711662911317610257007723631287255609864150082902378162252145647882042941478145835160955722351244528207135807046624730548013062770262364565298929766985790580149528983414641177254578403982724751714477951749785082823295951936194754036204796543258925504341903285744415416941440786133238566962909476520269708588771541575008456651660939925828736644177766273350982576125614818612967261791757957471356929678421169693721626733256778620237939968873795511516865124957986540133757199442280255611082911656427970717179174560729600341477532428149035936971853361632844114531454805924312810794169259781851948669757572904645404701049700860799426921350940718330530012753102482462320606695749944497834605441375394790522950521729606325182420520421708145525407699884171336862430383437004762508653277083637216665479496190004919010012486608504901117037650895960788131090394421599462887822572986991731793711621243729544160813846493313365643605883030657622745328257477963112453641128535077203366614331351313455158030926002481698864694304179261274089106358265529406576873016882124162185469482658500509770674951388841629846367825668051271809494588467203058243213931668804063111606232486544863393577487761635045529224659411684649664678464417392362703025302272373709229163090908117489779765651808063520355523907217824591834270478183187054614453764481074346306320262700473001911250276367944533836183649915289840254403207789864714482008918928882708169561854279669784983571268037243848885529687916153233271106912033689443904570217213980308540418125565752979946215013128489861969079764328686294894061021906528534707733164861695056147678041300384166626010321348578738881032019653095656739806911170900028047492403065904369161978632305743741736249115566872220679310123502440210201699991074342171827632010431629041722834463946459935877758894459335177788008538206252645528837779880869964222758252018155033042409853382258579258909799524260882268052525317263293318994244449736167645597063936420574575732593834357560888069827062447594126193344613937009515309516018547783405997188169484397667324463297044725060007753663239570087282880898689627283249351789074203782591342190363800061441088103164943763127651069032156018802758317699364920647286675561846429894439603263023644933024661580866217342102231160443191371606332330394971616446781049869625587923606224996100869623507985656500348064837733440352516452187300210906610116319198745066936010060623983686595193838520818586401391305190777388890037800841268033426154389331640335141743185582360813825857775618134934174829656603493716855408157710405717024072293653289625904504139028778112982420085597503870664874166134430308116004300783653674153857984420024633863208578468058704584989688284846534722550829084126033690963738727013676909411405836029292291158092556289212687650335244847235170626267993251752502943922609290490588267625263780180028364530717466766495852867712950244762840259326273304566620012477490192654101706537996671338405518841256055545371645991418881644348460078469103779550778428787787635629792941741533492738060411322584486816348642042368920026526703455945278055187515282063228088510620282326412843608482657804685743314589456644107013661511395998428497614724386750301350758473787116280272528547976186763238997478907722449072290683323143009604347977603084209719416003424355104927010948253013501882631341054148423679805833817303082532084110585398936358408412423285690103671399403282930402867402220675996918882783899636793221652284126696679144321433529741430987683909433562541220275718479622197195759963536493010645304313562276664339627320598404042230162853106152051817983691900700143137602285533829315708358501938818774290183705542290518455588238430565485966407136062264305102835756392971804059785589633551980931392872365781584325959266752164051779898418582586736237027234751623371439639410263742046860484051185104162274305199787252746929241889885557399795545680780613975634486560988755155770129742624336590881454568006103274857002307678411212890635119544732883468567644131338675331008811512555803182898889180781867072841572935595655534391665779249075011529234521191388768196863531809570075308063475654812519354988349949039520885606056812617100145196640374145002873954519502140256015979816274734706663385606304660369943460692434352512849111631446082347855689933336687249074812748393502644545997605563587811157541142386964206734950674885603896506328973109408744723207035717689666902810170221512117977836468882021754072060252375666249909118666137433689530636818070046271083239179365912566685575316435378085940955014599850734093561623171277174338226384868169126042569227460966844474938481160351644681909018715068181362884707354280837337817736919346327958228843133502622908157439975294446056136296768303082804176891142449874488507379729745935106428707912531484876114287260559570879737950758434127241935172366891767947249319080758369327879184658292546841425001148990084793675741392474901125730318852193583531211594573395786983349282609797330190288030730855462969744959605394698562850603819831157345246225214538307384229939355399272365188988388684960122772774849798974671121740759554740454524396769272402966710222735601910087308381566600054503940757683858989110789332669896010036561572890766354110033181421245664669757820167970537393480994940925955867932657368981558381266974199933485296577334513679350227291664774689926921104831193420599924405907351119591607645793217617847997609971918414749115228003533147572821924370554382721364511961093812381609981605302304602094475250895302527580083816723843750698995875047145714631220537623842853061456006088117058777051347472537360613062562088289636818517038895331389552773562383380457185220533188794555870007986015349850113822995936879361725720096140892234531254335225019923448050034082397974483667654922767924200185921055836431960951407231110744894641335270578691816414731192710064761471650421841574468352574790649504413566896911384756863808911749073602401675992892625463000510461905951481547380474534433762771542956475643256350560794342922553679045432962436376881950975506685200593573921718998880285854662287038873585149715503118141199950256721947204432689982626617977261224120241331390120494400926522330355365725014737224454622078108445269823811841150491934440408399016995448640049844752785319104832740331113817025810772789925483206606382518687519660437214512677514784731127458393811377697898681888479913236674931587317907868093803114248569195601234955860896844597066895868301787342557258873021302434062094852209734174720328231666854750107231021668756784970526613384190979556407820533493755575072154136820079569873003779076274897566041082903515299817008423866081968239610872896327144573517123509959689761894230387363620487229810928189631089071685749551083540182039086444416636618851575098115580595634925824960645812601612554387449183344966034373054030771500374322407898367539681974232778925324630338510178218337840725801681628930668862687348261315516377220279683073950356605641895543876567973722762353071065500048515125275454802682711045310384403821500451432256430933012369274605325883977293178050400827151953245865999396204063121903069734851240536963974176763919242010537484528145871560046940859754915387541912631233664538878263344257860633548463814998701719334633218934749013621865238150898935420028520655448444838079324387166790319365773903640548472650868022644960477250701737492747918876181061004885830130142351770258146522962787841749128026237119337062386534485347895726321317067251507082012362857549731699193016799962557229489964249241864800739211560793419285696401266495143989551905636509834862254383220831980717574730287530097932867083617095219220130961302935323666807665627395044045796044277537656095136090135858145766176859291984978390766102953356726782442121130143768128258730636680030934225311605111355805438353234040862817018251979895252643183152754531233940210619458811221899236483272779850471223382382147052415240627067337214949885398012505568620016103161339969455324628810998238115396373818606282211822315597592603524482727172414476950678973222218250370779840013601303455653372571516377180721926063589378442616737953292413494399250066253889790416281052322133309763717264732601833840962729664597025266286992491371158696431451332634231158597917273722751371154559401587892757829115620124496738257052038002864515608890753324180252800205839534641311343817555650998258868469743296893635063601484382272782603284735747069220934472518149729140977343120692788396120621426476153220766527730976683860018916342469860138675217659052353077304951599710947687981703670601055078276659736486697390420745968873059404765509892199374493339938476540680702006390814507579238830178050694880361718304789311195091611131175543836011685336108058125120964644659169059226328046230607672007158181441915864076174814254596002363029453802292948853841897770181629280409943633424849408829189134545284552520202525035050010348531635071012767359273010213537464831066747665638487475281662882338374738990917808743020388953536455370982326907714580337709695144964178327176710868345932375892406880299220515912771197424835986533460337862616372857228421173505506425541218130454497898249984301002577622897595679117632694529004266882006634035561182858611040292524234031606840972968118340323606708339699082684664617271435743453650423159404963912667136224632546944604988521799577994113590888595387516012003191852150737280002168063636998423784615553278568962594328860222708255638141720283142104860029635552026705856505588077902895662718968826503392299647147057548979343704463634889816309706998019090187247633597207442812661368059396499460662270388550048536944316409684949320012107344319824907035197966471244837962193670357136482977560908298321940717604735381513428151643963818535491843806953906244687717272632935619716044074160955074281697447832320068285006307165212875439593390498824491372955186895909640480348912695524819932876846436609780300897444240015486243252757576857720171709910408979271211853843036999763856002309787114388916376067118295138965905509357384775506806522674883760375464803643576714225533604712499875750955309034645783692904631544762649686690706035494709930610101010950445939863406363576023305479631884913268320744449650749112915381288742756275972601745507333412166696913655746931649746778365072445505826694458092548598354303048560725079593717052572487263832299052369835322246258605007835875124138022282227345937608362016901674384374612506518063369766630583464411399997945766512953215088463714911367803084645707826254988019755480340392048943392279581051063012888910695474192916239902506502504504300989553871058281317642962169616991080309499965470473715518433759609718380640886018378494786727897965267699023801068892512082928630103221171024679401071548842589045997033928887360889271480421955458028566842268027003194648469760276925551278406551381400166756421173802761053481467616089578123091846015787386655063754176511719332146937786834575390821103066429986873225796633376021237488334689601331433274373651824190482913471741767815902228363104092078718447795399726661333110609298410722277644231523782167792779598180646140398819871653172062463814735269846779850046470643843416626385282389779614219295242462800808472586758126932834266959383290733778953744221410321043213820908582121044024723253229197850832229617512547229315490714622949586067646893278073901675318174021878576545203682607381008644584197195233682433191821751502224623906883231753417808588554174510853757851910713502953923412148939357221331074969480570448135293957514763286335243145117310304747709182632745015795151909671254774145566649592446027620050177936059034431059256439145236422472244483001701423716045242935994741169680338114498990933025928388492067889558593727029810744699445598941151627052993699160767287365433607513077332602784835306847853478043032044341534659125471488492675065530267587800547518745013685782704456809225046645891011934903437067756308079680718266886121111032828557987309558375934451713770622300617689544485997355857379625171227386106863708041738374703791826201483699467119662892431834195651253254260421995503054518905981110718023854535566250603311152260588668872899609622100840002751701551151115121169670812138310456256773492804791763022237612276069744469663613091666055752606500562391917262854530505918366257990638784572101509233840705553563579319851133701479147395456127960680387587328924807011376255470840968923489397076328685741332696623547528267144256271062088244018063889399648163771905627232663155841548252067229361271354667088458366330445967292744685263092180259118205456612206443357527041365299152516797421036210584116926635677237552487173809039963675942471749030947549486166760465250202769242667470495367831314361582340542281448827881945713493445561834690619414611611197158653465479778210217855261450942384710568610257860602553905433855571554558055679512802878541399603723278734440975270934274073711073252102579179845470961494270919216948576853206568727946883202042321697102234167503252888733078710383471254451276600622871944295568906212717689040331586357838319022768995408811065819815041828932427304322909488298745976474535686823267239938608259625754983363533129663843824732788566087438727411513616809061040525587642047976897463166019493995833676602591319114911597142826222394287546593811344670811887107082415736035602936406183598256926277641341563829742095855624768689768918458351826329768297835057426731117767015826670370422169507247846273908253881968905367604151445229337438211665459175590701695584588568348910269223922773266307895606795631803702393800471935136820349956797173720220214463664637339551549042511233871002548731704584228723260358162951839924868518323027390069968908177974436444711768336951854479446281698638463124359261711566879518350982240442433066152110650411595540025453103143892192661872719334631304189974889906166436098986640820025521471014068090590116138267311688233477248189667006138628456940564192621780833281172521643127255345686502686570802857887551815070953944836534821639228462940081096526693231620371198637602190981201540855230149899324142221086694385438084696089678133200755918528092974322520230225822456349538888684870154530898190116429007129076370233550133897639211069173096036428535084723680195603160309745125146962837801349258706000511704695033488978504033549867851004604528593782687807790522550936127519774675827953296323214404320684784453116003159704664215531138321508966900103076142560694643533199399585426365509610769689323643233602749686734682226788227009602293431169454122778856154274885753768419853505081407484804470947810498674654264508448544230081995716332097390653874886578662778793832501580478803365150502192480821610455760254728154166123017806337674014274711179397172820002461963003095205446137624758949971134974058548375242217319619876815197717070567322737858733639734653148599807497773498309056089036270540670549429830659664028436281705636057665958944945979140415942609389381222237033821213899561610445050214360136949781692073355202990150989517842761037136595329350622301061591838820591953723078867549664404710396016211572938261361823525245417959932473359652386393290325475487182588176396334171530843487940702110936771461432164244310930763475494334389769022993116444220847185799340603163308915478885844620830278579849359615089135926745263299857805794755556186075193909878832475723913491232119464029754561164006895745460428091190832173527426413838993295276358856992526709733037508691261183306378513552184747086836003139428332306896308121302503195044550969227243202735339920734435726653290196319778322659472534613340109365575634129859700500137354416802422425158458016081114328073423574095413345723164784355407856561567690053352349706424873561651662228683844554014917199796132927175643915246775055493474582160787667637477727805727363111219625745275464284969531797840153421323316347364474635929083085867917080107920706708141938598290024924281369985416136803993041666011405804698066871260738348209015028747605362206332393697894188155681354355003809549545247202427032321906805002176422943948542095377488773288992362739793841909964513948595811452808223393878790821046773944854093656533225657027760186935091894659249963875575637119610503646593974317953082670286639179525453680823447508382911475987328279034758768007452537617706772451630427989326125653586618216627212035460130229656139451088155141465683099048130362220858074164251388258874926759896650235787421393305817980238893560956451233127290384371336928677076378965935170084446098904864307688198510033561630929837644369170173339094331835112721333875251030370116886347259772983916577566695567331020555683929893629381707406011575658559569340409888449334425417866303242039242967916703291872089131237617379147285818487463968071950702609542768175318191954638923914786885822029823854960112943896820783010841432210338813344647599780009517840997045421912716464754195773822252745565716959670010874179102451461733554127950080173762554589978510183114652336990871951239891679262820305274452173520862470979422747886294646543972296981420104717408905871253970890945550102422530088662031653521117441039490549549135018129358798696954379381173392684128960696788014917771738983392536997181904881136741448837168883366121302855008961632662118451625061876849686359185296500274512632787777231723274138113437736266828844077320419523339942449376213145633270198030744430202935180188360860245400883764314369042800235816147738549898451290005676602167668130591049436236637980367934185970632125406329831229191423934550411188153719581207003641051185538173638938099472063823956013429853686835066359244632081253151595520682024058260363173345461219252905533879794628474823320584636884022793797033059353946549867065942632113027842053752251165209169866339008001555589038271384660466412653985464679714154355391503870228348379528817024602137930628806527364526396405251864718073838927779377943898199463313638650538188307828158367481976224982631807884835426066786480853260192180170963581414493806668738047029495333444260841554890255897424546733334604728115923906547160865103972075793610979592642911449693455772072550767464246888775801178703217551563529721912768974945829716561374099903004918456974495331814377479068981456758463422669796901564728106348051393620142118502101070661437138862105993277489156024733038220396247657085001686935246533638662413182890918161108958861920294528088018915091471494370479666056878853393149373413648216119418241808187715779863554895645925411139497880413600281804558004732859496730449728097467426792419195177745059572093582548605151602618941555327142331960502075043152510477818958146826445943433219882714130986053296030028063575684732882780466633640341020086924910119799912529940983132684781239551799114849733507810335849298067069683378081651905544200734459994776115892622427143230821029082617246941229225481742183586121247856619636355718380189817361850810344350326775693432053506947764923307302381363519509846203226435558313033510870703816350335481121358205454163281904873502549492642176254434566666625953499082581910926345236565736470484010586686948644008275104923078180817594235101601926620240261785647081778503664437945562724466141029985657565986657488387461778929399119134629915737765248641683823958846180194600266099367273542112580350913843980753397881533997333488149602381048866857417606447564359773940246573303287063846209937879614206262799224611424371392691428300967933334049043886687175532478728469989449225637817607312790018465890977800958418543347491511016322610230639152533504215589571288901637796267746241417386850342714746022085704748633280420272442576947714350357014478751735693417066359174037412958333209113463480266613297973688746683637926184671662925750751658725733462327421171473506863320711717502160838485560140515623011827558811525909485461235941676325989410934523116061692855828349533527084628680348746231300951020007613297295827109093750638185970249040832245313687692000811140354146367192024606627701803562300597618190478271953207785815858028480729709800327217133616173079959139042848259497152833942340575606811801781512509782351898424637850689632809325441390291758241618174209310303778317669209236611013917500486281520834530678375962237790575108819015336286631333461612557085545141760919008635806010966530939607297180403834351346865813143478610048099865733811013761660261417239904458057384457278475277893630477142114928752458803491950203603687851770271298354478871811592587061886526702634993884976198853033142524245942679589329781753429469130284536816278330704217116636949197484934760097122285442100223473219434331850285679089363444940883551139116117168879451252714014395021228875472522566686539776780340123568267449649146491267480255444310819916518810882590408865704725458573279213779569089365899989224511459201831852910869941427790185295795415248850178088729621854151682549251270294376064086531044868800968895876438840376386535372611334341674015833164967706342583229008482237825983755419612334532281106842809217470204313791576497752631937697936997598011639235475798849047725180635607930559502939118059096204806203466667944936878142572087893578623160605329564884805393456570114958868660397626416581907215781242508039227062700698823248413911085907143907428436418005975428415506565295343319087907498377672416751568165526651573393033814151754142600839480075577323585592360332493303000149741457218821919732186691432127805034413591714174835265344729305608948911105479036688503370478382679699653490066759380854645879531474977072578005746724858709355402214057116972145535264965768031635663813349844421955852643270544820899109070349664591768194154291649612094133468790784972496863378863375820758805006920969495334541722444227368421396075690385297196650695793676933280974964251753299601110707602848623982268409228542823157215600687853879758550443586272105170923132638997812968175279083716812793742925946685757298790206146761052192123701943696627338690876388265878803319268141405570187344415633281835168152985907762190521390735505382219950757840780186428874666263273572636271529582852890367181032700329161369498792756302075647122090310498118372031073761483802778452244328779470304979328827540872447153633854071000083382269288433579788303880063218755497359834449216402522563468479069963598878175372282785282649689748483087617112690589146711329437360343906315709944623719140365870393453892639092717942063026447283391615101403798129901024063448947624476639202457027180222070533276228937327072004557477211976254237441119499678535524269232537053761139209120995280533670636052611370705694248278251019487478982390588135885016932790745141351317231153252720351680107500476547533960144827810335662546368332057525420214899211931864413667427926778240643463704708606906456034454473488808405655990046199300379493410838865202530312060678760149167759331580791909721200396599646001640346173831333506423733122141986389915935547055922566178023444353746606469809353923781069229148543052531225723944309128819606657826028434667506043884095807607739007277244903533178793219816029406440852903674561281568113638207429386885653347314060736106836044162314729300731888386834472685174509346105057955256345863669492507071984636259926645470982646192292911295200047474515034291827483110286983242302423221953915332877963408491552956256279828820461302506506713097068982344033661640569899253416639821166906651332186963201881558696248966651184701172265587135432169001499093751826941692256695449298167325860478881682956893643805671390164217157706777726981568784346590664691883651361936174828686613188380395765275983941008398807945982507166336336912474256078801607919433792203250010584408881688707083024850728390586132276159294757748130383643819104160387278223329219498324524877340647658269368380301973843043488810423255477269189198052682631484245464155992538197914196868003367253633040313511549789236425993206927713772422128434540470454962808376539396605926790205413763050230145271554400743501827705653218478902311995486227723512522969485161903989588895645027622960820979607265635085051400895389062637642481957238633856115057916994614233007146851275804312672865658519807549453624007757927140232077961165096791696912877602052792277575336743643820364916873776861002521274131526748598034263599079686819500994570829172797164647626859435141590224791806607417483506222795855087964570920618513351402599678760909026990386483195181949069115956255552296858804614440577562259391631862989362680717763384907235040069165721172738695602350453085758233421923450836571298473124906531620958555802078469867948083509729088737103358513420251078449873072779885480857892614383170215243682459287286219641059386913213857792206319296211522174957104914391258698084057214424645140054808861661650463530973506906097760188978127238469149265407247607261192562710802673307100083512614374433783895809958041288774185371877581718818317771340469797328746802245549956332941100515414652542402195687364439566173742149187502509616849330269920429012356828125741028247182096614220555784336764958975619424949632612404589019141519115126741103749653176243976189647693602437817579412934726502677776229742361008939478284906551486647265333124461869647609470116103914860919828972062073819489481685538601140634261305876521553883648877374693415519766514498177633471764624384766458897911464346112165529928479754646855276831895588424277279403673020018813909336581691535666974761823686091156431450372801172359794286186478692686467237623841682416819952531322517638377534790076287978836527997125812742130701984257664701367953507669857544957648099598199944671062597602139349370704597200048515257347822843541399800235397364165410990081526113357463602687216012983655008621548932991845693289550023366613317752149436955750707591467452724071660116763736231047779557568224934013925415367546091210663743899472021520989226775129490853129775572375403414803706520724298534811139974061493222674955007136771385502484209346291743983614771004808505466646357709950431607214435893577160740105600273938800267997319612421691605264629982424589494990065995541775406026726675761497133665943768867859527099884968077626226703722537000905972289401162180262391658930996933884863299953410183335502168745025674142434921577087497161644982414792275928764597898697202190106194691588449229751190428568788645974470708694304025805032784607683249575125696908102657515439576726282526953961297730976003328110262365344892561087557845008035972944397110363391593760503126134181575590919942193396037798358858106310526489975644812731656772805294083554593906132898768285179164850589101484384991181237147688638200395866317626977228241806922280067074214570029248351012731132772964976492350738641763679734783756756613212232148851641937137444178427839436798974139089613670704035392478541770839195068105187701150200154004134115543140232647876298547514563930407494406592515230045569483658810395892734554148818280788267189206666203053437822952064546781761023963134892256240817037584727552321114494212504490569075321423091943674059667561361185374238722251282145641513102722380068382224766550875797863604255235903111177267895839681866281424633141740848049756508867293545044926610642395546953567606744862742102276686166803187683047124564018027129343843461402529163263934741528612718389253841512880774613984000849098529009648882424277181975399141080100911192246703656622993043170343265269752447777955678680008962556260226377916486234990533001991658547360358873923042019974220712954726019701423603391390360121843102428417029276320821894168456667075362521594217289180040834176982144018781881913076532866074728064072655570512696829406848517966826749697980548445608765435852243735080934663205870710353366656676225898394220657551609365045008563510076911001423429479003878139057838579951410592166448921834662491237749583906642064687695316385898943862540836541522621828913080518413821305064855967683537763928010068316236687097187954120232096255455659799033057905764049495131204810989177659572560026364504224885048103995010114545552712661050004946848473418593107090989084103226588908055416577340850902698181856040624099776617546469283372533476019541357830187684870440192234918736309148638063263166051382743423499504476127174984134316080461764944479795919238433135635365235146377260649705078882146311468114023858752977317638013066329182329039219653025929722395293787155328244496613073193156601355280108276468238726669298920359871170245148947228395450194369866830452399006573310941073135137563939785204406650983289542840164949647129209315886462783058554465121067942931331059611534837746545967957874033384733917148844492600950063359368083642163751179276837363740809235278000626776886677778351170422836907875885476397397198817806826127369400278803184845575068866207623730798435259330448300015476743979991555546611524211139381340553567215286800029930710638375204769918092580478181525806491303020423488800913313719937729604919674348812648460983095483755467596857957978927108930870671610891955322257246959490132295986194094092065856679014236733874049342072763648253942102134529789193487736513618773798405586903173730374222073646980181175189045432727823249622788219562739137494820995873929747303314471220673700912653310989745612937726063973272623097949054567743880894553277284816580338472475428234938020262805187001235736472628109013958139202211911607554480565724769034892799144763196633585043628591519488217539064780949699347232462200914423341743027518420602295968544236034267247032541795977279175254044251360159660833230587568567560257379172249837399528856042065158227073239364871379420338497945284839909575367982020454265922733513911547884648040352160295063666466958359666251937137979568876867806739511545438684657835630709860930061426456399196659340980537147021859785264308190018919186472693310116282232798125978706354920877561612398809355947838146111531112987684912616723910146469476292380612667884947328437244071305350873630890960357318849154058158615075610714351884552445657294579244130597430387430717276791987160982499055086014582253791374555871878761679354773675874293170894999159179485821226195317380695040697143158819868116810510461589248799020318030383159409793591678737369855188364886101152134645307102350281783038830028005334406808083732120018698838398722452785213763076898299829454950963743218247486154384616489390257276926264498659434479104752624569721532826840736987228565260252817108460963843472164166314436932316141553065608295378995988147520397043679866667265749462771721132576816014136412884466235534270939138285516402991328446015381720131224257475732447363822853237318232755592204409512444357239991467506277291802632780766089686923708279387429695448359226376324589040103836557634015129595636009757071845558707551848326750942520750822021176360230431397724716908772085919459071111983933170564130444058093367972238998186823053328412797084528011796164118635338175565983231441068042773580843902282071842615935683008624228757765676462925858406670558606909563580140171951740809113520458898800453223275598677079575125764492776319278654291307090154955834867189405122612180499032893571619514636243301905112452230751640712012107954103600086622090747978932654697253646356184164603929585878714101787059639684651019214707155454062161834707631217463045828928183001465605084319905168288796717087441932084563510051440581547633408029605766136898050724925105242981620761441349793456167712040492642575098699207160699228316196520488029609642953114498358428724630091253733549267394127131645164159684191105171047151851321321318592015587567258669466933414919079373672284191496732369903788315635217561700720033680459776804470883812936415670311389339058965333126016875299161368936189186404424461671606362299122786506667460177835948861181336664931096077022954070961638579705656112163040914733599210261932895388352734187526382289546629376382789573384750484765429594482780133717355026117419458089600968495421942967942401315367042659175177380293334772256748802762001949635035446670492916252500462831526610419700563477423409810324455941568810804394242482455165407031641838899463341304207751861880530084495773949859787826077890732270790320542895841586317968875543726988396916512770921629885747349407287031571371428624544865588568895894968928731213125729507947579905409432408556078013609240324776511297598197368168830549781137496144840370733435822647277942036005173274526952581337451941262419845674942715593497429622618373732359981501924612394469409661629395155469587068286190842527514984500271142709116986862092258806779595850105180035605534586406705750190191350109196172015240905646284753441587433312506399151596326492006840236962067247693025217926633475797411499407621556552582922899426387154315912664661537805693306013856308726230223003244546773613421042285282260781842886676331872292743535089776277924434443058215927910452457788156590142494799114668871579124985061337977269666352620554679942207867537755894607147710661014431856843702193710963595321385707837376171784882627452190223418235630715626415916897410663565353549427923201430339913728108894513886319047000246865268547146517687439903934156385828423506512973219462039292124439095870762783069813726033770078945593603894693661497334560524496596966921726291770020796307313015312928328074473903343577850905372472448101554082316359483303888101413409493215033325517040539272975163820912672842740356966694473314863373144226501661018085239108213199045360810128396271019435261256642517029228303482705808779012533707257914277973006099381078177828452108016483399788050407234242972612534622724355740881084671189520456739854863821498700913285325476705584552097097464009957295779423769402615785972150103773096304756857618464624585740309617626438482165683242186786192808264101518516460654325421864735307486068875340642861832419655928722685071179493055471961401562824632341044537964680425490575278338814751277322108022628005625068455794508937170297863702123564982049366094906269328046033183880165309299124560456181517581576053590428016516303150503524381069086120980468328136514044332186220275877238494950033988125658992767102527166238545797522276840665386197660261788101180494902454563414542019741932322751309422601459028354356797113746357655298216285929097299062810035237108260563297794173060711047531682944282318724471633327564761259376696582036945904306090762917786189922876653185289334358406509488747471339330101112924418523911419127882269849670624116927728604304199635184405686935990476018998411431435592041104654975781150043421898014822527266082595166920680078998327636876767084425474381137426584945423895960170911866558519717350260455223409824691858684593314451560655777550646259207989991545006375763600374921231738016963699712092532417142771625776759806166288742834682447271517857651130903462180425438520261423082516069719198934719424900217116965060789472034737052823936805767745810655974858783102485170357804702287074288419727788264943958611934073541918999534725285509977704092021753634049174883788651966602386142263897237667564834878877837442117029278255314860468686779694018460904029299830654921496662628495523578192662228956973495425477067092530325265131236863008641975782122071399531279227677703981872588715410538458693114574333152832082966075990663427560643137526067678855153938201224729869448552485994868676360795840205148626897931501445906494724742531186507633044235738120702180855388498546755779195020168416946385255879584815727719020476153813528307443507940571816669661523173541145736655873590417419512807667952426477892837067847271853364821936745041530099797817292675827435791921190128493514379478152766641692008536096792154319455884154209609384591446664478699192847481394326909261325380893229975775462979769994247537958807188063956866753997348262870744500709333356610441726474088615234306042343491350786862281709220302541658631845380236578625258743088588615312562196064729704741603454964881132591568903077646145299167074262059508891231169003370714099402420342675987527717065042572915942759126112929191695017116747927754970723061225564517503836880472909849583138118713891305334010599043310051465892335912807116276824949827647319777178954843233417874479126291563536755020078818961208108989643578694295764644097781586412833473079704070305765909578367521481792244892109895855533500129909015748926354277115308781442151304677877555169680975890869193716619431115676604347970533912951684311284065323926143126825365350749005222935335553733805238443790148359666122123964019934058079145650677268715460347236526249179391741642871629049480314213231823544809002132610688583520919394340516341136671966216605041026800086916688783972447866217915789467806816817176963379403480798441127844919954241426589941689763471453198040399697490360443733468062419508052112006046611310667472574191123845175095456508067350251993194487804133488809251871425205353598113374153194414596710877368503731979905264827749000844011206336911103588076850885588042755850222805497794723644779143445619768261779143906093430722358928252297364765903841860068666186131081764970186941704213646946618712007242046132018397110168770251397536637084666836012508056808530394459473871718756253775519856359461721974505131757787280272287800043199234176176635127310626004458010169766574201861326504502589182019803681095182384871309299761273450971321057500548741989719434570905388551911664821935963495349986085717668054854509316552573091216025152279615440645448987184155743497763257976450204033689248053552252942935819823904477489667388502649383338923648894208648625951935361128260401929290726624946995218368310259790591319334265612517896060280039840632058086974625071924589012543075041148869603530699829947341585416826920172124285802559774443015774921765454082251402276755948003729553052080597726848457664509528647914211454097355326298111249462774124688631402836062687767415032917276061477789908034688386499595648142033006103844913411617090544175878021624626062738457841709953414707638433067801756620170903941840611685585304086864317714149032910936191616131068909228516218992692576970449317499555963471265080730061697230448627240994736357462498032457817651614130954528510822736338226120291958295945354037897666234189118432796385290814797976410904694554016047318717474985340013682981098263834650762869399027252718225120066714969450005716537541588736026993547280729421594389998353762252377758546723908634978383030094318067579866844539961454872307065282641945271482624115327005240277545249690969759048707691591968960878936307665103846826052024675603257434740388393258448855681977534488166935944772931381427025438304440221337639790010659813816784016376170492387416447928526220627406879731632768748803225793558694033523556835776385020336752858386499090523199369213491577936629908915894175909083555674810126602917738223669904311882279257995246161436041296902452109979062762397904054547040630832906231951991592110210226292616552940319893676273745375969728890483269092668479106057306422156261278069996755810240114936477002626909984268180820472823691572237590575673142198505333676459810108840896340553774301863054734771519953853426805279343503442949653186348759249132168062242694667132851948779591509690579313405137991575937464025336176778955896758173725797015503846434151404646878672383485792346727837747860196569085137718779992634496014018060385081671003134689894801262780680489818493050749724204161191722535227193830152197113447129210622765145695545133994013221696739749231536534540002852594242987427215526640109631297651908919132356325879134377686369960972257025698130631206461321083029498567869931092355352591969895750497022158238746994514136007700687317461816107945173274251888670637787995442124597256169135659523950212164048363697093763079877862760809911928712245014997681073508350755822374587910836259902435381779208993437795644747412148657812176970786566846742370726602588509747407908166048201484794055412671421163513644584541459938810227448531864312169853006421109265991955700348161813143736817986106368368118072275824098412002509084361874305405454246004980313243779084185780408437652766003416575043490815477509407752003313674697342503385595972515331661848619807278682816288009146064869506542951760732987777388767453857818954759389652190520644536536897524176666857581803813774872398449834046897687310476105504650973120860028872167356388819637426572392394782809563110229626559249428412751986482766690805672469152966885045419729802483558682051130140118791035679491676564151599463242158833381094905791093760466339596783209724104890944837667049638723839379908738605823166017221803270701159169878023123025973343469930560257992026093918346659275891336400649380052494967902377238460120111405583090477815375278894909897679482166222559722268539406407759956088965026656955465062294158655296806559499855783381309888608534259466260252159061924350124032918740848326037088226753682418780873510600033669805049307233280433504074023587049743410786423925231790339575871571639781212060573570649007950604767388675347906683020757464568985085264338917200712678434569469342615379155777098786122667934942091548168464669621382192019755190572330911459295944668960205075426159178670550771961598481828360870047760160247208524302424012112451293822014485565105235090800174774081208872567514533921648470043965485277788327329678616707637508610674246404885788880417996759507369857338089891927260314638123377183144773714685267311165005782456365329729934262463138254239387144431372464502908366499442593212919700953805855337126154204396446885874240939359394550372766699498828015982103100108179197209885657651990777399051863970813844062949935998690617760018481292649489462616197670229047991511078109652234038892197535516434867412206367852094581732575590024301488754978793962231607686601445398902094762704517732693008769256662728524161513348506488542304975420060561799247985890828702176080445032198123986162482407446520672161981107220177256798798979318169823732646382750376530718347450751061430497287108091327521527717241784392338036264991741469138492696119185934759997497281784167821580299456659540293556724066997366123708087191781253058306584941193254500850623779014886909139296257311543285166649987815368075007217838778498329788656210629003238280968356721377030318969806357074651974753752950673349283226074208491107749790402527471162584670772393850046914988194664971841718257415313066738471515859274217543958630314303848781784167647625513792394010210070835702681302865620263259681489603600558790575476170469640604728372709294467395627026040799433206446710419583497326012388394165723813157112501378807673571363460168042007691286292928228663757626736186349962670104568344852267663557847316826622738632047863189605604497317853319535814922480033390023356642730294762356574775143749780181572140175331881922191023187775758164127301052426828262804798440426799795222314299591285288425758002803889275231398001946115390206150402855652195450240786186086475156809291644145105251504894286014827865290738270912672314902789541553635298857159987748158552892445058444586417367772245740816033073674235470125277625337602930906158752607462958847062465951374233714388098894621234750761567757698041515159304767135595881499757254082370370891764588962181487252580518964030991799623937319651262280677646756930332722859854088782240225520304668184214313509492983357989844204502637062283404280263403281566563627554732802872234903335224136836131892179168236894628399524747313637951926581707316301026409067354632752622023590904718292696595742739292165322329289242082266421938251900045199853615316799303943385522530312872344643812729344187980136486341421081716449309900257388012468504195436351777602074444378238250731508565261322179324733321236594290564533542500379178275168918004855886300207670210626503093406822754403730631400006805205676458800410458353627006976420036217910731507926383182510979723090541558560949570072737922676450440221303207708057271822164231631678856598676966217607412861935405262985603155530352261258091345933607512239500382542922513269698695573156717810501782352690194305504774257083978249746401242719544718771499058244357831144282033797435281121990678045206935681955533910047662473768898729538262055138772627134449687200894811316935844533260841701277281812937763386933309219004856914905561868996734757553698309411956721132426519431304985204991427033599038880889071655854196265315765749186099291665298181190886107329358854865320948423244248317228039380631912931389716391050116745869556251089700275390367522568069039241843792437960610993045865637078940833997056860883681482966700636148210459654883063439686928559244956293341177236413707435033173451791174080335209801382755755518283365605074916898198333720613905644252602443787033183883017150906410873491316211499199733826122114326433773226254342414729918780982040242438415316077736386245365438226424363370304405417049205524948328846661691116111076142934958377546584971388379369942937601418897356587834795414926097586037545168719289160261383570051288990680889705365645274322082327816764273712859135354780186939294569640916953101987549820906593176938904685073032816659292325399641836663335039023610856794434830209403810121385844970304794221696749060680481313123196037275306932945246413370790887339034479628897422416450715436433975494753518127838945564504183500371037660488518091853674538809908904051160554729049394065531725788820969037073244260076001164968237222634493288266737768945532593524958416915030945476011747900130736763475272735209286711354124278506939993172068890890375074120350799368654461846236816459045494024037123872011316630796706472539441219342935147009505110661285238481556577409504027938796089204246334472056062349295531372878834756791588141946251232250617460233660913114667407477728215699112530155854223581180332669372562220695469435684215403152334273265352711167873807057460933909426543722279469644746401033186224668399464661562484499438015798813925349493496735344413112890059162169073772877536913902229279537033740172345040890966719343353760592990041285352305298027593754946110479404883462725323935074413407617100513994946161352636968039979289200280207732513124111746591403769008515005623914148225185462670584632627771834710235666608512568797674088802262953852487430702783637423354510423017147992292147726279688609197255850157957926228361816032956544106475446514496488238441047822721809604890546076073766297539556707692866859434351002243250827402180390538352347823378650228573075782173722248106072841223487990569707135151829057594970441802101418313245710837949673580338286251228170238729153952816233050347783634643715791878610561050401395014780430823665711609416355467013514484084935051542585874498445703135314039410800717468084232709356378751090291144520349192898445470936747416439052646157036471352572058267542148103589762517202117158423824738175669192722821058760729493526724863304515958534311619428812265019716457406020692638562687366326151218743178314560651786547814219299053383855835191966194010032874811359225506811271596034132387862606026657441433595473943420749512184672231263286057804384915968276774781971554461139822456580624098908975963574859317735046587019531420862778464588276459370769317141910671042515385589285381292047374950330594024587102177917009313024815339604225256837033665213269943173616284437738332926567343076182708465935431466927341899850914868430208359570294312940940064562468659677397476921902585353944557828882515126703211859743601749724355219108526784125874920268154504920996173206945332754797643496332347011866340985369504684223670793861957105328787830494395502060524812339374170227419892259279124485417040856662513808443048923556583358952851353248859845684833086522171925994564463992720418794335918993567197240897527508939079629829278229933854537617952399126150033319462678870699225380703160456838331224569157698107674805790889036141531301839477304628238338572607506189617625498581226029845006399827554155358988606426217437425335763801965173871464275384675498210169048044055108524510410443314659808924113535380224786697379325702141174647205681814056369843917911990471059451663713439184355617610285108192047344622723493033899092088567652458158789701494665192644774213509103340334678758519037644116833310192117894343748784825946756749126573028385935922881853659144959232955726450961872599633138002996913421035225444053884292231126944085124287517577427028001919480369398948157801601496874628840749672180014993714273388617548092480117773081774388912991409963774422562503190596281876581772891614282852009802620042381319003867553958513553772790206892443204657570898501702998268857117505893374679513856747863236655906000035130859160461180552579798243397995606655258005024077924990941652162797529515105936792763871210828144292816192105748032421701281871659195862336669315676248801657000492250755176122043895804109922828463753931043924784351024437620149130010943386361146774374820613543348020818275506779913725362137943393783055891788412613368856897711654777851803802324175029315841106971983689853972290052279304038159422003894583094438255665621011598864005396185982282900047733454158365752299696962872018285149923474756788627794214577640784367574014537481219240702272936378175286337762795211944272675281308860985144343311901184100496937018726077253826542361138243932327759377074301553140576125525628269381628281138295432438065610699989134581859458321717401073944026063939436222290845441633765649777945100103214299100600206768089602535801907657048599723788736116921294266904694997467291503776893598054100992949123658885411265055659859111799800948037632628347249439278033516982807410624915027244343988817448700518368126496691571581163078168638163302760250415348678552735375518181352757120428723077628638461262220904825931748425331457372072152702802624587729367192250206740408343854601352590907679371682640620095366592245144010011634379382937402751498279932050221374035972863214604000013998314042241324407897714985994029573878540350932006951709916914243872352204717081597869255887507437132295740094585971699271403728965546926438333431713803764696575581007368752800877846010655902540142710416180086420487295033105096814886526828332931576810209606125007874847664417917695304594521411982488316266602186086350145193901100922840459324183825224676017196068302079381137615657807225673390106156238036378490200334662374392869168454826019625380174797364788598447491752242759010998359461941659376162476246002331837931992225954421135426473422659164870375469969098496805067935267778285350093292291224816700057063311068655087334054417049348513139227842772216229901498752648144518994444981843468036491492155272602463389956909775880198634607582005031360099488279080397518422163464890029111532204242185148332189814178916732373318891899651470032497511828953796531555372542016584456473433170253500152808910780698732230233288637717556475321400505353387978618778640387356013752390740292407778982719241278351722742858032916227944361280153681191710451611752839726193786067923838660030548118804180729321191766813250799117979318558246600479122273135243890749633078523636514517570324403049934969034983407628398836481475967724255807611552405432665289909110198272756064215449430044276656902931759871161034061496186666264608243062194088179694637649722198327358815586688639347236540305118778047089734381156667665859079811100730746042246035288351536199060927634862902547955220536342153775355178774286398481994778783231297438711054538113332009240301214720155161834103305254990610972034622787625819234694434983741615769384034157004637159598330974139609357380287274397225412843660990142175086220274201347748456757786580525526388933554307889744360852733804425086164558101179352047436271287397371194849662030956829901505865287938962037665435202599194054970869457913006936490175518427363408582109094889549126364152827627734684441649836950035664003897300423855689002107128854559116826075380868264898753727495784679724477851489806925445185019181682630656337446038300149899592804769906199480294331140791853580627231148215171586683559343277640811965882589499416548977420477838114734595883753076144721868604372179414323616956801092512517529165787022689971291179075056445327706884790972561699017872229880937785448505059778456688377334834798954651340406521833353166304263175843482116368654636436399327057716489851400059037731905233863771546206670463483494147766861560196054088426371527720440402451887323887128852610292938239884696050503909787415235471922638693563660575787199733800625825313003526184201838576366946569343433817669732908301066572542955985279455917511505556875966088394121029288294375902543741532247554409800659486955259161344715242138866458891134215201320214887186596472989417174793034851986220785613620916284675195769710934008680399557552216465541003410234392608854662619674168748349617998625460050806830085047278340784892466846130364417235367952359933033082634686399299244026253671479754915832854327144991390063708171008287706968561321349369477572425526173782592692087706544873575657752102682482702441681853637463140400959061955853798197787247472847718108536383436136661410600455991822257452499578881644957494400560850323723699948620985997769699571536808203758349491641735800649022734580036708374130977131178882812004819773575526405057331071521846978493275047902199117976589779899257914279119744053092270293313383470308189290687556647016312204802774196575767512558800864619266594695630415105265443588956299148135115777294321751624402941965785192450124983881117189430935581372381002400136455073340446290261927642202716525246605553269417474474362105261151046030548746915696550285623991118632824306297579855150630683591009513036738241032747913751576921339819970056585998604924402894930705530261536065669306564845140790871375558352763621403802631162762372049024570672774378124848354430969537540053489360057546407581605261731194180354619949212068347707553454486305495532951459251923267271778369551859185333976844874903847796716649972484590359744273352748332100555032777141336252840005378809074972601900782558766039060607953471647586479784423411015721461445885707811776972119735654385240437169026937711609216371277568043940752671277516720315604864176876728968561660025649480424126098423855661172908078875864370331582022328318308763899867134592009072912003722659571807146812503180028416893863520202956064379798813488855136950497798549949023412896426590165037957238259609928993537507705057333513620698450215415353914952836135459818201227546843099880140062968315191227892497872582657389258422413252462807136653068756489439189223330640204493114736382238161313100291799555074006964584047733087745284555013641036300763929534297899120278729301903031019712553269694431896756533578962000759533988781860580910799775220688642472494255721989039797371320775764865253540665941578245857519575513271111952880394241277750357613495669986838950690193803518653410436692284526116152094689861133572439175940742349665831439361504544785847732809328622226708279839404353091526376183492075633880531111654907968501335112119529990449423877356928254724978915836469759413028370030958218642489476143220106504605564607917329339581476693371592770421004699464816741631237393575166440461236666934473415333065256461154359780422167282072152055520893495425936561168914387971541393507360714326210063639529572583751074176201406746711067929213910944990848298405233999137260103275156312776199007051715058705062352914451595376540281346554800097338707360552319983979994734855513112172250624223068495425135653215349525730260128102200413653890965757937254052861956969663324969658304765098235777557471567751405200107517792962767603204348935048098640086187941820222744725370670170635723891501447743053719071305572063626572306242936096267094249697983964487866415068096623383566262155836009808857455749026262335259930114044690757244621467379854736334943442255155339248085491565871097794120646936315049309980429299025251875848946771376300661126054772638931212285443821099429910436999789737186324292318562140919068385825494825720918903841002545548202242429862040808146858850956195418715895914694178686059192497820683648145445888460724750823672071198050330519487047472075158924672399174680995942694911580754841550371194668423009398044157707395856660118908858428959036354262128482852273149708546502503269499667298152340218405262985975925115671875879826790768766751438519210139997069676462375454777203308656108540151666795478428005737608852792478529802730819434934161825447471958931284839733483759330281029650892220010483712320505611921255803273637031701722253109084012573971749747863678725855681469748936981238104344703611196707401914704199390422423014476909518590086888613632376324700643761395149327680504397874689475987517376783629635672145189330264347769301759501903383477920008649145626166662191776862922023088184321540002657028446370348096744293103670676447557225849650949245602171752265968686294012153312354738555425418129840868943947798726764210543960225057567597044655069187621704805238818318118255497180582393180529076141416332523473576130208453622838317977048067112183322034851385703028326753092975383526749091148909787059722032203112070264246404049503818915118705894518197633893601700129204605508700307566959746625112869360755324647869294147047709298931853428987595198854296546711916448256241338948049279264473273532857750364865515290949475011290865325486806472766826085662356207945151964077310980521937790726429068118899400485591125830613236859798332215432538245350071194387083105961852930671465165829909512829729943694733692734357504036584269230105497659373252882931601754080139427345570727382461741394355177446642059959345192998130445604663742499439624321127299025375714360950448526959408710046227445511765347983211165701485797023233907228367099766216531615522521351020855925088591905426976886485449145224009776433770735927515094531164033226884263557381925491611429713013704623401593396082911303237985732840655229238514120429629305514558289850287906284732221181994362569119521857831743378051543280778692506806911235168633021154261998029452595827190110725553652262926746057610752243400749374812597700391100398801419636423784293469455902428554668522964944590459698704926678674518426046242805618568614418998546973735261850123959291749925670944240334027184637890983896682922883308104020789976265362747020269304031891171872765722766180466657912010287698991162426816089018605297742417063106929366561068879038887856766128067185880649960139711338604794367929317288991543037260545201709657689916942843032054351896077498362658379818855521666431691714206356896326805669593956340530363451754326178579772482300728252097800351172580286715287754185855481800136621203431791268868339406422057856333760799683340969741031477484068524672551030469516564519665067225093359549437529304051385908951478364806369649199356727047514629008270311836139624802843252040813275556667711195127004241116981008301395246529559397462490648000358360262914867273205016939774779759077720229570467569666653723330063412912192181321172643821036300769193480079588405630523857607401768482310469705294600378616782673281360880047517735995669122424037820284049768765731044939096947673921238081993575735505329594005780499771328834264742880612194850335415828135734602536027534853896885436804314682076959336576099633833616897781031727335536707974444753913692474935858934932412724915838149418007559192973777563627092942983737489333020091447009877363196891222595695802774070683317166027838950040714440440670735620712472171437765207166859199995309370582494100889622365908560333383427094848119760474265925446130903953935254790818203129771570384141417434525584838717728699001876848508460083880534066190823986175003161884126954867726328158973002762938619796843474310370106104541067676351178703079353630070139598714309469331765955622611462685706267268307779066188010347606003758382643467347908483164066153266094980082469466144173111399323256682021964628648744412573739246512016347919876538629770873970216873769149031223473720531921818753922851448881892570457139602969165887298641133004683401661279237132909283212360032012257356214487890028768939894788318458336885326418553681253220850244078838038381855757732163860620052301367205548295834296433536541982836738181560439874312382954393713048736751441037216396904837944507110901225891375952041484944971547081774900846711116365254520409767172959428121617461655204016711069643228518304768371048068409993541201646435505510578929315425553936776373930668307628108765381640544808448482084070760005688847963883468104977135087449586794575516986767149518250586255157013991531929699450730705994385234848519967030153583726734944697563618694463032660578811412187314059073915406609615858016926478863349821547784900454283084068751628209830211610356108712172259417126816304722769087416615235959025900376753974050504460876477021864434217696269970183337353657995343015070785946332782962441686403932713689950557658761996988648082893886609218359551997108417269481540455303006447074771405358278152780829763151359665465289162381594860705175261698516311436672688061983145421149478168769337466313012991918397939107227262920220444653310809370496535117026344510691602847908116169652589905266975210829711486009544232324645866096682148277782523586799709485006510052568048141793053380971161680416023471969799650256426866615018662999815056804236822579022589560162822317171758851343309439647288059787001794325497060869237354829280561337916122231622249553702362489429893476659195545416620062628462409571849015273757653363255664921991924542141423584470311273683587144703788811531196471803946495515916509759316078285340789412807371094877058100396698521415810438336691624338387488697169265804091101970172493745727270060476906597311500892248655095729653595435299726910309519182093456265953798352480976143189780349928766300730704975662530224699336979899700736572656602159549496711659982009374231476008750539896467785885980727058772759826316448718157082976073599099671693212505926560927939906175299205986743469696138215314713174343769816712076739659422976384272590665279553458759225661554932661383608461515135916482410807977322801173250470834902486756784743867501731361061869764276216482438446618362427768959562410293936675097113082458314240242724481347011129007630832498039336369810432201135003391289176739736209929347958646249723903513890255031656556601892106281654023110372749029490272334447847974677407012787863781590970940915648884630569870668133548280062812036035247141581044974652685858059592528432067824788825628689827093676773281805077695484761134073137812947187819740248292276401073231043818225029867887469242462956744040055702550979923737134798930226648753813468886010898470084993232897136843072950058803459808838336546974811200370407151374941565241675558580263150583263209078018225645224768311038079578632939810589954947476167042944513200950082499803877731706728544237017853635861122821965117220926683861186498615915979994179337242855960421351682664287503947921857235793462600873362081052646255570950165414516587070786648369257966061054244291912287941247445540243884465748606275941981868361063494137186983380615891958507513118702901147605746927614797825330634831058895486523996828905334193479333894110257808556702523760136610705761008673214477997037190711604543745480909752705325254397186795616205300372441055652990443351516536849042622860000609129579006964786149665012569138048743910147963784190847195865343738112665201663983075114386266230103108873152242910927839056997976595090808544460033819026871866089984876352513778482781749267068245679792635767853697931380338808359756701972679992396592224542289328068884746275877624312438790269562078804216220717779448255672822440312251356856399978579881342641320014224738046081557363297832795025988364733577095385090975124386619831754422519121043792563543118424257536912566325759423817139453021565378143902152449919376314825063944910079575755921906863303927131019646883235330787006739846639792089575854095914596329696218004197581196167782017865503391559290194356471789633553743083144834392764139720839424794070389687204801959427253789035991421819880317989997976317987326948997772882821442136832597391445845071572008641505578610850582862027297958445322130257919156577324713429111962738670167436295771477123744762944234318675412047436426838944745513490188372571404153126611655483246340841116385113687788305130682347098867714957111591769449906428539016741918422408714325089154460095897235674038915824408162809375056637415026086251822167263506680605932837402198761212695788524082496477881292707486159592798766966619005838196446873320750375665106764214117243193348538970712501974801650859266109087337068693224596186556696249295713191344338149820982708124092325102426954063360416925602111736392355247250338079279263682790829705200979579264630602053081372191359670280401265252011511411081646764080816851447666373836452748549746553293917644282872752294595594103430041258494417433171103959924684205569878212443865319654839661205393926256997190407630582874856214766369790422879361299590570533773414844148119788873319779469580737932238732297832506180739566251011216899990189993194182199734606833852560933997104417608065138015210556988925218900195355965167223957439714288787640437708339135793946984583957482117087579830524358787650977162901412041402667507555840473709593672588043810368892172873443893379324126051350060039903792114296197541435245194724084626309799036077563690034048809236937861585840879254044121423344138892926616468979360380267131973928836181677011376924061772070102284425596521639314208134695875548936153063785663376640964542736332949210223400813203781587238340240227816433820419777593491233549717238263248399052487323198978682773840266712495958895707093686917929403042888519958496768659523178429339859255106591638804793122300356951258689392180464494866215202606830407314399604600359571067935510442319762171188487093825512094747409980882369741483812324437175790664970892083629715951195682488447149992580669365344393585547125930708404259413814122873598618776766037652178467358252882883659159588393334097875929963672114534467957634618036432885524684592365395065744542392410888179957216723302835060089009799673286016445411056593373589337717959341502751460787115952955494004085491769380951604455632336806497167184517979598552776383626830622119239473112077596360400020445615912968382171367364206357731966658709640315160801144051938064940222173289319817910194110013125284329644506146340848097258497810878824610533974678357930667346514428901787088722661125592226043585627274326742149962135780604575511072874549504330641565575714775904873513616297592799774546933781871773838364658386689910688642503510528848016647338860483773068405544871987549496182395236586079508610956127045359214825340068577952812921904350814868553904822342050050965050521841566008018971484338001768801539313711124179697782916349172504848833946776844019156171858521853395408585054767476442496853516368892958919066053705908408280342710867630652751799034788656820209723116310790460740141973826565995624289244541155260870426855082094124971051389307574260280927270984459468189814194987190310251170270111349746932263229922566799091698945231138336814678392507285946702066801504722118582445722874066920087770762913186703356621053258573551097612635505244993948919770293889093071281456229908850580628483015848281388633937366504192696224021389499939470280226716590013830379308081351882228541587016505880445659295143185318891504093582499183025490886508097565387287169692110057687726558952506731871125393396771664072050524300808208135094617200461766752217485982824828919537213442414439250358025986370771225848813628929704307225710587207560001909047563615347372729271643815900159873091317301974620857739451232056623899961516427453248220053160707279709655170095821111870106256079688191894919485590182091873302506581747597666330362865161772984133080638214886320773998132589051957844660120579403804041406582831090670997056760078515964221323934237688213015588591471596306091686533927286977006829917715040554358382868979567815325168992874052356335959837261950165361032899298276606293851129785262972562412743545508493621738008306358441033693391684486905608316338439047321175032906322411877962062833457972880653861622482285979336004297908507919395286753512250119618329517745040511880567702657658626099327681498114359767509039949828529639659133936391651287746352482968747456057818683504582570129748534698481942070042149761179711771642071919213420650632698290544992538762532756789504951900037607548188367464349382578419784662255418592515310065493981284178531566511316437993469435831764815682782844077041113828601634980464412198632225933594539390132215468466791570077619012444816333206184946464629444962661576126685364412210776336459311180854630277507647382198530681963128342023107579583594795704412871989698816216752736684570804482748644017153468762015417279464330530436353615189773239163706560662596129259538385713966400640986205792436240759507677456547237299376659347468590410678424585287609495894433066359291472494808960384535961119357450565395961418939986564985997748830596013996597794341219284509631715111538040734330005315357258634158030072160149255682243141409795071441867957283842507971166979130113313054763735387959188647475299424636374782944881303133904785712348986330378990535868838883023100870605631891067974452838167298962750618689676949518583051677413589757950273302411173847106800119556751101745497214294845251798090416458492069987756360233714711374646459988511304260531423114653401453702670014778090388651299227642858781386133467688936344367991481241049657156183531976678978831373189888764820797720400255308523656134413752828729740745867059929400867829644738628526208765791281222574794003269934638452342469547933436263238600899192439719231764567744156426401026047675092733094180865129076205139335602888754224433487376801297355502550506315015702082139971654486928005892765198578815466033769996278326014892242671710560469053632315974596551107295123762810093848529488431641371013125989548375292246637006662693261331080326841558025427778582130638417822409587302170603955576065685646601654107196590575416141480052950886366587869615405352065883183617484244884020591342998331475152546810942257580033922346849791316861995981252018327038204011989717133151088461807427950328315886083139479201055204116891160516113152017126169650131302758668751714874276198567987338173702421814161145244241875202446722192644304267923574841347663870262442701469521450400953824189296417921348601299187362645657377894825813672410958210102349518872140454673347344075484978310969468286108629590292192268198708525828738905444298173343548677853366857753625936717567412633940158479372568735434500572269157202895978065593688038835253346494782966475929470492387349317975484794729414156771485529027490182731073783522905970905613487332863481531997408028338890493568713821699359414755663061993637632776337808125507082781852435128953664196267005767470269117743646173358964732615568264489195901482030690745470261102201366312599164446508021548263937717874667372163604234216278720574323466951542051159870232922543847598603562467607350357827944281451391233628887217923033927663036131741659622079695622903978241261284428468226376344939328791574037141580520412633834575456568215489058759184877132287077040934723354247038644828206197969133589938347891286860416151731010399338353341680651643132370565239973781057094395053105967273240131742248075735655486850618626883005521226756292062126883289051067912477179564919555038614599199267742509809291102326879227843257300566797002497670064926195618848725352986818962250424114191099382031935188257582190008033165747538847552621790998973046513577977883957414606613852236715780890037437175741325673933287379933203627774288000187666447165737429294294538761492002005670245024710876465479599685579657398533510282182884405531911708354692640757299826645592173968832579020907453872346811842639841643295873558878112987388188118530841275635923178470777564617933753780947266779874474711331461004597364002669786582748928231541488067983962199370736221671013975601294828689103340670660368243205156365907010045693255903329594389244610893766858448725013937317230687166804997787694345683562749314011357602066261756398883800151452712151426699250075491827321412416754581047115771147631609939801297952849585037774552609758064766884679350981973951364864283809916876728285408934612821094318200170752116022671933697575265185952360278854459889301942155331092646404963680614014463820178330280107463874635763128342632665872151001727342798243113767311319487554838722977913222140692123841714893604592885908094673776390218098953545229569930349810857998671182886526405929031000313911046845274018259055752776248278058643205646881933757928609698128345905093029400985493073942839174616542088217887592399363593961425345454477820419626692975967897542568268321312722925217935825976346387063422502380676005649754076922739883040300622234142598545995459623034159952997470114108401077256219177737344845163932864588404193215711819123376753453480256834376188950949955033550840112623801585081554304199245864821583962782193055581508889309714949520958778082014459089132922398149664325309358031907928719455477762078625868017859536932807179849100087397627198280988980280132545196277672050840486463068898439945697853653939999550103114152133246518662385101136692993197694286537963259881134348974963857141915645060468961563138029422924711078345936443818732442635327649597535009291972413181025000183003483475376817850659513392318656490926965610987588012927753778462314963429849841205694687140925213795437530610996557699470894127144036781540230873638748938440098991906264830664067170466839512853618877677805671739403375768136033030553827261864581087135472196417769432760378383123464969268012676147687425548000641303973102806990615162007855761210589952988139632841268530620251719955338832404465840076210700543568616647384041671839938569868111953981888091506251178773242038425426011816039529937295768452057890413725152357911153292315637561992693748760316485751770404696494922311574006477733717076772671905542114460122203202038537721206538134930691748986122492495911774846472606417965577461359508374065621606339322434533000383737587879416855753147433540880152523400268572231548456685863149159503648467969502571384125354871752251231443823830120147495155981693359548281761014909493768656229776942856620903602372679527589013737077211136489893998557391685374545026946131359045873114903483018660742792297137828710671611401373316275499704387504030631712493727825459159773761356339709589743723330295320562000714697673997129444100939118074790812345486235120047865535550824397598115065464253294800859712384760920275145237535943615305305689349177594723770312370359072797887176292084172112378804159360492556554997659470775479348267232764262879860131287735355322758066346192925728790199083127294248863631776308261774844778586820552001287026768567058916805143864846292330832187761772868342541062440760838734442271515194124033749044968036336078804224895503153695578533662376714675571224446545791618426514886402760575561864722270104942074774952389060520240814000501962040747857561026194269855735148860044196954543450221758075667101483011178394493144682054160236355570958159960601380254665697034644829233573288733876094460773256990129604339279862183650296674820948101379211213449280675727141125833818700898898887437719805736030128533927878123797802417197552723957878777111860823442902928653848812399142067537037782378852291736700459846227408996736869906666610566272386616495836318235564229380576513372453280498517034442784575687943385737988871779545076351384599641121813162740010692128679545819294949405906389235206026332127221153471628426183842140017911220928802289323460806524641001951997518900197407063591578379913099089916318063433092850815813908139292121834188438196863928611868291907776202633373619376105065943225438646059346955002082690658020193168635671645665854646284206670641861982670434052031179246899909603053544603431285332900148596069196193435382732756597317847033158045568518119483845978059290413109990239119221458998522545472836532048285649488670432122668322391051353407488826468288465913348290066526859087836936097124831806051135998492299256004173338429666587684572978505798742395094209455575117420984358022972529985963093389863354616454932455241469295980782023217297010799232119028890732948077598020815083509469488951227837422205995280057271750722184827697708160253806381605278612734748293525794272140857059425749157818169655187031448280010874423373020923276897987334267750601372454701288956220439148462597252355914326094653867431438456186997947636621330754975098568691542720187017802434157602564827868327317406412057692899296915905906196502048039991594303862529131564329436788315182011978055365618205306047955544270017747546158763083309249812942448107821535144458667743944172899144296577113471690954821244519758219671137364311412433982700329991227799190552014797890558488282054019397852137976515752196931548185081613088691394530543848955628641228950452518425355389799679723055591568593305363941944826999365180378068586229439680996502164312596286641218020178002036917201794689589396430415434765545377813375808285753465432439909093856010699074102061593343227222691153776526913067253566396808616903100349073056977243373868589856133948025243760911494991820616690232400039851371337677433791698176797026230326080871024038560109359050066027256230843966463977157165535533727790344849038318512663471086147430894391954263206358680701420414158524402771339059617492153197063415831097435956709347425943595566974077085453510539673230259235600776532088078939055199831176470028392364637660130334432255304458410124648984893157742330856181345549256058930403816270073653173834799726439003290919557146573286900935840795337378905353566914827811629528635423853116562998387394470943664328770285967865054190937770069204040923987984722707164239681852507476935464673525730069090764679080276538576892587690158807143846205332611885716305790922892573028574485346783433971718988347561766629868642626983597531986082523971002904486035308758520440070950368848162464588653031620641497826810545444829240313897716614651311880427217247772448464501732616028439700699882130586190111899503250433038140656485710554092090818531264868737598529203915748451574489274833045644882883037247302519208966552302330866060448906516134551121256103300367652639805468220107772810529354122322943221508002040796876885407123572250591703001427299060177712052673723308805003868800415143857489260565603111726754310913474238456219552707546478497966462453310853274622023287487864782825484814703656526200489948514302773861143368428314782678219394555793609452717067681201454282083104351506865682805148503713303902195975542267416167396463910984966672480294596159763907356216930276880581930915934998775679951114139031782059731287071898049054040785442568166478031546961830748411499106752700736000845745915050950328132522664578287152736690188124627615716337502649877818278316713367074566328162798439281587758289647409465609762597612573218565533856937230927562086976053172487867165938900047458946058432385567181311543339279191469130540057957317774019030823911798361574347150788501845693131686044262540468004141662597336235810816826707416574572815304316241454275023136369731684848866716643853215357756331792751211834359010674623874045075528387060107800211084485871016599857258135247795761816502173543895570797975868500617108973423224013508924104667095646820805766901958081923414149848908016179032536202257075571958954053569579397234199294330928703759190829097707181217716537861015164974086620775442978285625931848067727106875648946728174747493407677937998877874566438680257298263838885314381025005913427119789629418108254466770167940842239147721215277524211843286796679724012637756491559795715835115966772521011461521281204676063819370746265787747313043678127470176691443236161331491771781817647987000209417565874908661385261526251957279509592096791413970193661869123749633322326809869463796838412942936479285091689451931567897402839604724183176174806592379474321373165413451603310012856919918660932949072005786355016810323399554222527639955664968933888748155806865898135988501297478907233762549718811970207362797530187498053120009949709466531493224398550777657551044377846342383774471833233747093910457969503921068291105816532741168698077515707296127248604181694404733974235333608056227320842559869264787334322496400271782856736756181932248426255377402425514990018778319628869680315418162289417121605256355430920290851066541008640315317698725502221170624709009669162363057439691315431054374392148004473655579811546975211559190814994315732092700953874857423723315950004123254601862684225552553650246456529539120792519167011466593152631820027651026245131549665240314987568513188649942984899784795273239591334784666381821682386564597529318179524203109186934888879709740742787523047151242637118575479259460538602982154052499376962572845301936530545942727467830469640460185736440796955491854811187356226845253751040918723560244575768007922499455153843329845032150971584342578902727809345559937279596945621819721875573734188449542854425386649561690038800690993700734295428716690074923616887035749528401012319465133171240206734908425949451536026882155105629219101581722996894564120375441069469372772845940160787309231591535299774530632377021071973334956860157915188880686793569100406684427221467948251115981253059273342908696884299378143960180329162740918512938402210280634647174583854060184642197965422540584230623535305649018846552000922967478109647842655713390248358114713626487980145293757085405975878068959625011923266312495240151347817246394237123769132086042381403946348480669574996517215678579524416277284462179086006458413471885677291115088188153057250166902901377160211525697946947139491246900820129277621351257091561762695659854157865177742944742204094260872695297991293841773527509698220737563517200394854941168011352522758823827679676650840993606120701029068296948158963711739937178626115190644721614804816791049420307576151592818481541967867560388759522650229264286391204636952580919572456244302744394601372507313860070427461834072105804372041058263729126638696860893938921614762344490890139192189742793405205986009498206163462455108201770403464741700645691446752816481471487713020455538435484369569294253495919952681778310798564032431040316899703218519106102934571345420209469164706626226975694124353161981451881637973190361144190471738716245751656865795510715174201200187583042899880571525105176818642761768603593216216594711654702110003108921179334791528263198815827096731916142579383526093054881320771642605658158982226398254413988858084611338713290233873173170480114158835083670635140905612853307916872068045661512775034237777634952804820573942241756455344059320541555863314481964648669119372824294273659663063433215102139656457375336824622790265972607559823620757811886008026405902810078979967788216011274329637979551559434892867280291367013970340525623784475339925113212102591004513558455860625504862753508193978358623091330984000041967615832584365301404545829484594345931975515255733515297904526402548913066852776777436219842305409251184369003702708760675304339493727086184194955780567926504382376958747062756536935182754071310267588884937985111931300984846210619114698946772277850082833854182337111848069674255482935722322657422841161273837885690485978605370488472491326051071338889125658791695112501394785679248288592394179647610617602841121227066015633032820567027527780365178154779197298201344525371274050752926954818136421892170810866271330271304137446728520529371904294828484070368286826293382268580785758490886005395039410660462450893921376021292607731241626525104901398801556204234765158889115072162148610480484579935685341102622432063919799939273686884114533211908373871864791872289652508721898104821208063380772524052550325206063653279072881195287217658416489119864535172433249825896418718028911074374326603212315410456665023500310644753692330738239934177628955518186021545702711757373000346472580087657357183302362629751666592700749927118683949871929487553137128678222267161794301963897287796515340367141620707101735619779625354591841731828230704139911630347730700828144954499253382749734614284069858215503439687156393102844449909196699291107847814857316138160354516645530079841460710715565076565501548885273501780544485329183071271872403983587023948550603159521124876522855756664652221558408065422487288491249185615101684829065114923850135498604744050718392653775141877777363900234011529406740995622361095266311480519943091272610281275984251792962412285496095859457926647771067108032819952286188696721916913702649109144662447105614610976842105309880243013626646335260896847096083683215076766688885786387732852891035555649044037617645560263093423341673815941711401370516564950997030058057619481764857632553306786451916061599758322511007319806759341386658164490627532378118659189787012273361589478084800031265539649579778492685389592432755585650917201964955114565971409153066153797731607511532791172189776388174336197981457239597258907509206617139445454657627210715171773401670427405973011019557653513169223469425756875107035758662061005276054462510521054581866498723317273642505013453058027194766050183186910080826319884929961607959664773165745117236431343982519301018396287458726960663096196977507232954706550937556049112335283334216783541155825066365250119803663619653742708921085480716806333969325468418307222878070926038541284229819975251017724589220019087541433619034506461029417830603780995567095055462827270663167847477002800353043894204051584406089343691162912753732610752965140497244510187445376495317705420267962173931837546645890919153558644418219808285443615366434032121126805057587033927231564160263133578543479567118553355634222863060050235716836806510679041877530694307559596674904151753506130432670674644495713330704892760270973764806298164182864674331761454834016697189299639040357195617199953571177504345171770001646307421003895309763172350914349006003823855830738394811677459407474491627158659670094878759174459294769386595019374769986483286652661355490258894503967827936966518494054645759723735669608080419760613575102430946481601636119813458246366765434285935964024800793824927403382791321257187576872695248550638351085129274356455238669028312212304332143193226371248313058472741302950353926570763972495736775977312597335137241262992352715530485714960588902052073322617442031758335459370236124776537221375210426477684935073252640382855763674796015881028656672331427266550778372585546714417270072919548743939337605296722724464707712092744541761201774906561431005222390032826738849633368393161369041381047408914829238896040494634612036391236212733966272907714703313529571685576365140924109176439575682968662608075866462568444867425824943568852771968633814088749399429746770914795466356977667175418047551516871092720945935195859457804267642728258931744641973739588729787910021235733512640706852739860554890118824035209988744077245348516072375347709674090575457539029400764036826414389692637149200880701321201910475266637663155989008709799967996985374229348844686748568480660290244072828499232266056925672429794657713290210319605126870233585496595384725590235036696374928794377638111149925765028532737741514569299257392011259516890984778769887876650614623131391197191965919856716647353258640228629018538820975295403354440519900224694026393695976139355033735720471688323148243968263895650766342623877010029557021407917752404864356901187612291730109536728250292566366332141937978660404615187706294187734618690822244149129859090535023053094140915940810669872291626492997825384575019226460670714023326680162806588108145348232740777671963105245325759525584680165514503362784575513143553390970499470053962352161293715706377621688338720408001969145307598297748047730012799633047439210727498166405084691209772273743965909514737731765646974467441096934242327894344515909820332032090251338205599647449798820178411021398336519853084575422395322379690064220048396544425167418366194523958878552128149732439453415766536249996742229364380583988287511086863410804471737019429705205314037707065702324604441852707358332800466862431988057261488997613303924131817521509237751820272753620174382275698668763147089407780692711166831870684963500530139748838998982149759667041428981010010781284500882561412463341156667645242261190261790870458139100859937369018847663756546461676389777440584567435795859469341271101518811694331514765266734421752767054115309876388722510953921765751334370457756005173305760816314199540409661014101253003572090657057001364857582956017417141964593775188948877122654890044084334019541798032562690342083416798581865705463930902497630710959141409735437372105649527585236993167505099493153471057615997872389878229629489234142565776175606398078143005295095883502310615082538254403363934458435252234304278796928942469770136208901683476432431981200052304543477019495803265921991150287011673646763371301224861530142467673863852665463815448016190110129478576895936349534896569543482583993243477000845561402511551432993170644816749468792739127187825043312363559529428281385793244863297582559211928580166009998018047467631075406824741877703960162907799651826354779882168782647890941514008896530194284610675302175623536166307916669988013864503665617138457841601904266821733973472032470341394038163562408586327415710208022052637855596383160061538457469632737296207606376996688250405311579325055668910374603128084422859425047299883898558000025993093085279363917122694457344496129928906524147362002441399214976500246384791857047927765770445459701664443501186970731479484578707444442290304740353205319015060557530712861888386090905301474409831544364035552949575382384723582057615371303112560715557652194153504986976381869426020535307056678857334282637930345837405564241419822832559857688833136194621096934692107666676396670182405136302865139689584229847896917216874066690259461397973889947837074478042307739070592113818488883610535598892464553997107261767123836457064523585306196376372004757070271398673755499737244618842666682885727837460943844421473470976029053205998046927211928349590298477227139280277586015535388985782478655149110304048995521789762742610373520219192779117035205089557783778584453633881507837516894513128115080295728748053916533331727629326941409280304730783025258992568930911216203784947384313571350139437198658028060468051157972868568802010129113782913602092488914186912976415203444662698770361778120059730295082532978779864323219878191759126277747922179886140641954940379197819815035582572466398184982674586159727999337954004109636513975951008690428520749595971135944249178061635389461007724443208462318809885830012037961135321445577860180587411303928365529169160635944319209453469890749628705484152161879729427540504059971703746339402351162024157466303118062722730133646210468766201580909326054908858566029205607978348491021128527895126755864068299127462481736137187588382129446048891872101553219054260424044466776649586268119900031936980856502645337690914935736171202628443421007748856611077718921559513410655918670502269910404100717854027579518803969911072342084611036895256170801930256177174303786989575259747576613619383254843051342145669674965666244162739288200354898895169552505105004911053986171260947668682979285384314171006725851891842222603612650664255840686328225442929563860224181947489616411214154478562054454267191330734029183535697854794248615960377696157202166015126324470925041363176150519535385758151714535922237127518751318631018054825066076364773810475543331726196992266584695659575823303407220132682120509275160349965069727375857142885393909158596456295510559176176443902049017505877945272583076081829996391974342091748835149264439677531809806139221626226861712012881405464571742177737929063907704530181910171564222039263083800350310684720595270606831044750953604200981475807831533459709317945970738925380041994537636661131603705593731364061040516142281442941103413155843126051119419913915726583725818242308392296234631674269996608731954622203613599464960843757980972167506638811966579744860214168136582782177795101402934014130951829198693276933934738406726579174885759786849006971290826784772408520178418636555521546939606801633053024668056924142963260489870795977678700020113154227241991451323451747754772593281873865670169211010850136164548306734898944145342069379327302341528927370784009250685479162588180165430157138874133602359587040094039859489895205544635995526504752836482796710592686739589476904867098052598027396337060039708660317235894601232635447348964784865439820235556492722268590995520832772686571340782835601328878911015230915518342248467852921819605328301890109598598980559691227480295749882240600996416475952877725513373373699661064933453338806214553192370356990695829594482748029179365601154724163995096955706536797720887366935541829428745585892600184113001477751318132768002716506467735909381470555365536375450089433103453780965936111403398529070363074183189437158712069950871105246878774147277570238705288043111097445542054464536144174471387065376396277143958570624387929273895146754961296949420144326973562827830292440492985206980086196383410564557927921884978376874148548983119834902857711210756794054925853589323196924053191784872893590462371025155200111884389712031650498634463611502748632707044105312750074025527795393562503468312031934736653871443922563375940928677451489904534775495016011673353139057038319596734195468132535957122274306746573618833517209746601837807324047417722804831573514560895068907694306600275178773052039729160953813619122151740278538413934982626291825325070733640337534646683361863550236944672039487929762689462492282941413575759906336798487490470496737363619899662629124067456244446253997951469911452752960347236295514131761522757265383512313384776721761314039044730463979330640680988686401776376611896471747834234324008888500441469081379331400404994127229185037526761382970342651587772492251235272550995388591770933414864852850800134070828718970378617381630404569506825986675178746101341850307286592567214683746525558013873151072579319048742108034949533367107459741016874576882536299275147743668365832817600388138614782485827377904835161536104574459311924148531078115339412696140466520018317712629122187917656329492672140759335602386896565190140337971574556671730096915138791077377727488931120096200548097317729418944657889569982525094164917634606085233071750333176883030919644470009284958743707066238272228339145522655487035880149780375743130422426825056981303436801037769834974949628907627459859497147544236135398852506016965162767804343469414307502731334402046591434806713017570579110068299379621976981939465477514923747817404945416647992249120849046435053390824276403548345469336041642862250533524429177716227841606364496162686593912050161034815000184818489343934572558622853203802799732263072505251662420929489023823908786697047895123880859838681575304506893750912515903597089025347331044504055570509766543598657653539462718616315460637930175741807304789747704491377003234713559725229935070267118157098018570565525266567175680835121092890167118518039461391705696447532198519960093444207882908117777685149874865940109894724922395340647518441442832248371937588862626337145320726519919306190872092542524427079878333402526679882132301469165524213120502475337456012986798367726984424448421401527756259067752105888297860699778314059977614679870641714480396535724637525706610812320574358331227883594163138278869103146084786960771377250988785945609346274567079718491076260311429165022565243409414861233611006352698983569650629580418469880999237935150751849406441031750405772840993657369306047979177251108499484148250615770707830542664207097869145295848768478902820139712208064515240756983767672887944249879271615695343767024207073939794464403106571720824974484433286020953183755372108064648921945087829907983528029091199254971748720727068100139899030285501242570947337150107278299413256705160938447188440929064846763998250373313181410145887220981036024165717264199460732829232759389718285755175199212569191666735080346286417957077804090586918293086045983669707292986463927389428662334027193284561058643084558003415718301932723645356258111915382461335266830267393579953324080516547546060145859429028985305243415700984216839564285990080676887236257878850619009305594991907411105902468833783547434660004357377262554980664629680687133724777360706988540591396229284012500956040969955329202347393032692434692792264293742382269259275105243296470783961759210770879592227898847734911461360862266098777530210202305585159690676671388667302230819893750323111148505184677258972482230231983376632176109770438249000979692633763047998552063382494909887771175984896729993248940761547229649777749606441716811452330244872081772557782669426146006857880676669911019282946936920897079022592466177435012042296849473629374884412455431075500971067572293260410754550732464021073102593756694781851706809243721489619527419420511251997930868258509599363913572599121028561096589894687008379599939748915779253201542426016089474040628660020868173934885259922564041838323757915510388054810478979244566273383761682936237703192652434785035557699008967765564387306189329204379256967169228770799123880657576752507027378263861491146438696278101518408623851384161069992714466430782493824300384784430151800345385890614696626498579434530435615845775354187516114593701862468949885180532402257574515848804270037301225912846063634382393789827456120826558962688728371533233738147314781628691279781113553730958131847677882687649683174932259491657021095356078989339088541039650938311946008744512359833949866820383201042481636251116887813382871287637771790547788585487738862936362957562332691368767433794553170709326543143019673979758626898622980126554468319684947438156256129312925614348668144011348380054193010002533754932056420938081178838771565401649379623264876024084216901837808537600527883927631304177509628276777849005715015243846625329099767226001620443316507616461004180066583352488328656549132219566710085833466401113283776313121521476446431275448650179897778541148591735901961126266721135900808825927575731274563276447189475727943866558492743382766332846623770944110504892223364087197029128458324357407577038516370242344831902547950322783419623272111346638635856667466174419020532048422408911373437168508824095734866494514661298919229264751250400655603314629558725108035474461862371689940204157114896806436199181749690217062748874919515931859375351886714578524163403804151089050400456944760960348474515770247923779166291398909480608762230659668948508823196736781357599319045921552855210231112759413011466125456807541816314157394235995573779534992427779592844501146865317160940825470469352739142811570153756548687456821066708998260496815245603772719274271720947594962415589960080301853004542354664968567879657454688153482672163208489304218769960986703646647362744717389018902484264073373633977405768694968784374075778021267272665011160146531099498896240655553972571322166160407787803974408951045900130412265787654681510510161330539555821488718356683505164371559875598696505580671541616587854613099025152926954407812939755795676118835156353644282732713265242790981229626265350209584680433706109889040170995459394507130280013631147151146684638854443834771259533716189395777468802873389763785360040490245816095064104570114669976261695687908129259551505008359783119257541227317658501392123804243091355375419339930218073863418926373144867873497539934299300897756658090080635556204788036503653879839001167816206229080521973570111302744672668407198413757485328415002377095902009115746174837123848633423851697694824279457743274038537216018026455384298992473027966687291425126518832325581594009945114820256335154919973650855811790391743350812837953123996327504189406716902124434915072174329355552881436408795105581252662592343182241308298029442646683846899679450102684960316844266989967030301053542300875527043818468826663301624174483102328603678528832731625555064069474261101846218580872799500407555497713825710763611535396562053394541469214042360762400488713578500025594271038977134792910897169491247828657608507473443279852762068470393572029187427187011682976563405134981088423092299542750296779289172280328753264637407021502881895093856951370291159689818545853964436038427787580245319246683458706699604069551655353656126195087363647467499935205658297916856971873794683198619227781863118135028959226988671461426677999835495460083571859251927618740964674967555892240041738484262599073836424815215539485641905542897766124998730793917411276562262600799459874128339479950500023551012950416130330588423941865580937681388753491451381297544405100234789762870956386717859900546998212148563215506168190601127860829297013685979219918655186459640862082132834054703759887484666729749431134281258241695871779860006093205385555513506250526154235484865014100535251926279314253315637233660110512560092209921553610210189914957671101990393187926738705196723658475694075430799772073070967917303423091903669841440126397656342107112445291229756110413439351822035074918659433522979686886850066243816845479528971525518198170767053442943718778338503508537386804390559379541481519785500428950703494585344037905047733544328127979745295546172737851600506037556988691660470138025458256662177522735685910093706166916740739620141731236494809286962224554434794432744654879613503747009698159661916242134927069916506794807093456058378048069228310999625291879229539168949548282829673633576818679261858909381922000595564881452975027856129623726176164595431090999780475411291995729793924674705921254957318900353804938879854583529843697635859356445626470469874775526332852895384335868621633857137732084059005913766192957539148841272877045976485463081451354107410031855784401863561922568973651044483010488982640995200486477859114597574415029419943656597814813822391908799111352136435921251969438316148378903236266467292905554279853728877288308800919637640196470300014903908844474652294253172258496616885034180861958018902470827743050726295413063586145337396172684695089670547735552030735942499334580590807641152589356083300135789505438224623733858444989262060156666369984199830413929352614507430649613737247097866128921439041522031885781766884341744190456113951239503942621104020483925392750045335157972269219406330804493552536555685665396201440148893977271885425331236871143543621570617793323029730345417521152512419904009502277105754350270448243373969783760453933200962704827559799883045782970533953634458315747966274035481156968856923116502124420604011086734160513482510141826881428552442409755438046996583186346004432923361213554819382856283461152059206675256653859196539543213219986381690443204102258477900713945924250636457274717471570295766305092861620770792857348375150015080534452183898201473543895291703519952127847647626370320475694833938078313303919098487118894985426851994489996464260232397461051693695917690851238926028767389034929603418696627888196856835750662897238999164695520939448657194115718105082468382237410179068627059141949745949833016094404426158161663422366693834612111256191081515964563811389989596580914928683876575090736680350587380323011859641402972709934248385661755261578692678869035138101706484736611471708965942495682428887188350700961702817777554728535010321961803849594391498733486265996430034059079991311363630511496973274662294250141534959438215880260240087168699240746229872683227034581395066513216701370266692705959120726567956811979664851108495557826941461856008119971850691836273503804917643076838127068932658302462848227268793059504716789605462504084752843254000286463311782866282203191646290935574942386397814857752814851424757527419788115661858010839653065423976318561236270126045794957025363187898378700608750710812341543095895751927494786895973713958744733355032083732899307055594336376114191991340704053444479929911995852879801176970011692498731943403454900723198252657751843373943138993425578468567419516843121554726145314512156845499868336667520502604223735929146307454579065626603834595926546407364722298498436085282429549190929619120192527849675346739563741010647373169506081521762513056628095016756738530388528409432946076949098085329045362304314576625856096057838362497194176647345292658701418438620285695868540951784804666340618003995789767671394075607797849744797867178074319652457456409116624947799387482921859385742077347544970322809755382167185121410332444033340267905996789351563302763137586574538210102248482290709419472465960417017116167611620568628601886981338193021721548477441317298526003515578394399900495505897812810380637935327126581251148355223474969932284329523781292599907597413943261198399534256790265107795534084974498121098146875688973817651261517397731625744565250465342025984731348444591850584239886495075542841250655378297921520666739760068708669790911180737931689557900000122672644056355603936693527054601580097855946941872477535302622825708238114928924481822070996466713125273338697536258547745383930753917907376416800248526092555936426776978611955761329857901831149632204865111059373295871976025755004743651680465961208735294639689193461422532715437126111875557938928564106647447899375947621906791225043003621347688033829411157212655025897552070927062023523677184398725005762464955266304958300499111112806948830453811856982912132717184276144060955946823499793836595791202061207043976164725495853048568894423057117942540378545311933895450217498377052241764736554012160578720200881871949386237986569998902468113637260749877104048828530660390412361727957981785740371694710577093629597335136230101337657497450424075907298641494362017019888386485311576694207764770393899955191265459584739343049643800865890122251092183982950122106379049185867490325423461373169386880423862697968605772788335318501402650116357031976501916594198219191281273764243928187414458641832522393955004617518778750952897017070907681442732062384452289871078394624985044089783880560214572847629483544795867037947060379387632150197401044619565615243666908029649206144031871080778389611203671285947484655998957284024390587155294971194967862557897537086620371050430687469192091889224864922928719271084087128592163649932523617732440384643010413943879752869275771395058918579794606276219817417542206154301067309967932725887612150133113174194298794808158862890702527638839121010195224096907879911445237073883365787990592763471328742655527982946685965831413881630623409630791522135727627608502764070492966199250030017183210400289643719363483968236558519266478734881521546243491686949118386181606245338900774729401990053068047370087811013411092838105092136866824881093692528048564614619310888120024527549332059556718026574847685421294493478543778072765040688459865108010942285023746065727789187373827171711568990884443071417652664487676635643189914586431194011909862649019773674964192746412132432012837007990974936287807906916496266695589511229569521902524595259737860734526796980784926360953022239041277682768796783049785078202012741194437970944618078897070023595915948009282909513665157894598825068941560945795891198408073284538884859780555516881555943540725435152521907898897505024302053679278322407684055863230680251342033216014280458413591716036506956734829558152901662279672064545821100917188335353230087730670528390519936176406602840326333563284087409915783095312084294591526898536079669373138677174615181190654762351955508338935759302459704298843476785034003256067616797535135992909242185016102892248614371536824542950361389363811251743096979680849741614581800288345757995839793307874492065408140916002272570425780742649384774062401587665157516272903218608756782976399346641896450088858603912757408739194263123888194152444022471301849891073899302721673173217934935273940691115016608109241827743170996000316106122704826446583631459333710635240309375204695384261515657670056572611430830495248083842695196405956526154122928734530935444787866282998015805214480122628627716081860480080943732521009880167929426436028838637529298447313027528674855811748192410754318656721453473171265205869619087555995527087415958554065577394613271356034383097387461369947448573721422235686234107268061683621009921310927325740898501831733107342036512986094214023516980714859656509571414157773949621928659083417088668404114519581796241950898396574132923737915046513869529887644609869290739462747911169732984250686385818680257784678930648551884238642167443538364384357953177043142874482421272657253383582968041646135004379308311346594601691840920904227212589599475476782207286458914589894994932100903277390452840215099238899918325495198916688447981172109321347480752578699623688562106539825589810464345533643366210919642707528240550812154941462936373316626714779519685012708008711016321938474628891042635437876043820540299436155820783871563936365332541309416661622617525057510230369323633555357882054047417874384731963646430467588007161235091746409138643316765482915425841334467568704690759111841072030996631560443138228352339925111026493397939589518756441277426249362784364673832441078461287981636588287911569154982866887707775074423034978115124750440215281386332449527295004351171720953648699319864043626783241451155780416891585793393170890488397830418278944592775869170425846325476090186953099137417898804683453730547609199073158185766477347785961806005978041592325809891072745943880209650037143715049616074934916767933497199971873303980414384377331820069887853205551221425397367608251019602212156811039783956116489153449430903666468902430688460071652298436860022648846627198094731527136456651471696014012639164567230764536992458422679197927217582997815891859939770136776604779038380903014226834080815692815023237602441436227331799277007977102219347426114614518160959068728560584410343839921187170745811074545745627264565947276549172907875916111949557295697857665446735185085916016406099155142330046820351068033624253242458741367023095992513554204700189196277873069725834556457423006496437004943845208950193738287846573504147017535903606377971544704342276428986589181535206858331126960670449647137060408601983306000504683799845650075655856194994758687740973962775060642736332041045925492494005434518987395224430712611963596173539718136349589422967236186653431296852299457155235453104600309981781572105192178992040486915273947053454336289184742378047604619254883866587493875138400464193174521446257664201827831799935357866107951680017460880463024274384800419347254717494262365025195210149014243398286357181030540531025197048672667365283076625466331237001561770188282529430623144177426780167139580961277752172660009919837160973050093919921986066632157305492657902959799989500189604974155458384881369172761254037350829832704867667610227028049441514258875708040502577542475527431961296623112685151062262048604905810629591741345984797559493119560264753079676550469832666286637275670985629991491022342281983162774017539892061188151410331181593599372335753373607079305143094695915435180540138944737988198016795682081525694905346688559799517861140908069251722587753559575247255157737609421192157470016067763283672711042954263936390406476377947579457714969562736409035632063111310935834135331552139619989300815556196000189821305389379156327703003098157770263883708371709734404124958758932799731609664893793234128499326620572092366300014443972461430167326758221646245390462841295391001834581773666492566300174908887037750518106127468705618095935775343697611610766709991424624112489855028993491033658247601023405833236178016452188273987658417398436755354484460815199641313560588123708948779920387647868379298317244488049168793782245060865954089866335981169475148603703468649574319663832177514108620337294524325435253094499249289146072610936203578533011386697506380127576415232139809766474256746194729678355766400762749406735983435598963841890646358635131581158856397089927696358635499439410315077930610539274042126125611878132760408261773082662617823033339214582647291393811280636162250623178454003194795337272125010375360110673423937936214699496393439613109585635111384113407829616336371384262745912925669017678451783745440610887396067235881358973442919562016144204326002403180364450589913747228753738204401826721595894091306993362562066979225175104533478277044652669670783326280720015851281839975861512181572919665098674984190313818483419904201130722078286611281493126490408559147578265200882150169866072438004228174301095986200770707423740095746983210842339041984194707247234788203316334701453703634996732448004305606037076861007734888375469818823125012115790576536073880709703931015485851887184532294763981227700546773442137307310017527125545583268573115263092345048975635568233009593346759093666328616285097815390698311810845001506046255816525332269494188598394558539803441258639170394818037515380862823615161799581024818807482779627027273952722627244147578872386795513242016754916912335792770372923477270465274820410585979673894411873073274866032542069654847394164374868530806971683940972275687623756178879527491002113665719526836762549797274249481594227939793721651679750326600035476082881352860185614252998043775262005525882544555603618761395881662952144940648740597340249444453598718827103937273471765630430792433792076890420564136633022962489409325902915914323859792777987629081623203849328489045401004161235032291355585939237200884392989228315919447281662516207032139142571060306382725342041440679342186915823910422687637794645025005224369261074222440505661344711697841319335329817927633217699559371093681049520119393009607407887263261794864127432742387925828462839742299554317466968782199244612188547306257744931146244371354521741925062788864415287120587777150116442925563170292994172663431898297598607803142098002699339183540911151986283650894478055749741051024227964238918454406333350055051472613078515341721533104408753204317319262018932999059632840948314183023549424210698109883205488521440272176801910099732167698507371888880769525222702690399559284697292932013829968863963612229437622394367023126766270381906013490716786689957803165004868318057559006366861796685754306426758072522545245008420307889146580319443320356618235517515381819012910679628547783855596886611202212657108666370825995779237884078406893240250695427024494828517971711065752084612515248581930325846009464606024308539448661410004389769405574295701279852853192195795447074690572912948473937580242778911885674223656854188496473882799433824189984248571658737040892412032584627877894826197425889373934786313587049904896650373555018743627878874214186470041844250497566422684499744884218276553834117849607143923303519868706987865523783097081328474543772054370185007145179099149560862728633117570598979644914412307147503319081894064620934133700965327365921953639116741812008923970180149812185437714487243473839192804300179947343979163296351726677127306234702889834678208596884046796186384734789721204430902846606307641563121504715538842260699992648566970272964594467830600369647841533795279012384861988985173335006150155908222752344741968493229296452520585675355704845762817186559120531226449921582538860958186766736288693426907365816166072474441084397516235226063299774185739064397238908501899157158742706812959274991028632562657669981483755586541946421149242798533786222100026518437289186977175120644145698895948028728473092400290207906144000924395053188518631398500206492990098000987229799754193510522198408456214683752282096493190137880798349178688335641780430565582315418005979290802817137757747808015182256896515435589705693848476810537151074242211962162629227719975197442807831373564564719211535226862200876420105375970247721114163292696403669259091555483564801609184583599931262768265330655192512863823365525089637037183910277725870393696406218575970853135505008521071800290562281803612419063844181150059491715128388872851989581707897890359063605248080987435491440140751765390826281985357587777619432246665619135649024317318057248457491609022119498555723308178951973577398694560788046872523408264041488143127249956531023809193020989180763986184823040136128551788423668273202023405051502609384503714488353110392867986758752849311287179074263766990693181368805343492313544463278929884570492686877068139532002215110485749568919798406135044895739506460924713538039090980155855626977065973135581913251858976181945992334594953992871687001767378439283294441273179713239495916810588261893520333872948317303870413576262898439302273980724204308677451273917296996520130996837891098045076485875950329304806334505366480034225546382253965568263398533014792456440090310970887123536764667436034103950590945541577998609755583901423825709262626153217796830388698603446155539231185897900297140799186170152920280540233164039680234018019693550694198548589435742362384738775454480685828696645279495222494492435986552827996406489854038610690870861445191760129862762281938590043072559144840390349371820569983371873617186542218875273633917908282346310480058751339717050970374535215375348091592484279393338125607583599823039333757659583397510816094248910426245379056184915130008115002445202680658310717086333365585128239047760475307326534934290059948407454115816547399923160506272454018992180656679431248122193784013945174047267618317939685671392437978840909830775744744934559417181326170888200931277716231682343238918157692155902455841050150760965160179493589363432352480642358228929513984559551300240190808096098087153304348490001786373089993040103865982338025477304211844210567843910973982534341450567988401915237054591006288181053093391406820822052362118022320188912747248291052118910421403367492738769746019955060359629554429536575858434132895351245194321684937654236609770393420789941485754578120791357996287820018295642832577973869511594798169689011118033295945456744365505148607704535112166117608273021682970838234633564546641561740579823878598933830160272443123083385342219941224527871548758748264651894525199786173743626201367537308274863266871113014236473955128064807179149566504570582829782753291097766914760359928174140186626681364061993957140957892080236800369839151131740513925127704121701018344344830912695341275136052782283663071551174979723522834425878892581568008456759394082542315335316901639708869443732078433854236782148951076343558980618714541360078104888761096402745103998368793183496460201043192456753009818494619276488016349043807567294744823012935154800163885567864861091695075023917212468837666587587293580013598913986260234053674033580363396202756310813391858818962775451561638809719999468239934158397760831627992972125090128195206595850318732324862946722527805303117145340941035211305767171309198736875292351728670392158515875747315208623932283594341952799520482989938227718273903700906933340049308065748687070208189316754372674145736090769592786171164504194669497318515173965160408363630166638607514281342029870731536705935494841599740693368866744156208725109237920364055818462559330457940066798371842067963286662385426979873461844839629685880461452349009489244047024654017703551298293619151318479056103300889650010937764743094239754002871782022270541413970730071352740747118954800014354252747276816473529420593380227508061329439535252304017989674048254955859882794658011759392762113584987408496369744191447285214114894152484991864870532904490855651526829788323903401630853030224722163271636853812007093041173224918078352076743897491097778436765543484150859260878238475754400178408228982066978680404334907281961246986082477895885682267837983405449789601329200846198540980709846685376725515308913788894902850905406551569354818641520932068142948501393685018076054122488424603585247782251872726734269251189254329977331844563912253456755867273129767223787448827659027762743095000357156944565332759540788010665467621266741646403024111353462299125648431672879313372923356424132725615721018279081744616325058208332470045744442496624165116647120222648042368997620053414196758959904776532983554342378898281980380443971811085483479903198071583244059317864323685674983372970556532257422930027453523727667445249600161521061936752465522487248989372689796663576920212085420104481408549035808576725174881054040848830425247958737714389571045772577906319236748263996271094698897113910743499738752426885723887884540446020570353258574298953462170546268636219211491577254500521187998356682971603296708780480204006871410081376108120271083272044355598312236503308379815353275776489215460553441819283501860987051710496214555108156190639722994998851967833520789933117326992243120252238495966037495300265112913873703275172600218626148925693746544163060511339746058654439828747060704610305026271376942961191516487879793323007099490301318014318127895806049472623693926434923097330797629631318341677436023214529719635220936445173827413534980107316126572388338760423475830903474273384306722974571380611210538005323066207735470537130724582130409145186113050385764431165747705903953448864721634868101260344354551554060433187000240117755489940646676526158468716865373045185790664861302778052606322458710936212278464113642607738412473520524825477937040063763601245112250643865546086585533954057896541315420425886571357778416999122107014951365440236620159636510393871197705211500600406365430904243140512954725814136709293471552234057481807497831173586502110640861046377346072086624288597962548541159989480819998511593710105892306197242553037422011540653243900855044628552427782246048687905435591694039759710234901097979794686011627308071507986714543215519677630978425942126767734660835955208373273680127488084207738362038276277887579129546116488654752159431298165743263206769729711706790832962153022107994842026278430352815144899718526571342040747323009049676852956954501119309873779772871739713121166503245881443696904246434342458922093943161989433665122969993253642869651094014220582651413098558015826785645508640306090293277567856872318823047443145599867364262771671429342199958769221901679561446386890721301677983410006937486978169137043792472693001247707884875152434183144920126148167241304067531240755781084410142548032312568539309997932543413979306043305083130784479128121177229317232101326177661859034481658722024464753296494524337882179806268464907593088819910673108853366932867877094530343393404022714616858695197724216865233018516698714897759869635364472254332626636852593637754881569264676327737192536069705697936626969365062365357726328419241442030599316791359790734792349277529342872484530397547843587741116774461227427398886814962724742396373914246696689782347924325116022269198628468012417283089355010220670321375689567246096996311667767258999194168341564687582635931862102034516152721897617958117532452045254924221756042911116916508620417156435826185525587988134097541427531994702231714834937362008113916744430665309711964729333267938990690699149464149409376432016048564332401846199394728737117251202028784241036751042733749073932028624688028530582230518731931055461938410701519889889037136068288982626447113339124604760091478249933953755110400177755526963049930011263693046590298454184993134975022038310712017522372944666874938514476892652099134268922029785531281048980583738815329539674894379300873943085083514045163576923018075006497452051531658583807515096674655761359009264534423241374201586838208059866875085854493069218739834050224979539795091957972194785241164160865314217724300414734002953829488918342186735780934056049446556275565235231852793095333524752469203267213075006141094055923505019651710408567536612066809332602668454129039355759169449594479599802152543075991890772432479556113349094210524341518429954438587691486436731530769225747241907315782068458483341286732852058936097881042075674800262757452019589677332078636643830185492267601262485675315306838684183338707592358702187474547760344681408204127853482613478887207567784548265388496628881686390188584477179379652483897143959463363115055796163681610693158177749371132462664416661900509678965136593635511641764181773231192696686045140448774398329393062347716730218319578475037913229349380001096549914195482813406403944142878908326138550680680591358094043148092084349582089578980033789281242817382542936627580639190198365314882557601288818276445237959274364707188611522053047410493164539698775217475622866361378683201907102864220711719523074067889694384173863327631371533583334534597598513706129113182521003288694209183202191503578755742046473519757331705836626765281379800049953704119591802421558276867960620052988903941192636195270472730411474180252352575689053735177062892982779002549896782441781695978794964165328868808080844886086127131540261892995719239181942626472110293365842291401399270072116263150363641510236621757415126156459835807234654663706324158914764173461315830721257058892150713651871096050006615277171050193194122447256543685889974267345050953759660892215308500505024341232872167024313520490716463851859392663531357513381809831458193770340277567926929297958159372641247232821776132486571872777326081252890717235370809328478376652131541693086747391299090466702900566285975389874749357252611769129134905033841204794274082630425898148267124741182206691784854675126480715163251197796527758875984551561486609269281259301620369156769603088442454695662766387545077311645799215213008123438790354154068516398396642993670657389239536371501066750136658742798888998586468839972770682023789940257616441265692664072335123580410874022140967680790151824077064258245095148286582114065387985075766154945795052607709036381392291348001163864188880264248078019898756576112555915450192618258151759044739791465117888644662708924603717334385458756922359122111252024359326203708036838630275963843676853114667657798104489368589503012892719985266730815446445810930209399988502123625622050037478873168072370212968125066714330155554129570277638885382840405766097683591218125208283494673183602060807077057389606523430953855020551859832115059843791655183599303904299608137699909542101429048907997970709264725927087588762927955036202455549765048138270082320905379913957062543545581050191397945724632947883272995564773233767459852464318313124685448968272164951163239850966975272552215254382918668684554459969514682221613206447658902589523832945166714459727603356611858576550810932420960386105737082702530873025203337957644128264201152538790811293642181963711870925189904929076147494467829299784633968093663134454076414814316016698540684458335086511814081736434826833781865192127247047548329323120020019127830454332092833698705490310709215274053872796705905896215268979412396606906613224637109726647604425108690424967163398640085208138516593850890376907991104971040747577724369707196295267481404849789170276056720491424628161497124230384771002485952633268992198940902692515664201113812581076484813588653073946660364583537319414716496552829936078741790348729362024111923218170991799061303549622940104222977219411377696163805392960997106578716873754422068954042639480357815476412045701146113807718243640841852302312391060742113736085597909328376061193794480234226768690896993441385298406340670050430201035798467870138068426577375378762522651840923715937466932433343008811114334364857977439545655199244987666951511888157680662450993203043914221002275615423649342284562954619638351809796709770318335620890798648254558920831763555427368968651318875108308917557765248979705511699271525864757723502519929131291558438641136777399903877808615290358200725528428832030410924121519438764606910786320533938827190551423669105556222228921826570867931987308823046157545549195104917586387164072864634775423519449354003038058701523650751841283335218516265014227036964191356257393449826846510001935698008933708687182479334813124480334654818749487084756031699442062587366602303632325871585019144536524979154196050349199917190899505953688448891001729734307404169213545641385229881613733166616140882083220715449453650418271578401001713108475131117432235748414460222240276315261602997104178501154175665547643302912357914686719984120484197946781999381729384642581994451599427783802953145363834883153466603487986354788381058913048484433816654940137518211724406557171804181616207087208792697496097355356086504425642627218524891730909902066952340730726262793039665464270763086171258831089880695906313837146745900973308698113088406259570354421036748474906060266954361655320040782988234897530822136003680401314670642344949755477076779551776337698827404368940675337009835830095758083656732537779075173728703440538966037508734952222390267847992085491290987926918958468161433377919620016650085686567514306859705722426889206896571685899719167495390694898187361423186023577330077840593522301811734384768865040623456162634912741430381870312214374472445355882869878066023729543810088835590737870384942777280617322444034158683587575339935665074396162243577870835329427836398101356713054674478597310112089233468537235855559749680500509741235895506762166271735985263482285245525804046756950186130046991179313685653872656434493649938592293948664126154932228787842649902199646285229058051066531508251104002870737289188920371724197158037992922483329717793189211925630531196936040090253198867401310635203632143947394858469796468327125267835347732140739980966331451995091106690526967989970133709319671879298729555859771109289383714300275067726894555134846281301192318802712737248975076617386557543299813360822096921203477767350728804762326609980881712405593213344583090515377955108010178063123711279619229791587269858669638032861198519205043932847115386127206068970083190646600390440386467583698365048516450874943911038981072877386722529335112814756080664121025695173919734431112528513463009480039374087647370631204454010584349358408400389683103946515014028073098196645965303405797659115527429626459326868966381877941555307212782910895630408364794148352810592724963579034599384949675993226706616032430702666736731096400113155772751883747838352725104651466375492892509596462513383464881944686398339164610388139710873291749877992842118006367576099800897355914988717891060309340297335435935346085061176641697430727239765421354009523961395610867066686200267000368458037463839686165298583916508029784118462155473177696550939376156934055719510058670922774215039661696820309004324044481661553347084800848318675044932142981359574407939014252336809212077259102971450729553477258876081488638853343761076389484393272125284058671647706552285426808821674931980499488246740592616547492676874965390897283545140423088002057618379771286360045382388701434821776889140139023542509626710107777772508104188146211088060751220374023566002585307093538814786485845752631384911755005623403714444304430581127075433239136529140657258811088503013858079022601231389243570209642065156009952243353986045427747326714315983025957138719097515854089376757131740030354672296209774909894073449197362026995744004134086235790053221699733789394014428629478556609516679381151891959856081906847099083006119631154927020206264174454637317035848562263257742086873340171744747665009238671529444756820857207100190411701378660829468233497292967166634468338555358340096522497474262576962554301118638004120080244125009454786223720498665531149536916880109845032949196898850341277255685065199857450462531468784656989054411987026761215101281944375219119306230227402636465772094774568321971428516910001008431696170307048511286031065577720178375042036664195791042398011662326795158677651464959255411805102139727324361960071756901919692750276751697925376976833437586985625361849701080367531308601872919994967803660234476874769659602934554301906659383464979522528320435498501121128667965378739200741196699359942539930248581282871199832700170814630719441817909110839243119107699948616714426096742360108037944633025217247989147685013892415635342989839024897047024917347733992034286589398658472430669224829385026378144790627074379320536147003443865904410709040481774834589953855156780446725142215190705745342867597200769442339734636206547015441923352120544312376441363945880671902603038729768704064806997234357136449639488397944495808433129936504811508394973213918666660140033652561760082177249656247166633410530258869394202537082690344057204395015457514398169997485818423728173371982578781423915206388055304016891668370693986697249417540087804323629668960104062295531038999318037023959587421349134700574666688772306869897216974958942712088310657220167744378426500408058371966094575115309086006370442159871303513089507311056816455809673270483418287173212000920103659640294405174509769862325464137436546815111954486381553124907958159320990887045364085658164905375260054691389135022493604539631414195821028363630409653292628039741129869517778737597678521418432444660238050173768326568526644168270522543052730711089478169405437920904211575451004268187232015711148887468659085029500776569352424982390677502520251655361716930157878722468635272204624344253298544323070364215146490278338522699635960435045185529213112431937536408845708417005640418079833469696224262131285487836608910128694331008578577524596878794169042188279868738331254997442772847162277183253050708839515922988454668938170444884227687029062871493318136450798439201407826477948965956466228380463329697459524002696505041910572687535046728459790318713068564688325646148062322089066402184937956224844669886723769661090229246333448001830492493256083135260006747299573321327476253850516009244804239176910940896177338330585430130273538681711977881832588897870765180364511364375039375279386401435503453242202965613901533315145752509092211279195431342219061681976964329010034255142427447875653179892225907277225408126135110401766069413593346361802447905914342982322856098300345354751232700279645786214825405229042868252997750020828672264175139703661712643199351163602044952760603439235585106465683658452171250122443692011155615343707923612808085471626347847585135881247558687291086735163964323078300310780443047620080201045489990566812696424355238196828593952665794547904903174763430502762756391090544717008523528676093194080380912211522659111137342770840954757593338070789329111639835379173958223677199493977789655058485055884757497880569621654079650165462047154525763557852447495513318588636575032864993508741037454363927026734106296428585796239732282318649579006617681595264449741997826545041905877184473620781845877574676630076882605969203197708163811415525366904313263031594472918027374988462053792055151562939529891255494702286669610402732179484013757264527879231900244724111579542870384929291213270615740177176497801903946386230137895715313517175562507858175484193674625072896923992750341101269711293298785405851675212959185553434091543587076326763690814817253136516558932185444415958662177194464404334384197237461329819246234816138709252883291715457601650005005726661150768673159495369695453367312260248429453152565948034973823403150900322224022840600037815831161669264753623750513299379037683627895370424403639596382276465723620603022692381987552177581756968916378275147517497664635175933231324939130620794256901135239982893750813988599440590469139103122464979733531894444568702770299217784145646704022123568140857319002822384538113193877342026346481938203039997355692653939764876506443043010118199979055798531501119006440582989732400974876073186602062079064541151619266144484351751939816100844406065832830107995121869059523302187374883334889703443646755757421005585175108172577855727767307355640565407450534180351221172232078540559401680393885326824472951466963407220073629987535297269068297254933010530979714803070144737752943200237440792708504302544581612451567569319797324585802122850898742421566775466528075211831396977627209675946099563046993584652100045786591598296701313884442198053362549176028117097265540636017927019837269274872593210179865420015722823522786270458290605080872068583559233207690039087496706060943351233721190127704267409582991282118704064312072733448820311192897527882757342085040459262085434086522021799158698969933684880380915489754109089744297907365127030722358743433893743807948027612410727314708722869913351359921228422494196329550717762557043716407303452859278646773228145888256904734781932370575613056155566502011597796268114978133312835840908508188522741470725429026018552602745446751026930472238502835582695553898517672476328346796557789268547841471917119429442855052679128299721685697153870233061102115702542568108325538770145706619346775405762074109919646200798229065067784399641617914889237303067229232642630938517622212549814529759945881392581693765909678192143926599972236256378221106525771437990195274258161128861826890169335895710917906585701322676180617246299710620908559258377122088504561152513813172837121000868750862517850524286215242286241259454233799326737091040973172778409975629472195661811458955719702084959286423412184761980150525810616909491622722879395276715982684481450566199227351210110191333733627044831973596618462819994732043997176067469242565297872883078814364605875512856435274848595800684288999196771365462889208581707581425260220602057472911824557760106473762561538035148330556857965672643735028434568089943778905533928772681508215674795885334217025859969509987056611210103764428413501942986957450815919732673116992365851562095954878291141441245074518376811500396885331622881125161602198651629265820761048985389161515570065770184837824721483976745307513804800075980400341783790787674630027297641468614225020580135218875844130025332459957778122393547425991904176354226406828889767432931434721599991648723993559328924547280111491438371078187193713741115665708104684939004263433227650293128373255332367292475645302383897603658480922766236710692622386026468627534432396689066851947502806042433747228752442041719575270382398314248469317116866345812802445070242111432119457612063918731096183495107938108008873067379069842549110634588002677420961393006216693813948633251220377909607508844092113480272745952029180225357929915544829078266893448492998015394874073117610741892416292629952167083519616286774185990453873715977682457661287771855587813935182268658577750792790704528721744940332856481783724292099911657661948130674571590570453284895756584464389525618837693091284503937705954396638255595851334669570046674077544680276949999773808928222536795262407691590197124578370992991272638657688689197856288909448882665920441697086923431891359199503637477803339476766825642702980671653017086898815006993443759497847236777233555485473964715557815322679573191682822397966779606600249854161999956747728314454754983376094185687803376337830312251095150280461495434394540463077737161611650459067046603352834239058407348324394335016610225538980457418601770995046848153098102253962692035862367942647363033714790568336982960669584918243313041720247061356076349597823645153714631100425613400451120246015934760804648674327154329843965800361197589016845566375129578436356879706731775818648424517552918466883673876298505523560962077722979926002864913156534591094127712168646052072118277128412091197492558019846537407105538012133120418016492302515319518476039594822037794289643772843143509509102270922969610508788755706082710147982300970180611348874763030066026899650243560554136472293897923581161846015797008958650548769996396988482956769922342451653215704965262774861251031093982726928734137738711060046530247716708513395017321391707861863263404525411417721055985884199150927453402160877349341370944417473781020690789494228418765072698222647321648084450582507768615088087417482645777362724630757136232472167951144285098538162952415496904977402456654924998829815276837209652425560307428810719573028569692049416484838680026771984320909718783888424651576683845484038493874779200068686703976977559480939257980394878600836735128156980209909528737547500303606446127701527816058377138203493070055385968489176681879076213580053725653984465314302917970610780055135755911152749515205624059276984003037342932452844822504500044090534916055067515866141775368999127503956824178134109428832596162234586528332736324695548158100891808323927640338199780325266821104420637414854903575861856064084917433704794276380570361594162393078162281485114732078223039468091674548115972766490659493004038854545274080045180736426007044304610974075072481027999134281062794307081995216782361294663432476566868021937825824328785570919191808662675146249601331193373613762059065119000614054054215717673822625609964342695836896512084929128278959480903008671859513575663952227729196038719058736556125367214168341226022821026954439595747653365244349390537020837336235979174066811319322866140557670767904517797511511352811274379599902323148414932463526575099596186743502754039386821220041244728316497847202772797650844605062895886609687487509981586436444729153760160500687273147117801304159573628069863600923772229034607023614051238093582732414637691506489428985952172460439301179299881826500057408320112717945036159305745256822534899547632408670951523426183888660700367282225334543807463065963632273930406201645190193760728903390739126216909352471286942103212049137765868372416157043875317373892992672960307422194928992266066494771600750900971966092377712928200244204862354821907227366614855474936581350018984222534528997563029188858792727056739613245846380124214077999412778790593773210612727293115689743033218724844224832847535254992085660218067696978166010616410189637639719272518670636751615132786603297313026414113537531255152183254356835949164559754220104353244561213612066643156779916915919945417638710780619653762981254142050100370649472816385707781256821250686841490795660684882721256264373988073209935515130317562186460572341260898892294029317894376894718091004576562578604835909407612689585766578440083501386681181740695136327341754186932406654051802277602310785972394476675018366031223472346721094523492182627932106108546185115644447477524625450306370156400148569987934108498918292526898688598106751625710501198786089641635568570377377644219379587212372606843978934467270812854757370583813389018038080290931974097809256871877786295082919661165514760903081546755158960012487881431180734536235120866498823275605266493384422887185041763654716129495195446697021207061127638230700309664102344530398333230558618799143614693762415714721117122916085526147025409310404776585651555848740096361506211137226371111710381205405663968844696243496470946609411760661448474461205397140974610539819007007341755058843026664417919651341058349802564119885611191850919476359804465268800102056765850569948005674700855460812772047686899123486606954801178860460257253858148348720533151655006666762207878189819611499448675341798376126509496846965783553874742333480349254400727350888813296059204782770294434117614349644786012978806879872277970224485190476411977317602158676962740652290772391254910801944711988698811495271603300593354691054786348068876164527069108465834212268238098940781911199213921356574146438653211527217863793728050506256558594821371963618041962296119850713394866575430808505875262216805197804853165509977748186711331969354726043924085616077498360069182154987941742207463736853647051980532205065260634861949067388298510794524601075994006587088583502295859786563545799626080774732577833981155049524682404293552708718236174553903046916482009441466780248855845648708096784565963325437540239642086608973045930840205040844782505780128624443081284899428539461357824970560211937290427119849507108042916881338646659376145610082873905040721762971916633174311069627661313054564269523055323795382507747675688392546670826130050950096900932604475540881776365330083148988644920204016888792241576192826383882828861119135735451387223202498331618146338087354019909072250341753701118670233799543304211064229644702558880391134920006749614802686886060590444733607148658704198908223114800405860517201128018662622191633093781814648516712596333403357660411457032311979567841749035395153726306411940950171224819264952483084549798207096520063972364198580309103871718678854133529465416998095185943521326308137010230638974326009930513037851151533823504265234536314610104360315728854925895728132685220386251886896126425007878817570291531057382635927892725555350395406739221426694553384934764564383579839352164588022297553457380172315939118250338221072947269704469509038278201456168041558192480127737844497724339027677363739893360740945831976272189635189983481864906580751773227269811265837005947538042739525612412879171548732902930968061479758126009976973780276063643244012238632219095065547082254176548959808793669013716801880763656766018351000305955970243976324263228232247480401485206424128148766123745520047714269548490727483047740229586795817076579404846537916183539007067743763936306682633010974497381455446523205401174091861548436833567856110488899354892750210405632868918593496373428131215086898667390573763391452340611606774309811886569800952515026818757546971730991425724995256363481859227077243298451471956682188637049378462410263826651643755113278968038391091164502637460851183405182942557449104785403816982840697804611437550060069543945932386434261716328077422643852576153104098271994553301405146599488119667621215783895057837088442919850366468447258461176239179015131954004617222599871193988395879590425557352381159626167571747607239029533933244638307375439060144773460639997905536357853961063685346683902949430039556584508947082574451837144325232548111306708165465510537902508713499422711189008560736020459474948970167611433716321958526925943950174784005390880567098151490013289952686880936591006090202244422353936303117757262773371688446148293449524165706152197356449412464654846998333430622308654851639634073740131910851084311838083127375890500347685588863705500741809310748507404450723898668059286913781418119665793942749657053969822491195130259680538832748897642241466277714852920973284124117178103677541628209433735938561550862662864673864224389096782820606045299897370506473204904228233763788655591535720160277597193998634801695095556681591573628348954032920201241655284117949101140473810746068194594602977760923479460940992121871324024167810853520528902550546547479761002789762152230421294206624078127634743742055387262428519264244717873274746571346315571568022462168635998523052492131980999904657687532700563573031204284925188890783643827930831642230759377901124278395723175793779765211953657666645011073704250004531011375258073864001120703413418630478108874030982024878108866764979626853697888118537605051266376422642219302385745080136395948223940073882690023274843233777343421049916392788004775905352248095984253299176991867171976521540795764597086010753900841015636898113322869714418202686905844665203461473684361112117457203258020836243009001201431378135984943348661164945070306649966472411470587591082658781482725730597663731580943968695829724887020737075163766795545199992828489041429085555841876574709749643301523200936418073739839842048569987633488157385228899941851846031983970050398023717030783060839727128474622021963481139509108890405355664330668432245352071293737194906839489412710885408019515240404930738416133283449930576406767922244502721821829350502497007514121672921469451341270626015395405952932199836180069340946896125268898150029651462761047864960936573435818701482861227538272623252829700174358092258655625331953199138385638541067166060091438496700215745054601225073404116150778921863054624872503327795204825689324281690368868292846196445992176438301013365880571809442256283267258682779587728719682576546712729859014569007862470997748006143833932343802610526312039516950983187675439389873897569143121323637578386452313572285762298842162421992825186513774510843574652917089312706214096861616252602422710096702995722931674634074044505013834757361337413907348354434251906183822061578405749880144045026998485893582666777447385414842485521811938948846737195844419119759054096136905705804370211196736391675383321088098773577717189607937101151984627469463379878991638309535639924030117135094601810344464457122021488971639619242893932005075622697646008618743677483955572819340444668695342619046701619400356681660357787399889292543021323079830536028723450385829045496635033797613421046920246161230938507421317000321493464176427781585123756888633173653218009445117103609594519348505926339579061447177829772766733014632185563225785259727011030881874020593797481234556550844538380834771985594849331461588953220722641756920746122600736434169618251141484894288507825566567345013619603331758270533371611348188912182122965017042532687353315932824769211673866835099747293261434075096936270776725701929196373580599952883801041216413754581244918451640909824425514671083173552658371610415383713949348332919322513051024536522662792299894602240099198930926922576144528130742683697728877032631056368254556491505955666186871510423197012947050720431661490055779005135791144618628103279287217787196711150721863975323756421760029781548968032959765248968448270934566391659354817992873935679763112295235438210725423649698487891316905803667347401618352951536940986222152962355008459491056362428584136785887524780873265611015380705565739766946110381376174756162544359745224603882266393194132713793656647741564353311179350352071403166089559979692821402099189505383007580499789334119435972365339390055155549115941419789743693105183862637736369795929842681598382868727469597225999163639770959732017479046688678639331083684214602757755474819249729564455847189187833538796765364088893271552565324855511887439283724040760774146926006987876909888372133012760427741624297705145871195314406934404918878221399799209129252002303849795030736677918931851704612862117403659926896787119951271162466097091776286661525834616334378452042690602785061850948253918486612850778304184634791055669418869812607533647917516527816409572990054995688234491618545441148341341991764489540857522768959030891798065272357301765368692626170069353419842880073880693795831177298877743003566363320690309424914462617513314871890115178141742855128908768801967702838607970618742586631632620734809308219656575662924603620985291941415653990828550824555401997368240452126836133671722926647201219921540864304335783248214117473237872986738469474341354805577617288021933149150293544926779451611240245791345940481215966069345968842135601557098667186668320096604237168403390635585380362127352911723621018823021075610519087250046139291903900847554846185187231725066006739522889680265773629265459082399584561725809310969188690898156991109655858463908901774712719198139659779823464588665825747977592796904430403648697976236642280783646611141063644098895750290139828778466061789839916835829629872157557761120641324749968195509464540785944801282368591071153791719031465907495012929026161182913816073562229044701716803951752215617553790381058052859709141335560310120653794110028300618893409834863441702766922337384095695932483364753847330792060870210692206604230640909363422592625599086240126726039141537794231693976258194357978779218938014769615179739050546791874982971015009519227889799806186861966014628591280628757721665825207021605315444513152592136670056060096484130599719423496231138153652260851033677952359489493260022211079625405916676482661226965519861994835195281711874968725764367774684017078594030293735313028240678286525605762005955017679683856625203000854735456510946909295930601932717964694313934587939342148639445965351401407601061325978131585980457939823374579047944673787142620410422143612907685975149395991901616774918490025391463520836964890332760265399887683611277712807096510009888720929002783178806114558785842167479274229591319220137181604906113070779655052762106357167874433317966050219615459855577566783340630794594420402920813921407187390576995566334812081323772284781383452313011584228526207186996022441075199984326112548737051642168925465072511206170659455224692319850551113261450575528889917765118150340907274082461444132126813163494640955997067190619909841898180625516771980908569466297268558274957993193155541678583172459263360576467634566708410073313156335577684940225001049165419865129765403953470463752165182708701758228273619494589241529475149482098060608936641619761191158203287754369204983912149637495118120367835096658366886456363622854991559632954539660012109516444762917611717614298455772324193531152001876663373979249468419393020713599350824319196938954729860255927012390538103679533308458124786602239427325289722124935077046939955933984210270713078547661746430897911979451585177729691328262259943455085857758844991425575024922377604299618386646460384574679022143173685120212830232106611238301030726847820013975625704836078692955548335744928057518898183214244433922846195999751260772116338088756711897734389299366455623129484340827127851956850586663877517015943810423294683942941313704555178308263994742977833622217279444396883802579322048693020646250263061754190103920379665334122695746058238685651222393277543155989616933435692792090758399144912114256670380640952991484677654785867899895649812280317906492445373786840213295007509913314891596726373481070717898259541910528737326380273960092642831795942269240414889685422346590378860381715089704053525301624232234137041990306349624238586618224507841785611525185784540347571368553573327610001419275517715053506170061072198636446140063785772647943727939824916553980471557029662148318288808981397981561412789750177891926381243281345078259307673587784218248417682147475851123509841872113515889738066362646048110119644861437198332045181680604487592200204496375757754322224241330898888219964868564781673502875276662992739173702606818763116184066443067194744357339535239150181153836301880341076865974196011348937347953106828571689821936136752790930576390065119318821349489199227031336556662168429364046775636750971479986775138832516180335341123366867091391414193131687801801874513701415859420220831210121192451193481142028508466948865683063709813507106056295447184723336644445894024594614338578171639843134988178870284779898073055955372954152108533786927346602364659491107783198118273761025452489914401083789929451335794587838199942599801913299022265496924530771945773351840072086697236684480841058169432767610779633933099032632370403197446429284991066239440730839605247176110709058849908983064359351539503410088238804985971035824043695954853104004899469056345910577043265715753028531685270444135924931102813868890887916464291468252814917918283867141932386230481250939763270531449303830680047187167395095512055422758530872156588811343234655505779381852611327994219479838346288977111508259434563408071686057476179734848337553766885593258760422071150553714296840729354474406181258298423160175225253772465393221543650240763516155515572028096811285403638600206042982813914154641854616853200752504734154936568356785981114762601198317333237469511298182627721052373778287161063629740452713167764360179965485918798225373850852674877931465302188932548339716183755240635816109312145281068523722040834875892476087977430927646821929325576931526250209484174555566507001597470092609273781287794427092202141084311136397843785703790516928782061945688983302838843859996355980892841481668423977564477882447062006587332561366521519412921219799173204810255591968092632536259409161432147606934091712466507693752370002525043503338884924320738629095882871629291231508573971097548500538916986090683647103317300033060646129100413640587536042237119011534120841004571931551943041791714098689597507964846327844151560824768948218996440477111127803080558912495274075793266562998919682941756264206889005616249321454542600915664697000657754381819605268137921399403538444509709433423207107366539374862270691047237861859807582785021897650534368314014039597370486502238873060219326135850114251708648296727872372022352642564347493203776722729712279636575853544598266357958705231054408623254077989804651863662290521374257021369686679783468485649301039269934215071014250784154184763794878825629999801804075054297564564760148821786758131717541767122139964047801982019882201144709923822967640577674602006532489693622075112057901163677237785211860067422341964491531875999640594083018879873126746069316509730724200878895950912408388823421007541438442866831044832931192627485668422810636037719825396887261231495198940314138721811831970799444592940748649871035188541739911411637241933741387373560084147755654365511761287346379393677384699909312261072174069348265338870590645433944941964962306647529495415408884248754272149150785915793786912362907191422935711575176241692467343412553815673858976438889602027396451556079475839906549925545793893311005360744463303622555313103424608781620383777730586757588428434479466881941608985059288934211744958793634183675503416231347277689968862080318233544257108421643875191991902348611491691341168340539404817539616079018655359518848406083808164727371821471235894177615372733537755947168736408852214174241739658368300953292937072626242661367209373701170834951677323337978303283790389251659492760712898620472591680761651359770767663762767919632349716390072822861929334717664968856866839977258946767915558000340709878089870452690346284238148243276413942197313626615628295931842254395080219062143414560155538622545712148124326575035663951473054235853138988097150941713200196511797312616599411986652563198953036145561423645212019104220142216540712490327942220748055334329457201482927633710525777705033724365125024532138267749068192181469957592658273116818997254197904143840664248738636229526901243389956496587931492586505188009673359325126514542094376588042555532064400700619681038529235189890565723497880980459721655482935600481803621225653033627416018639865349078573981803230345742709929515781693088189216509636675416353054308857195146580518499549061397061159906500539859963273785722914649886816641333010126039998155168721921766694269111739948587566498501091396752142361254434629530283852576969799725804977089520880360058997448123055907039897545502544002691600857347601419945423776895507430688667110722421775202592147811069316040560861715845416436562606070978464009676696588807544991562204437161288196523336099194221119861208450450220833287994519388617361857517697668674290748599896626766936704536190701189048386859344183496335778928477886404223621245194894683832750831722806773806718983315815543670904101745827615758133428058846610524068781004263795818439748492911705009718711477398807258180107766681177330182615050141124595225267365797315862659096118667620442802866355165059082706171291635301834151512525461288995813853218461374078682924293355050949726408191307526252754211397347326592474517861337108508063075155591697285377988256132927746599166679218301406076200631529684955952293612210810271671237861190968759738636798120068410762025337069178962151927333347408591439852579329154125083110705233465743119162403548553524289552366844890188169201083806250342843531897189892625666324799169689895510025604585596670817995588486997554001857479323549674243472943186440836318458222703241279168188890662733808482599762452541734591142756031501306662407123265836472703283270117064547060943694120103361979659240447142614766455895849950486676893013200383755655040387120739313379706121014050385305125342964902075916851517225020408789203850729746355433492046395151994009586948693463373693117579054633539333655019929969449511387087214913880032215539520303172821750201500726346948312143004071312669652081087301638633316886950987448280154502995223671180418812192083577129328270030634681697057991048068731813577041214061103752866646918148185027970691352359686029764230812780253189722413461024023787775584808426052088645793549203628858403226909788293539308635495216314377520202637215528206755393741804384122175600048492033278103710189333630932012443165489253973833342759748876472934127798118611928836812806434025517506629419708377645707921153628913416906372035575100651454381881222652178192271652000462098517678666725078884509331019537374552887535303087964720357302460116516356703527003415778515832399650500500156078797524041525791972894868441237810138887853486803725757887683388601229430157754228248686561271888134344749145965759293236875048278359932959656764576085501559272305314327313532579517917153810472152965082340179865324448187609902917767400256326838373999615250395454156008929099553621472591235691704830608145707828854684299022849035661932779677215887425208830663146350973556039339984929148511375822647413494820623645975548136563099420830230313007679800051288925231344590681073628985756768758809539128002834127086603288925973719267988341254612267086261397492359403905781384802365172202433177744815485777104662947623624354633183615819698004575391115768397749184225207851398715685349055446877030069389995622329022983048958637565375582586515484829413099950802040967722592282396924181366161827316027684234080740803673826243954112750096932371155543428091709093362229358791343356122269519562266101008882123566871204409699812523584868628400470495558549565084507533100585996495677248462043080033709753316158003046059784994010579621364085633773531104482983045181295598509819432926022990095054093712203825183782853873174285139058932396410694145993358376007191824446065311300458975913558009874465918816536472812761403238931851136286893897561114178710941464739097549094130233968578278435820042112029159861996794700744340813933009791441099098097603647867149931864692603801488277858980551999529671142224104142636878754076883343408061473192628822297943243877524311529355193239181519654758300980901468536421925328960039640946417750169584158489408929239936790383446629846048595047632117937250813487159812683302475106055360084586555620371495676236304070506957496328399370829143497973307555860552965493273034413429428085377924426966070897626794125768691147051636450295123680506138069411805460573815784516987559648885694109270531620412920389113530421560836606359401011580453564729664132850731823338953207343422025543130895942932459319806340608537501200716158179518433600693125921704407733766336765739359848992311057420685495617934970350667499199243217493612219755311966428418479547857332409877161439708755115500055301731696118491117878149474868207313563989091741419138316776515251566882265953487660210964247486468188562164431204148651037340358777907169543879823591424243019880751808464857416434533917740726059406316183337826269198993559897982912715939963177681269880898358388102539024545800550444583389714086631956303501992903127876208267772542854373244355898485433398111928009190497714435534473943422263962807214764341867914508961507947011320769153195053748963457099305674572807879068209243655849372679636728981832071492981056130706280639299962542484776564717959387951287555838113713574825938425463736828193813547981646776980098189384387855455726306670194986073255117603799027500311075058424163611466629758350231428216820969556532452613745439348545475749039122929523313462657317995352769924437607616562253866307734157230169936467928467679746018619260393972862368689884046840477159951358549504041280893653629972823527281036452516556393637363430924636767044437814185026528536429130229062281045884860582532347777351166746169597347528717183468260729801706862932587554112832962445116063969498697192386279599150152081079599742430033417174333561553545567930590403983239702166469762765315332123845668682689074170554715289522352353094509428833276391572316178115061732085837881053365208863549098428867636673050399125932443927284241378995969028846519303961997630542041824851252307299364910741571306420436671352449069512527735327256848222184468688636456073557740501226499558148281363340141902686520523471451569604023054566006075901673668994147887535360296176484141273142833345014263347098812438734681749360416636301576121243505538279579408997004971536196213554317420071224770285981939987698030562777381331693179154795861905918970635589038027253886061098381877262608722827237434402254291118241730754504061963804421998233733042911744963809811560145928550644797635769974143636538833388056778012424554892691656386964245905379273542004548922632575975543926388466401225891487824561128947588837174540240060323855208504455902997917168362591249607550699362887257842324625863003210424050234249391262795477854023627326109182099777351689782612914547886017477029220271856956993551992447899232553405570807643286714604009734153424442975757473825683215968117544262121625136224974638462045615894268414087247853407524778011227648618597541248001432631323992913601975452145973159000981930168417897277512938379908276954707115250185628228269804057144156214090771415775124320489121550237223437163376080432268782006341703849320634663113952436228828565229655109126114103979901433952501865976849163148251109719893001844252665925455322052472591626555573985327909816579145940804218698942637133552072298621559558437948780835604517756393513226750582040420016952483738781815511854946796008460861389821007815603426517364511973212952166650905197608121723379212249211402631730964291583811974364925872313627093262755981833576116687550317112868466190398249302398578317750489758470903912584962786850922712244141401794711269487748935300068802776875835461513261682097915496549275289522026069990670940728815247886077574762128510377525972789798014821329461080916370618646160662537503636243001133127603981601728856786345660163057862913221292329695438105230873822974731789508557746397810601658017025204425151346648463300001230751028419313438646014338356042998411402571709777712770073739161917252763918844085610025243479356320566385964561874525953787708038365954421197152630156629948572501611380591388864304115761165141957402317968351232392460951562381025300888054499413643094572196376337505000639328665735848482842737222851632499660913054676930321932813698128286991912410312660585440787690551395409733629972802400140018064870458983544280627493007656626606537805910938475052638369891848172399243730603377363637476518187767380265682663916303588898951704398220981316571794599871258531336104518923003670244509234990870978235058431859822780637730869965557603694705336278072766185726597911121877430415650014181539117406084842660553984597334566353494344418959584216337080957955290724927987837429078975795256005895323348716425091920017476538162275800591538681721401054854455422764924868282795524611485030571645057716184915976923433628035418510340483688180755582887089888775333819922025246474698174733462595632463206991079763788453066848943791601502039275145579693419103117539991987901731566538154182246595186412565092440046137846671051194381759488708710402052876677038787046863872212428763469682540215949190575895974770365614211333058063503876243093541105991475017075312373061668759145456293484924414448583765514885352984576774357557690721800715532852683486496886136646242872547725404382964651499011379286581053367656798112273701832443202542594050663694284554646024648324573105287259063721852180218622946990554001949424863072616589390060403894418436066035943290263545597447929428528727686806189638942402122199567712383362591997192173222959236792923557139762149110841066376863416405880347942971797207934074476002486117278188835821837699011631910427902924646468242622786982581019416298205754321109589198561531082913988023256570564610012729029681183386834210142947996292097376520204931978883296845434961106971453360943724893772728636966022177462766498854278311820663633682391574142277196881580175626587571399468082653748944936599715909013464605403996457379809266583697781207606040786990480415646251342006630820173334459317514802498972342752119545808556666084538916530620261729536622559239043257679713345623335305988962923839020860990005751442275564394862653756035170586300842309638662595983401860725311423267744228474966121189915627665562808235558041143275840785240387929005628525074220382822816849203691035243809315102778159528344122030320186421789208053384784749878803974317267172260917247174772688711455039745622484227649754927209624394259042161053176206403133574975329886853531687029637883744405091187332274094227506892080372445451908639335224146543745674932850627499355504063963992825719344988426898361374492889523034259595190766930706294465278484107532716118765151428964485828943814794085888121950345590325007621764204237991307013710233978155125297350734142867630038111619658210091764155258482302575882878079955328680979937164450812591998387849330562076448169215607171993901167973228847194726612123058010017467103638166211570283224604326754448230932028352394624017934361186701841437874575992602575346693223577024950149354843944825243693817935406987576058027272574614137448618246850614217645272946155237889634428909435904706630851345396248637535361135584673764014853185337600405243284517752105031361254104937943180695531979390073836445931556670519918250033961693881027631050250355094515301897012288073597489598339021420431312399428975449863907639311510391622163213239774990114383490139077243095157099639942546303096692642064562815996077784751384115103740837861927314177236629583646315117000044880568381229863586286559211030121022634543904960225980408461622408306177659513729754635615573023214380286685488957213436765432280372898525992169310877226672372929691886613130404921977376454136613118316394617539586794326528105558983584312870112035395540711169387424140785496031949740148870449384637546466651787530186520845734729861073953516672005420517069421878836847249931854232655121029867759610487462980300334266391352566874974771837352634523116236566161448901371574718865170946780357088274971537073985818022016270681846688646493263535162476391801932931449408245968047681676016583425769133997617275557071831226011489956113859555647002672763142322933388634725137983637021861294993345870601147973201870586621142494803009152095210068789330318660787270545536783287622912042742943405174389735019939766826344586926007181904049412644500143665294741821966630734704281478532868995609452512974802458577286876887280566281250264874551850680711992959093323157912702065085387789233324987318592095939631501598672472899253585364912468267554029012781984533147921165756171502264905421156237743949784694889946294485057671792693110723283608971388559845927760233560457663920481596016135203447690891144741369069247820748265203669000113016817853331712353882341004517230319859850749215348358228782953227130522541124335737701003442655356094769330266656589431108429598938349257403746822845535618989867219069079515316635579868741293701700218457381044246753826809322670308453997809820072348484034088339760010629289085575940285975557138625437689410874826786071792386324297635028013084340747822793752986528122654414956916019178837919862174414168252058404301301116280020937084969239861385688562074773079577380796347259896413094810785549319985840451936880399232843450496157603144419633868127338473652357214246957922399715162697263846094730201248728430368738293056732637797236871828201551739820648410263423498370664007657722676604532028642966707846500293838961964783166640344359909414802880386338315080126070019431712812836701015604407198494970615358578443396171946974198934054320855465324448433337253481062390575588877154537776199196361757154087066737803585925253252373496847291263392581361030244116359827920608802499822782175979938227116597224954104684143875587051354205487111042357709116086803718753759443762977463641051423290341456503731402512357298271465012075527890765980545625871829899035593828608478425651667559718108331625088026472732170034523662760803959114407869266586148791163224393514399553510909787285204799119343197199430213807283465272935857147151344215943780487988843541726389402472465702341034560005471109718887257750023258631115186218518025426315151601813928289331873431357927792288406223118300928782181766611009806655691237787246888036634961988074386755863142095282157795117272713451900046465128394580001447935576306109809583885987397762220073905805869525513822459548163547496320183354853859048896083696566451692495089062606222415127776013783786515390039430435138524284536518272081982307984748823035268453462431403912396153409327617801064697629723313968081896418798992142385965078037806589237060067309247708703011489558962940358917897814253000957044434760063741035031430765273157152794407886588912379777049754869325596546098687109671661501728749832801449390943408314618984651676959335345916625088384241807336560784843047073073295442384149872229143792931199718670764165188924755602619913356560044120842572985735507272049591331940121504252609440680361496329768721414230825346306969220675869643110138410333162559412872765699265131312450698463398713292801623156869438466146531132750776792423986585032745611687548549602702446103680427839011862642316764889248141922359618327586335339128708934336310230675781651889189958539288880938766238288487046781664157074391301539836530873272748525104327439051857874018596561614977018557991984670795138190308010181600163069299342811197362343307397302529484282706551046742960146098296903062188923577483179967254614840569470712906255108711820938138023378372145701106016596254086816668526092420791871401959392839591405796936348580048937126361651640942801711936722153324274666903786108019712186910106362035961067176822398203966695521355219265342334887266446937915098593416980632698180935202789928737603310437131170132319119677204781554926477365597452961647480764258199227583924119544881254872840561776996119443150049543606486539269933759584870003133552588536520553232625355830363569632802763680958834090825134429500106375969023784906882738622614094673075932229640651401037584544913092548132175070714860921698531044897419405652198863662487466267265244044502252524653234452439940594673407955423895426010508573032005803866641702581979322230526460790498125634073893501344595123563095290618320547627904146498338621010668903960778468512822295993237016641229301403348094986901381254461787103361835678136599443148099531179568961443296893375820642840309690520971002033054233090648732476063384184498996454222575076875963920228335381255470091990896826289823715471168779810753271520392867145675296004733972395565945916264735322822899010388808251279135114519397718281603338165564525778472026175021557695387283759893067213078106134938287851247771310263436669932294691221087369774591227118823219605438508999340112839126582111885320599978352943307948408112474712975830836124320694728023223716386034872929708994736874745995835754043433027526054158926922337458695840999392164708443883005777590776319189954335698673230684448461012898853835831814424231013085439043959183443739279189040880549830567992494017669013649421152098573187544185545194424152049698180979255479418579212446041396639311491213266304457813638216871714439296811781600348579909325141038990549951580585071353990303259601400187680610712528035373077642945582236058702179325055263525853765463725038468049749480201726823824673664039139114654787395076386361092027856004220999829743717106770714558073743081540428943798307788931120293717322605110037016119260452795259138775793605918677034482742652494478959150979600488698158769193276341838671136875528374484488536897216514606443334176557993206802804831914252601981130872295897486002221108521304974478106203178927111375598643313568310249291217658563982698178059107648780455902957297511137347861556125015287061010038587276378725183008363844746884270043306500073461229651599839482077187070397289735731540592773710187829398930448296781551320469023303058377029753124180050464683385330520229297672854124781823295111966413633471245009157620154258151474419269105851004349328622152611232602615787459914728279125440560498614948698921870068583757596730765720811041561988172046015412775346692436140169706224890215500934457976244736747849722429379367336634398800821395162516006126317074691246508489384566035519096266651116348069510720137149454985844379629005911977059442452405758644018456280668632358188104310740118767861488316215466939356963466389216924909626771172150932608444678929507433965644608978786882936184345380064763598022168096936877004319780349547838498789971317262443838676882313499619873753726411059698244803896859767713908203733056689323281214515500304609964424827456114101285571952510648040914262657109317005748458781512331490995361047230656460678425047469874842024280878536289107643199491241600589897114004324844361536637126986258174857426018055153047754941300742686267779351039995055667522497745063293300294998760827209804752475048503274764655856191193526225593258620512006640511795725588902193267069569674594800091727119473114503925013571375529731453495501911939297998915416162731384041251065720794315338337950454201994794746350581590400372391236625035773013011631402798283886217487665050099609824762078169479262547971156819109904257166994518910978950031189301841567475261424784009150542759185812677886557895871699016544448343059091137898559831295992051727684804329852714998360322964488491411168799465252691676651101639927934398490217550824898803785765681973678611299416516106102712521543084193672180926451561493697601178244182374803029926412908735403304067121293956495596731392079572814047129109971751270726200567057596584229613314007577389333588136927712395442689684339380521789963075577454041017065345895345849574068478413862693735423408005765142702167104672921640253912371265770977889118387649478888170708685862492692557514049754186916761254747309125397017071004945403410595447764113936561600018023854291465259156614558474270939482383931131391043197757166784101440874220946520288248785620135638405789906181128841097467576570583602765739628607179881561160575829839335830936826624596570715840809103353818482920264420396930077106517726938143539149908463449316227469343540483169386702812666768610179766788246451512311670745482731043417898331158890886666363597036864329675868563259974224577395832488354794578340154556962337064246455668593934883579199688172256488236868872951302980240331867565103585017554158969044381819024694680818001143991420383453924426589669360799741524073502385138678472107773599873364225563923180789206217960003985580504955702546672490223519573436629004675172029106744159035255097944865462274256275694451233753765465573721680758641876941999834446503175400497364830680079777356259406136801687101872709429885063131795231289987412051044415699250532414004589418475815602973564495884752139069575832888045991602624802598858026120456152808814578029813646814287953451740128468592418293267254247133629150300261939708746921361429312596287356050652214619387431695883758993085576097975467105238176799640465197053919393228316500541332878024741168818201739741119659266644309828973294536450261629075801602891850317857361628085701635455412701388051953478407722888736173660273783348255526000554357400502758792385839094297204485851442167437313837182925345979264232392893320825505012253076585624298682219721611827611465987425690147882419827682780132027946209989117448538545175666432979001356497319287254395245667601995575835001252447126162337056391689627541081705560577639260237712365392194025718318492001118441677441745830050198139672718818377106019881285936285690924260615662671530022775989978920474767115030081418482744597646634475891860938070644726857297486485663356031410853449761007992017568905655290722237304748208350357455440997800098509697238074442212103339907983515909438388590257297070985562975154929459193288139728598327206772349919726552842407214020603404455690209410725070306787683836233980115511649506647359233052352330224279763492981935948936003772197697017557185690381745875202788591402526268129185678719506393482920186677138160168052857931852725412291238502413234993974122690968942395426437603999699624155555201924224379680836337136575776522925389180635938775795267292663816764998120871019142318915865652684271877132607041829715224198255049846650670109017926370240840493258018226934346205421886991932086326382835068796824931699284733928618432098757908546528387729785543571212541604576267878920488012292364097904268178580699088676342810010729997890803708700777231202137793486647017272980385631232485891293753602885747391788625911983076162424311085755011924153971058810206919844646746187032026570768836229821020639655132292243092717819718461890294994913005297600660790187307815500757263416406023682627278675066217008124111098570480567914970768997521303503263379158646907311107746667885196369048757878840859488465806820329440327507393588339906343526557280332057259602616740640361185377793832831249215631011869194118706104997867723782597829105273193897698142421329391909203815753057399954873277974666981302159593587026452566178426022212468010166799323201595792448725021134203608819391551303332703875564156623893305732325856991831041112071112880293403170197473745539025265160751489805008304455403785864179243329089625449013969677984839710204100181425697172776942130312932412457738744601895127431458843466281361864511543914694576439676791413457134135848622609772462419248923245168243637056671035447179313693670993264485119402543600404743044245150235557211983833510695834368571605700173820607736420859042302533742805605361964485243482115629921243045267043896584239289741706419801308747878717866319999395586939762411536495053846703762037293530190602860378095789731166579861011563151317037734199121768155743331699848173600881217139340509050284137209517313206264095075026943792726979565744383036709679745246546848352311851603577097896916438694897858277383371251677191926926799705912817029302792958618792792202270849275586275771489983747705462621914043383217795504310654068874114584517681569713161547132752665750815562516571317483930305612186369640243910639829953280738392529875989407564016275847333181724802560984577577360635584116877053756164716107196352013958803296457228369711221219138126316238617001387327948282897938567104188032351595485986059192634367806876059924696289231884011858131123257074718543528145559887502189833587394065541973113969336240193764025298309261573578605954315180507171320417372706763429727266102826692645246676975827611266049905463962525638937353922346172129699899726220173444628384372793163705622662459317859235107752239936322687614698808033887335639805103398459753442509515341387185181276639151569928195687350882256569420685576289647028665455389492251083746389913067182207956120091838261871192361251785533495025114165495037419321706331717854647797699034298891787382309812190302679578503725355446980377453460091521149419063673314646744692660472171531241921002758134992830573770223445047016896564744452147165625404232377473195940643687521180713368473780195864559693319846681426864859276511373536414069285983393163215852594682116916691934619838730278168254947461243357639336719741584400000068052752593557858375089220327228246626300511318568842097883818011991358115368746627488777072990488921380078298959986492688759764441793802852946861729902489587267757277042500322821130455570909395802260133885389378759077897875965824186801979779202277713265725941295505536561033688359980091828070738909246898333006524226697840034852795446898467016179910295980817157090875336676824975786669226646109904253534392760591402753087877863453748957484386977568072305127531248490095290929962171794745704788507467616061984361865416497762225132397298902514247983064678909101104145387379472892448523005558060809695430149727508536593363620638972889496651810564741313252426197667435921539826384636710128972405972604633201817561659662222749398825427072333246394350889391024992844576956744300664056816142588530627865024180234530566187417948525352847130792055812487144602301619634174380911119925289954111028656134714082105641087566594968093158215098318813322555122725500273425573355303296736027118480139405790888522351937175651454192567807210584828066608077019366192685429354782425686348961327260026547698294367055675135162392174429540818059786354069058548452712497128992138842546836876310787552939752051368799128347725568581588077298032515308671156552471899997501400330412083196090691643573926836878225841051747582496879339088981079189741619366581104690193465107590961244471119800328386574562260037426675991345226984145566656970012124566687324232123956116843334577229500263647705009606762707043404844641076165617386319184047459010356938760971371023575007068644213639564544196281174711612020194398080499453483123490342889297142455002654658217515479513436946665268494144867845347948331496332653787974431611370384909699912093618284696781127367441819406235865804467797730902640536738412262272329684440962464961508808355384725588865740734888307696001411532569404815851845538135846220639691294337124529729656550592094206440919982388923616510120839967402137912344579242770474640377398800208084232614376685672586799304274664681953237886237436571488685206701681315487224740141414714736585822363676073823244607673696787982260489269862146010049809955795339050165452029361818870876798344237827814739544709389552557373789309968264608029792828062948032621293390144229835627848132831020572926677737632076267819620012330189525832194279318628043935574398306262773892247911154842220796458715057261856992736366771830594422407201784719582022192731526060594244613839059775382375365095406157159273406929474706002895485842532828758769411286241865797132400910758949655609093242402733640961550261684064186519003501234131767255007398620856488454189399234793271333104095463504460938318366306325893866459440404200260562197409092734320687685041032808268369402042865636801449240264640326817876979252227597417853538298267986419764211504426260827912210204722758873434207406245865574489071801324935706398625700160970439375420289477446053091003352498832646332406941619624691494052634900159015424657643823115684424580698093368276336598344133418399031628841510890087941821112246627956958881963822726355306088349492316160710150923304510565312215804983878413035686193537757842110783886156370266793390015517041331575051670669113680952921397276177331098711280524787121215130682804851197049894255285801186155451508632222737654815356335792772046635923090367339657374320733455310133699266322756268556033151581818305989638557240855089108792566642160644194190940434343378053543235615475339121585285916680844037041395197562080151999495141551041240413296216464918886495297086833087982725654361599953241402975705945318245130831794680417244115413409033669044621560833378301991741648504966035045360951909641687597740401586724516052057121561183794376873429403256542232564772533020731550140809917606603106065909852688225822468161847581414289658228332647422500706739244353244819673844933942508408177897708910348961192287267054372546461397453981985947922583819991208863137660903590537723415834338720409963839272738164997461076207525146336726093305960463100831651470627906155951058030859461921606541516862156393839655175921513961476177631332876640994235603659168651984994607303075063771239676328199597005152036813106816253375359430239953832597560093250885347964415752858256292559624447488524488570847970150054482472615538256659927405780116254590389514068203653256339210149148402100333443571020042688970117117064815008202965378382752007405832595626256214287387329976090392358501253307950591221285498711316480823646535725955580735698792848663538152871567173929928645848786891789084413554822889837087867439067026871163247150497626958501908384771937147686574906230010252238115125124896513042355748529937670023387368915743779661911377206432948485821677202452144214790414146323901731253725402665349214122392978849508103508870078853937873754002892061752790603909140048863565390881364508358407528630661749631587443015330838724087853311376754177892201174816818231250178622373459553074511950294793939155386905614031474313839868845092531304642761033620156140556331036407783031724676385643454133352305914368716855411260755148048502366597556978188646626680135180722447108227242886678451967677681676040114191857428438125772069623271141599710608433878514796869928477736490567528504181351854177533990894384100563801754496172211259662815866550423882342118790117341938102223971163264781126845876358902368801950981327759584192462377347824946771768976370996397077854125752294223686901188733495695431503158377530257112570256885704816092777271585623010457397622765424745549209858545261261845571302860393209051163914043806149349517736807432667192802918483916800861491183038949386967514020468073993015499837339817502021773753508644443551082667134739233474142516372306955183485921105277489696048366573532254175312219570255594300905269745854287648238964844315884528031657970575542118851848709785249190253860251305610153462689708986529068591009930860290343512046818669397010057426048984761467713047415870560757447027459441006795760657448176985708117629639870891947675668585777396891795720141058703012098178410556780230981618285240000283272388819555543152388772577728422247492970737610993077496437599539426407828368517635250586415177069118473720213214306738260991480557593666438737394455104544396834247340774530062593160699659103244889199383577404341149538912002152712001950312688346505626886233670306458061101393934297501952755318135805303468761634774587016748723094203139238304965437119557958812026972331773968130726821886867135999494985321339950489040440121123431189513768661971061240812760863719098003405999440063519626583120079751930958890846624201526906649188424983024610561206719326414842639369429033141815914465900792279143301833861331996067868652330966772921536400641688336601584322489574683182354699813074474684947700837047548635740119066311327434309710553231889989437124543982087680947975968919022452425538364387600556253706705574267581982758803596070597757640169381578246588887913361718015480996449911501964068518577775875345127755376265007470161982660282014637067180851438296565085743458137235318783480302294452440695567632469319520014348426424023047589893850796744779686221171366340487898495537467661249771033148251032182447112840805915902426355595295503854144334277551149973921187394553960404889565514347617026846900585856729170287620073860136653560671993671170784844062562224939150069593723529492971395758740426396106707543143824454099604757605613773706252232207507325966718186513624518558627138707246020694357697596139829594685189077887522480353153472396302003609129485295308218220067739008707231129548550224493340352503515760316948107300082291541569566654257145368859147355000393810303792491046489580923168344445807354865224321732662735449964697634040228925656256857124696986906086246891504672201712952644023905838242517280976851971059220176695052766782644990800154638976693416602425475804714525314833039536669442940130928144018305020090858136770486963425600364759683503032964286248209862307323618366152177399233514192397682587328714889934323041338689429048153768997445625059209013854425770815216871301099455201231304202612488980775968179055531426034748718738680370770974471293486743741821203704949100686493337208799389757446757601542673211870305458044648198123942310323013957987479605776595780997297756179513038430062778754839643147939145768953385149410663013886521428744825900909291627552823166449215084962420606110699903484973361379663199284865314888370249952665181146620105024620285025958112770142183732889418250239431439240176899335506849814043450723547922323739835526595091399222340179550118018252787570817960443625006525469120243210758549101576462454419774154981964367673505360522255131798155995275185720192862416131865349627084575805759303925109739249959398218456164776504308298394951880975408026896692087457145528108438171685270886501505276140186506637560127713548551840167755745883678914216213005585126585819635765747873037169483256890433339978828077250897595626709030758456166012867504655772916777449388654425759266909071622918902000351775705694257276605651435476222353585148432061142969770549676843505021335573714597380865811293688298685505834181893741577836629210676150432049176940572864715643301068697322484125187421243732481852580656497554547533423223824360865081036525058151448609352172742981941400064420575142632647472597386101830237423714150876440191044857929924280050159642864139882958305160256939390561662582316473077290286313727337233261619832448796659891889417508698742901814775637464583127009357070196007160155593015374232580447483188175398428278343824394554103699854108273276912607506414766301592403342741019388881640510955916899762712100755993695175795946833473290671290169649774438954615138095020895624348659675638957647882096264508619264045660753864264554247012021239725556936149862363242649802105124851315245755086139206811595908341688852266213012983800402988603131101440762197343478153553907100433033283672954672563546051415155816504084005426784722386999016546695966936766924836729479175590369185383675368623115352122147328165159121963037703393098021133257708480604840424581905757115074102643625129033162531413916532321905997492897616901163157897118652614793402767782951322260356088611432021337305762491162530504881381994755819535041296081964355375691060486581163939055291156237716403946110323333299690301748754791549996957615683954807963219291634213535515745739412503920237914734626904732549441872044195609340882211217505020293450391170171388649952722828563150861299602951881829296901708778009521241189146997907438164521855227977394001795024764314827425065324843683507824524226993399917570017656642051651592370869667976700713192145474836364654527461410849878079044067316035819808649881734600071713732699513203322429470304309665070663316526666096791469024464784011760246514766361771087307059098873615431407104744640465503855399725176006196786264501031159888760490231781214265332859987793372790634370720921016742975155081780181772954708107953082732035426070438686485320392496154955295244701148672170029063087974182674754785303212459258886290456970579905509876451212492093919186012459969787516039554411517602287396054103324718353322689930169853446116668991221922334357597916209797557185271094128556520867585983141694509915151681243847687216120878359602467655182605886768799316822671824012761167665132727894946197202133049404469639491159786466063235929826793754938769783573396981472635936203598315087290006876348592410431845619197417227745311873013041268914285653480962465677855414002286702365983401142723537985912652378537001867860053260331602651849110899335752279285974385509253194237173663382870289342091047232587201407343532023662135638002172942127624676516244015830353896038973336624478427648802679746398072266576311322228006560559593632190059396314947662900003676438444197591501759444907322152767825817032085721598943456412362814598438061902770261058428477845555919166287777358502293313120489616758987721613239895557605509040501273089136761805320909776293061124217924692117790087508476718502889618075445852051943274823076814350471366022933270152512907827140736856019579407277728697028135010982435172648222691357536521186005514364869696665089478133864697720268069611658093498410712817777844246857446448815997843151474408167758621920843430539715304894705345050505990408343722528599607415400201075761983268363946204093519279924928491845563306711673419249814745885314852088543117701691394900108776413252812794997222082430994398934894244051188118680139917925731283880075284871386072026510024376065434673300380513557300979811316141196814095846471540630594530571354610934034684471104248857702839918531128229275702372429789051821607517073327779779800206871047215169391535139266068122532051682473134084579233674799357999304503842536491943651960533445114333941467033821363770782728301203400668567970116107484885589532049228307125100858295115034919264497003863193947443479379669078973649625278611427599733328542401344942574021452893568062164199868260079708843957756151506712933082216525437588544092052230916181804112748540482642642455334528121235501624941452575044695144705993746511959591558001420771028937356958638511776357061754297843924829401173056273699127515927748748151920457028403870316312722477122547730007734891341537700710456516738046225688946026386634040980167623626209918674744165567283864590893150630247223046560877176878089067281234929190871158644306700894480659058458311643252427137817989789817214881843937167541225206319199885992644654758110543794115153577421615531266649485421694750778326300561810378012143813534353695253848756449069801256699383093391278252342556236421779692807471640183580927451117578837830025171860316110702678558342172271847443064199441222453860968365152933175378852142762904125199589710943144083717736019636938433591694254672354840784239382102759780112186456186475636453520901011248628468698175499427671854363937329596001996870944535313774064455006251817411487421442742633978767742572868596338365322720427832622771800766845463722215886096527134873164505209871783505869738039610285997930531537403938410735838459594894038187316623951886388198199262346168420703076336552337810092164001067714499079121495578852225600092467043904441084957211110518487344248691035146830757602258185502548975261567681748366777632489010436328920054992352291665337727446543747070640856275514626536889003006870356829241143309563145351592171514870351149649446531212735924880734836829957318684986573120338957623609530679973846901781906543023201026065149727020609195700378713107706597814023523664275585533908308409363777611742201990628853977434074787328345136465779312789511819671788036793363401721630862418531598518440687494925959437523021708717008765097270918828851734759888097399939781416963792927801660560338477385146617599396067286797773493981100193464235919019371202648844794552813929552415947597607301767568673064470950363668914723935552234846621832167153736021069204000598764032270647987977839976223288835441001860886397009458279652287627902495884862044053574339270650772251775584437908930616477147723391083771236074903778633068280071585812561189567372071049321685201441251780444685352524088941404119668109696936115673277096317211871102617011241163799753045894060414412896789059577486864060488247644981196444994985848858374169568945320919082839299583820743003400931475849124946528619544349528033441396718950291487397123287921159085865592895910353090412178526344316912670717312639992962965247371851882333149012270769133739449488415607065456160440117898171595078561840722977971230683093322796638595571690368193025338061822807594651189296643998835825303575244015774714846705336516835642495583619824683092604124998256468127660191929135385136031743113100094883244039953913185902058637539679622833792864212232653343089135278119048107371199373334756270702282132525232938180907376607171836862021333006628469380743268072557677567533860432446185727434549861794497024982542555847238237656556492703982954881930531729076021953639277956748845951456330815253297907921695775971688467371339631849105766012576238307059030392537182779719082646896015205839417645017632748755972373700024353566311568647518325746285234700986425516862882499614241575653026458373376957095027982303429112809347022125364374719497947726421253116463186300821478225156365308035354781207877455911034781261859245387423966581197568439965422974332041730582004629174868079219961492065921599046503559376945400015744858978554101010138144367002183999661382676410079549251405541701209301883921537829635227650900047600566955915437583884075325225512524228398168683273133719155422378779556854729294973895642021588238800735477765697486820368400426426928293443691644951597877032356371000016771422597795573885597471967392832235870591650320058190773388492660999957035339583902943484033063841059830612008418466599798796690115292351653258676696441974945798563806938988038978697237227694715442079495796986962743480847357480868240767710998954592440377602575476864067290953107559318810193092049781163514219311479313063298583036826255210459249553295119726959987166193450782931207143009193375804410493552411461135858422450023780545211768763085274196247806352629117817886037861237271335752927948293510935837722122346412955870475250048531818321008330697007883894215560667829552972188023935081250484322722144769270564457034862924963352007425902766029920598854478420643601921107865003897572256850847905341484337184874964186848823908493593188659923192076101232957702979030049365115951111956403584490075402593597524536373269498710259946403971672570954553322361948137274559761380104123414795215036267709059607567481594806296398421666435209517514656849660819172530204189101989230669685992519896079545103793095168968375569510972001320168348765921048569764061331183092674519255400894783799185897610488661082543616423979571947882931853532692708525474920118722031038418846525664968670052465212868423528495026978564700028705260579373050480466940901204672614711359599805764626503772042371000650707514204983545490387376466179447230775807749952812003418537101371437295943223807159342688038900105084844414985829049184350810167692269498118497747556176536738992666204197632071016688937969380757925822086101408531765352202179575000219258983135729228310689494444817266223268199520949496457306564706004291197228140848048751516061852274683155929673885611619537239037325404764179547153421001118531332557335539140415770155048844268782735400213272551765759945531249407805619088462866289505612401437555144279658164949724959973446488036321027869689492214942302208801890084184437352945669793292190025488917465151034375864001667071140509135857600509343176458533407014401340697260803299558959691167195924614044539927115662248390259739387771275730486690374991676965482828446625139041965568226281038637427981438748406250371695739408330645586580837707265827255450908746203138901051401017610118253983964013846023583700553185029018367931137783178500601748424980314446524619241585576099638093406749935467334403142408263217895077103688363145873906104338690662672427410572608499626905560561261612992288486611779693134111504755586997605562642446263172731430313461101375085983274051231828525858931410351453902426363410953483283218568712477113903125338373212368264169746553766123264653260736025872557752506586677960263630515196512702954814957157353008408892863839578573515128154378182844166606012922493927153462158040696601194579976754614582882974239086287160549242892221213730444032606936709589841960227415045526341613962241826265163837626252838276723299571756615084894034772136635855990319237415173800252745094635735832655780539246996998896895688194009007343261057711167671721369490638889785712493427600437000341998718921945836725461423116842112156421038061136765706323054148088583215169208773246729590846702117782692367148145234731655113892824404149529099693041484585782979159455908819311357680360816676427750682289298155425984717724842150679705886070372007353903928344766963372107720887344999809358534684320905768883713176550385530478446206314954960593859699310330474349418982195843490992311959779462592671565410908069792026671342866568068258752408838635818161644711704779641217327746131110155323378226458961684663921414445952807845709943935980000344871459433358370759734710538670054066886564353999013356900398176030947631019894100456423484143077643197949504309810378909543030634412906483844150803956715189145407232048461438510991303930237007262887915175643327731955952359062868352473714370730572248802049388835811693004597295582533752446942218020842009879465845965034626310802831563769780512782263807205425932768319646855894326859297973275742420010019512137853195239008844681425478339502718361532572664138726524835226914428394084654665245685098338428813673624647546006800182891831748533016288759812064240674181818528144183198921029094263103894117292287260569974261720581311558273013010205575147256763223117602429547047987417156241745410945531648977379283429452658193899631139942127114105932474741693918011710162398840709270781446462375298743005228222006973394849473184450400094400943630168260277411211273451084369734511562569497192276032014197012305362483090928021732812490358468281930114682831252961005054001054677461317155157430748309920621967318112671961129889897686051446999813498484273627548921072627524747364010455446616867522294837367215045074837926664855340388232539641155900539690593796176307155898024614439727207529873881537281628738931343410378555594537823099540904123922578630491636433271359574742217472424292439762808202314791794124478874074440762743426054022462520498521200302756944948231103884248678750030900415629643872530341354380836613055075067153783562583455507156213594007655172716906581401068954781467141071235366831317528090297775789591773943838755709653497104043785972363918783117303285317373752213575612403132532263843926015732032404492229667832996068096880523667260162739949003228450293502359636797883364229243849063966875794173050665958212054847465541021420853153174114842965214143387410070000316913503111857756357234700972605288885775169048722904714572203928959234216000922455065059400386739311393488780073887225851719677813381944167300474282826019683272137000849925052212326753283367652868821754084841380352267105999761876310527568057532514837185428613671323517479865912164231753362416229774622810196598114612498067181294381583519441410943252384988294311742088810296815423112446435283726224330492553843032564883260117288612165974597810515089158872506640636919868977400686617465199582785117395729782963598301538155880928256311798295978669599794225681618469973598065262562157196816445499038236023612569788505733061277133916707731631422939294032965341812929551060781436642013995837044921828620143472498263962126546757750840437642112515682714482938697768706232591618337026235862829531538883575839275067619220148914206153735811757780636695898127697480841909202414033880307004741699040751238143243691453991513327408506611576291471208344096913178096041115358875084711562731019821503915391339011721613914230422386345975610860620671494876276329133037945265372553424072889483466840078604805988379477036070230774146427332983137705670502859492325832830003895752898904752128535417309629831605003556603194655038477532956338453978976895131149422754057673903697252246753281321726365861134022989962338093143537082732658150301632430420208321362636603975060214233026761391361428216388370916680430638521686849743321830011873862287838679405744741064978631847845400308378681235178568428349929803229646679538017470954316644305113154552283737385040630871178485471883791468155279282750267551248560454058349715044434556413169871009590638363815866730909594324632221016304121936120274307511690467051140823041413045369623924173563864884247711329741394349483937252787978840289437227505646042119210597157859701673676553293930430877444225250260932745215056853256969371924418776287902350362239697841152148156958308877544223210112611879562641050580641099441086412389859652893810043266932584191266534422100860638320290151271093505302401304058019499994139234646803780665541397525126779736470468732653260643498994666167468168386366569980354102258487777903990145239514701368995067377927465784639277881771111230090727579310710178902966781832649097896509244260475329839908767079070097446773936426890395154620926130750278631318922856278706362552005074789956246572414421129496032697222563493535818302426080115312892635441254549204120403350284946844577730783201423363473362901683061130896639341719300292359698927119981867756151804762169728856255117955258678655955948056021208511097820542022885243552960640335042423657414606621936197449469696000047476005572735221018843361745422085455442839197732806867256813017023568209108059618679926304560454504362058871554315896382278965200997146716454376686724172283669312991188407238874037274795660579309600032463820721254754075171007112204915813216759646882525758522125630152527443118662373458508525085206296193910112764780919587579351163190632849222741979050163948414343022436732083041368445331352596202107641710747349214294822432191090720872935716556486851524055840665162568621489455534274129770371385570130701083676182486582837074686843944905995340218137379798128707345824955798796763531073061681823741592349204622850648076821890427348437497829020480144349289767480662770689846708537339556873195049424937957548320372651589070122867647922660483367704477458236156506973011249680706992633202103098697451268481758918867233761003015104506584203132705121476308287697366701688266430957569974739825585408621717948139245449803358818754111947444609854320057829038077432624790934363589992498313446580899923524096358274251116599221991794135344627255043193738198592776648171093619398536899777914520244022372347813355630352915994866736274330036949912288739843431012013476874559097270165854413500290872860165169755751183294627035419228380025663482503275301914124465724513460585337197230053781394821736443282833267333272225891924093173274548766264109785664342139354336488638770476544034143546745123389187582894860716489456744509563156765162299869315274962330699286117103287677910649415281585886889075602925004232988445349337181397406564402908937108805539967528633351293730982249157809607770553622478156217262723273904289565208452459884003081700313398528609697262903454361336191327829601332832908745090689937448472095082534700837185905561986330307779868396813693430466048779873488847843998751360545807150208413874894144578383774446655068765503004965193308017152431841474797698780609521221433331746071858171849759199534161257771809332167700787487201523599502020259374595736231908245784566391592879895230948900933663136045102047160699462862034028885120419213263820775706159821549524175656363059401487330014489901197045599434024610066273081925494371279418928952172763827117344177067726428112531099299593864505938737126013558974711862940340892765937350013134777441223388813629935571673940850488723454661153855240074997568188092630654039255541924553304913241929631712683767711707530043097677991037266618898353439158179106721979803902478820082159353047325192333384526535307650499575430544889544150888475657979088049165499872799732489567460444648602313322862427614796707276597118029276258165137355270474912322289055956069783855743499393233733597907453223125939060805370729512048514517592647450500702639350786310350641893972089178814053681562848034366704585831209198365030738832036988485898500767003307399019166503001217652238941476674422568516822922797894327087498923513470980109198470433431230143124672311646666699643233024662186526923565164076123033115527380061632631107375307652924247191354128216867427862467318943358068417116314838846511294231002215835442171163400236803820341859630464632365195147631677042538093591070241001965069335323407641442661080252772642512400051351356475572738618112624228022525442159312880770699344835570461919394698066723261057103579374006415612454398901715952984714595125152069250776204610955155750328892461444382906536915586279562828110681778579357758018435083068419412742188103109760138726178860263707472700317408749398744411570756307738198418193452861823532669715439006849376520377537635188717443028706688484563361908222754757988453800028881932368088348049072962559604989337802429974302589921493710180811109790824214246897417715763746457185037440025573751403970267451924403893583904220119437420750810094956234380206959358615004877154200793399038164689967664805250978341520932414010526619876726156925094537410001117456352645533558574263745756137671987125163884761822888762780051586553051881067321191275523009306852066840111422551518241425104300662869957649046883377718319754506154613599329338416109527603810322279555213223454872640472946471515078177151662461149331327909752583676212192133063112022693882423474741775849858313945240046977446770271506906686166330928311761803997401907497294117681699192762595385973059550505604262081762268267749667108039515508559996008560705374967778243901318595395718934127723414253964399687641879528047108824861396267766450794579435721757270651781051179889956289903966515810127929680110525468877218297887776841970049744879099804130863520868117266111101595325906629012927366577946637032742670074987104301512023161848209128799339847626784303643670147075147783805426928392498429830153205367487725903404351166223656714865717045619233471023028515659525611427752454043731206469420656559871364230324273176594102826796233372598272499933908051823083475542262351801036153349493174431813825660841573804179420838707229693804916148932861029423448676058758393209382656295590735798550832195208318594309595103392951297061369211514065552702727080088625410874622147522562271792656292559605435474226049010724949518411183297337328138293393180190521281838640550077571746746317970938161515349874731370890243745421037956527344932791558943056010695958699673015957572994547829534544449340011164684089653875249096825695216964699513426291615654980848608353635513987703828028371506941585462999195308216829561820483782029540605601736000840746891515802041082869158315804850665406853623825633688307931995309681629101958164449288515267589467574315314731240637852102088198130027082580042553621444990801351419242733796425297529459665573087853889241845140890124389078752505592517063250877754180490536192423678095266345551680768919569633107293400083584015189618332591886355521238246233919379882424465993199094851471422311312522111830161529783794180912543292641859618572795144174371392284474133060142078100466766739081653965792516421633617669904645031641495595088119383630964299327886703699023748082104094657783460605008418052600133262251430411847406460997546525341619187534276982978425695267207801236610462131966442742482438565726540727296155122852112802793238792311346557436214047947172476694483768817376355497051032825599369949848775363082353941803319280363695536047225863702855880376684291311055546334427550434226966204699439429568379737710550061675454362040249796087505525254829805750520247316584589534125314163419444654633307128899199637587808229022045440146404551654965582777651016829585557570840804753591469317124157869576762764036120434805136467481124609833740670010411477143110897547892364438512813441939299446948211916556623243947677171497931823152859799678235938460893942879065992751255076390257317942089683469879756752353556197659996311830092872342841691494520600150040276326314922367054727896849627216699763391891958200099446611592272156070760578318379321577519731926920162715531788191479482901183308743509293821707500903459374986910723947652183038606209774979886237440087535400228387760317870703277511312089997672314332895318255730529354131352668472111855202438882901043822311277912143830405386244757433059915729977456798972860853163735649854678146176075325576311237420106674013883674382094267636840534798745662981268501209374451825717640450948351102461617438321712660786873719911393325032517218704325582829459509217541980827314811562155648131931233672190776814099088718755928129245411893624944972654754752568171888006152734062862716626084050820045288087907465924657568192079140199771392003834251630750752511591159765417360169051210727169053540594823063317945281414588834906297689114728615636873709337868687684350101910959989784590202644068317019943593079659694695263400984222396688224149999374395996475106177374223036098882200103242671423743282155349233887881811297201584421961817816668096198776285701373934341876885890754980601120908266513748558484527105863575814561148932549406101961499747845409372956486087876576783585519341768542610671177345858741063568533538753236583525085883796670954815699271460613655539895715097824797732545103371978048894567309601258042831462682919150761642389783621008873399279324633111594699951079152153283826616169850893923218181947693283073942999422476130589882010148808821797695941485693566766849290027801241257739666874422456195378865959211179968864568075468649132280781506709876710712218493771094126202545735654116960803818024759562300662279583809274224529039477633948140863399904150226662827263129228857208431064693700296262596833672337647163401219471430635896743059175062864165482977327404991689554843915585855270344167395135680614644092359583893312518695699207694177182775455062392537672623000179216196022466847102977347505353097714234333880080765495736368633765002667483195461865722648771714495729280868199657877495728796992032750072952738696559272159187015431705037060989195101731005843475051478849977156939113130320461362370805631052386145615325375406454133003074748516957452796110794223080404527782468539092622111118924761705078324550134968408090473684845390288248547105510691237587638036204517330995627336691308712236965958943120906364949968685024363220012217830685479388549981964032527401750545736967880594034086084246566887589572613953308971809492954065209033236383794501305206839760674064738772808080822977978095545587008721797994487721686070349927105671050520844331157617096206116281437611625176332139616549997476955647023341905880363731794894054287752222595169192166668403888424177835691975435991018896923551634814433561249097699120267527366748702887478315054372511377544648152412159567383560781122706036976417854005157203866339257451496210839829596660609979343443054333023308746892801380927891733895962196866222237505063295138469145162178233573977381322643748114789699942655513317150083605414454200510745209317528754934441345604252893243941745594452567960042077304313299603772130433339767822766705594888833309160240680925312450138736203299803723890611913703548306444932497582836257901240529211730544140892156477024928435558533242719892946085392132016922111455574101361240144293703407007523227115733400837755968549314379264061436557488029757889269187637787122335609998266607911249202890030733485328591773252565730927894579350570131717622930696069626646819992024388990929958585417789278957537461214068541785809015569492401438884147343828132498085897658187101578018692446105718482035048266901891536229063892763457625054503078881777690932201388524279942610380948117649049017639506571369608153452468584948237907550607394066543203472861006876660682369044502683824044805032681611029425179437965710544515844869829614605532406471819799437300930747040231168434045102335433563025021330569731919010895331838581830775017465776948364583459719546516843870913268989621304854997353628107685064963597493496214506788620599753181833080807983835668038654928550642615863421828970595094984404129874388087718756229439719719727292339924825666190322645346584710837004124852882172677108782763269852086446375542210376410559253420262216894622288701141959641272055790829432548860362198037062413876338662376747716200483194027967844123353510746968166674785054509267288904712180175292256521907235038746016181184731591353102895144347738383554649001898759498267181208082991963917563410259456645929398947174929281786017534551833020401929451660681426481995794414892391347892744150367135573831668910210399230680709972551700222451594831741587015678124154646356155063725836076563409574956299116575577700090813065014067735318277241731132348117773333693708959754805717787719642812559444410016576790715822067047685239366188175614574966578937197338795162591687889197319435817514115024168196809979788501644146409084752306034874212085852883526099294623056657081235959006331776553149532989883898972551691466363470195973156664668529661918546275446036509911626045019285631114001243897581124624114691265769725552553872789286766604031532559109886269146020435140081322507494361765890564496817555987787775201043623514169940224723098543381362860560424965277488238280747103603378605444793865644807374759340870375473067561841627778859581559931877157431472850963268937700368009413815730296141881230384063137088397791739933253481962926410640037314865409996160405380897760720762602481718443151411495842628998637920841365496211236508962212429938321306411835142591183117514377768511250750899367092162136928414406833637937962114486510162932857350492944326891114592417503725809230377261294490213597319243175825395789371439680962007604474557495443066364861065306214861968322426608195636337272188892085438112895535345052061535773910757711773202138844911002828786581511451010742329636299549793382715921096581234016200821006087846083978981324814133031194058120429256945235570033878112212780985501054185555509383706859715226178860624949498977148595554150489703436160000420645670896577750663838363540833815572043985746207472468722235558917876580025931412247965268058432800801608869794885976918549242542162984498804258561909612513328218520988346044228279898469336938538946279338407060624864180106856602962167217213709164242832725936101752954389520745071998994725931979660248326307085361810194245999927300750495019726487441625141060630640549352863902074621188122494037979054207786964483561167805705021556687744979901933615292444618825055236716424955402883693962704428288768120210947796457283530460981485850021978234883793156574148491251692758429224091755054094083092611008015047215485732377498916355885122779379177175223783708400064374238528755768177673122648573442466947308953703331426409861834607561227248040759380424198930849378614062106004825889342807336121123194327618031242272559788797322042997940560584049085326852865309402305780897050581859043486460610584010881222126999171260946755522407305244229574979309015029814214699215563500122811807833321176937655515889164530912651415048303689535961756178491017887223335355734128220163773617593383311916628094971743926081760049226853787320845932834461338213808570577237765487400698037450367850022837791825169034561009497578624381549935244838501429347649977802342913913017864761087809785598049481377577523261557570647585886795221041963410525912559878568527354216582525876777820484691033058599224453170535368953303039457435009686307526649768388668509911070214301762027996348580546707323886785761343886408719878471631778575472601646548897972888622120159746083582974164678685540292852667663410332068088409736313497323287878373645929947316764361140902813719459533755810566060695455954811866033708362318439506385049345864171819521303326510993562244878596595397490924994404532643970078501216688944683144726914482614674727764766304045846023005839084198234576505041711269679249986492233851292840572132165746072574991841736400040788405271915866984612344252009204308291284969754898610723789969965921600550454027663876189592006666430651962522880520441638533746432002442189424517052039402568742866239789884425071059950594968379596281279681896526208642204043225074852203791723890765954061647409090243756517682921849772192822633722060741334776597461496524581217112536096612871632007712184283371552472227663048191400257600006959492430992701282208994705230101988573355294610534600629772063630500335369376421633924396864510232274937089905616465555325076140627159300215229354004125337992184734109446673159928753646238683385630152698343637588112437457483943351958548553018039059718659028882088864922783050315138048486538530183017786680578222826777689627640183560384737164742489535491620894035651059246317860988972046375714381406543866055801479963871225148757442357047349278304327844532366009773753640190477984039621706932927927582071075851413849653726193352705749695365550581226939082734040882838510403990493687875509439762192510388236740235335065143630721288368119557493737099207039199136046117330331788791078931030607000639463427332549275262837094644986502280983639591463539454436441834451202851106640852120456802354541348086156727963319602080594604629101594884009327056688409356588829399146688043165210501690016492333507310667460396581039938914734930136436315786781135255029230358485966043220051400680997523857412273247387241633980574818242767045381404348981868521393274591513750464133246424058840949594334002630883990938338614654506542130763145143992880155136904174890131648360966390724884123753321978201500118139973564919606897172664243456832696622726785689339595625290099881049262854963669379068413870005985321946738225387787385146969299267241798435094594589157652681412320992264769092444120521969609032504365163190876016246950537261697850370476890170173254131665897667881648069761048452893751982078816375526341867722425213345497387174972728196725841407094463902559852808442195100883685016262716414307098039013864695986315130594793986622334030100265476165002303915407933888794903890478396997793922017483181248211798898295430775847699630772699319721544325637924240232533158916310719445505711718431927612463162353795882220802282848215407260548858585229793386625208215085064703732052152689244793428167317125071468851654448258382189887846582270762215040571013842308585696557465861023693857479279419517020721174308095350612213790637806339156181260563285184351942262046048228421053697492883175878631138753659220658106018665101521766885078424455871173467401411579450349009534716296149186752942553026203651534774383883832907558431213360416163140890403866261125231459430150556349148872631617651163361956610044456528467250554673803271990118785462158322602487917103536943534070753763369383978476843701765139103183564010418940482296531055435143394017529590977196404582595488843560789176007359788935511727588388232641723545982890290990056167965894616353549061821686191678136276861583042628169259848108560488394463849807608683650220112456873568574686647802819900449331214533376494473645593784259214512452469034549742169459921146074779865863673692425880535981899030128016618726539844248788859298363851658804800933087327585752724034775928309923665259399355485585119637202361674326103350570054645425273608081059199446329965619712442277560642649379484230492773765338751941467049820083495967662806831496076836778099167400264918226205325990586733099457510816433331457742717698742816352414122259931110663923195795860490747858914228367354148157898814474164712963969897667022578976551497480058990057832242343675312063773473986885755546737765376814847052680086091122083241550724229148649428497937301126782756031915382819163987117730243416917166237787075539642625773564692611235955698565829779115332880521441633681799136851034672979137248409936654299143962667752632453392622188367467398626686899222403252579301159650324253272322314268274194460830500405533862319357005117425008881566845589346282066250645115777205577558057318288417382251305724198465278682270121244001622150287728879350554871573735811567795662285597043801220802980652966097077772877738048655336721602291012495444041433643961552041544711699234020656081009558473170118987025363055798121076489301041306564839741757032130981040596850406144674803856652215572113195373145261925711557758883446865403545949969394871692566412197307757506109472829418389143833263370618609852420670897740958259887471876880119630087090948229863886032890060026488772551046408613843818737357344014757593957523729864340024390785429645290969232933549773091445486848122188180545413410502807097613354437460779703603349040972905500841328162694042880077723674970785425557686193241711169405530085093397312152074330153738206936737642044675711319537962263727624576757864230646065353301111974228952796690020056784523107985592235469498859636472762739322475774166454299155491272920530247843096825582858408552578117681393346181516512744217766031232207168401946130538585701863903876116465757645235856803780019271234790524729606853165187322213599105667653437553510082093463585493343230882208525208768103507550458340326586210181470206095441897122094514840518834443823081769737581474748905295564300091281443637163869334022847627426497853270978774787430048683164469189240566032489270783202411847767485694356812165727712611072034520265944934066674801242271932499911680976906982805219901933306093211286867601213154426073508488410711920231025481041828010738732924736933176999138004789285942770027582941949827784436977157263087037939841896884968671615293300295466939798775309911572287678634643151069240592623667038956562078351201257128092951870701224758419806224418409495252199375843706564821306737513838558999238434000667949287512564118326142010645098764142854350042553627636346921324646065938642380537815057957022647203511483098849125216182802063607296238687995996235630100337313903602744887010003396819690884889190812360701812431247588061591874048673055051506004324553692201608826247151687655230406395607701187819440351299461815378546098587485668869016701046028471348450725251258657939351778646084631159438765049383898361117862635614250846890578040866456460943317461475678744656911059419667186048190572571398768789192230346768473985035840419005481087517415499448858699335263330289839647335089863492418955155984204158227887318792422090140435486264609360500209844759446403322612911039512029130196646033737305619565180510887922779486997520235875585430388105205273700652434061325535375064934171450901230875645789316241712786257860284784585912333827533513914913996022617531010345543479580850219579178491721254357300582845569805773799559688009490340957562152429527311734876232861117639816780953717314139405158361416025218291777776315805693067234267674418786245098850590642305612465653231255034135387502643239695928925958866965004488868720521758781255730120941002985076946952031125920464972860819890517454529528970851312731361512125852676754619179219899445202897767181341981204230697840650717322253244062494935415996087845804721648386934562913233939257876292355768660518152409742538343326748850673407138760096797789558545026178949734582244702167802158290235651348554884121035061839790105808609182525999537138511714376049327364292890776821844256139897308951579224110879130991043601596820083923019906544200730536473447094794791274353734658518930783841305179160718037603010180350118688687365038747712588738113211141948303478663916316879173007231071192874479154109787190442611505260348960772208819482020736448586741791345246529501370379968197621588167530597644593953933185482810906717368756572698541836401877268470658141974363283744973353753096342332270335903783856265042148561850427338164157965881451746263361580514910272197885612835687676813196660759273696800747856459679920853300186718475862267446307301408428208316168453640234484464204793639413182497361228618222616504992625785239891769055649819714225314868145510914623436745401129057993184533437278797397116873251622921806441656093275389051703592256346132424464100512955859798528475459905093973704257186115306520768475746548195473793505359339001218705282146156612537286665052511133496502170871054809812399101092118767135820644806973748320517002116786130505072770994462017465805662130628381434626483340118248784922693379295230764029944778558962881018334519285204677854843656763943621305499581787116611979872720011268255364071939784100164920484251000545498057352688347256192944837973626135390718442788219008329264195541096877453374361863668627996327110711887434889974374824007218657369670783757925666499628869402447074591995436407950178967690075537878698262934214498046231444124970542034440417265357212233272663732289265143332106170773945614400849574799932496295819367901438304482039166563023202795607948698702334968348635369393682125780623343341876398988035521148035075956067848811641564871590678589514025775664001799337101789604322506502526840984537709521473368776782839045287216551197944158746147817520951716816511856236865380711078157956283781142572346858348762942555245509687035908565300282235052793144044938255999702425352294318363118499602180127104063254576207172509163802413476886705524499728085344755327010769704075550012522280163127317384200526319571118403914671206927469537434358320262975690796718927411023887716543783898952224523749783588338209878379884077925589765354537004611209392827237323086476892558482859664785825782135184976618500953555804545404504544293350851574718589039290274720246398372720144921060686915470684033138589866683569526710421665466862030506490138320836551962076699430407202576412195630687389583093843352628211739294616332096046548813105329758442553342821382210583799384534494389975468551087557006173187625657469973994635573921071346600074469135112099901131276397727392586514338098753719350298397090262372033519129208766173193355859143840066537353955341333532349095249884121426257560171996330464007426668159251638632945508646721506114412147503418780624885756121119200172519880947651968747409961227289098033389347288145991051674529651501839133902583962095222310542738478068888834549788205795621300562724970758513004609174298565580722456484881810157031405412044503782894276758564257146419521920149840935490437256009697191751076872117763424343892983580859567470634467823964714437627748267820428336134690678252115907000816161017087953810749860790639145004439757341218135548433694814236997004184271164719783257064278705032007830959539509462620858122888223358869217803639726713409502552901485920672912867384631701755886345166418897535828413122748629848074630143325041941425096908085708072063890446732953205531920241323591258769934982335208538145273059716582982553740997929522713592025931710844158884615016179992839531152736030731079979640162285561370984881465993536637231773701540483431679220385432403888759997229411399929559098057063838735701434941436936032472735589212662668344818850023447717051976921448174838066193614358282618502209562606223365457492463286845874248035693446525283326957985404060650227456639442856497804025407395855179325409752216812141265196791024054562726911479056955479447557140342878550960062606054986750225960336633221328657065740560967775827985777333948898735758472577532706240961220066896385302995256092686451385568728529704463015110450893505827909157645294597552568118211375707868157017133322324378693906650544683445325622039946089660580637116497885045062581087716138300418533258785861346101801090736291424506365507798035950776690124275990107768134167416071156371140247898390457051967839504944647987007868862619945306547672935926818967535580177847104502789444016923492487459901727507798750732135343404492578639764343638690801462937158850469787759660663046148225088003750364838431097479732882197355379107212432574533739922934324729402749031595597557777310334013506709409202334366849164164777049106885622464359386773990039499026624542979942236673375333131868549525438259640201642197297616229459286880340223771330716197651545599712995055163890689139232518192274794993483325467519425894560715007770222467129159809262805538997954075860467720301087349045129302199690495365355701470447827024983609353600500206543150196358999964105462802173657011205695983352191133925038679028754186837723073271906283940759867257082425456640145397221761612180328345467891228462149989720088014529934099698605753969962007867880324301382000280053445729995145718466131974629294980898768789479208810655693070163036232399507369208893202939423034785875337692595084738042667158202212014939366456780630891379672419677914359454329465657661701349259338556760584601494524904435605380957861499473506613555177057947459662226049279121420072963364301405881723372267693661895057547271178952336069562663126622849115165996756722023136631810247938395935010710389722746776026151195248578005232931985162017885234564046364396414906949200339676899118514625885847138474019884807863825342407339438328063596549769526308213554942227143723104020104079674859609596374194335099910070512613367408566278777441530806388091881483199165608673051187720967045697784704107703921828088662472592846467616310020029966896818079965408359713610962769069750028684683139306104566650193421085912820868616468438614392634980190611204131888953751845152598822687878864935504205773352097661475250905247730712225620646838342268842873726105053007121149574723295622058929596403371229829696527253541489141179410122475465438818793248392583834606810836255304429493243139019369298778858346889464731702057800560955636777901759051388509757326719006923260481784869497037566659102656648557374352977250517058307111934772148829762798196896897280394618825318838185856861356481434864140731942771015781764958331584615656576455085993647863532679162958336077134790839034422132715786454848761530649206307131596642647115904682685700278261140806432783157915976321680837702121309358000334274680633033106169478347252669359211209602244237779657835874749757392449970972104598467387628451931989039973795817992822492602785157625881716577917570067821286819746081803781858658499693506066254342439441464553025646026405705158268441432090131015074409938910330094481939895474560555698411530146623701943883391374325896755836956052632349481976290531845797440224311793879297491391044595999691799519858757139045600022140396667908504311643926626296139666266354358056430848378797911717026811909786485951356232808189479075770865493158126206400998264796230857181127973422388753405833510807233187115195077642834467153061817017183721871998912730861721374606734537066730149641068549076946315775662299748461017640325447720841463929186537299952920154297165371561111484600003852691479483072782039505865339003476087968845800218527961770677336508355195165777310570920429870838689469418572483916937471047356094836294876712152839929877606244963359195372697009982029233717059907233982908157823559942247885923062335368171890003748986927533803059234904471497050297952796286084076653908225863950867791022138514434029063347573272466663582812980925442947584483281420425847262413505537993151867456984375902507841794357723126832037004851933068791755342583712033340637203914663123852161566673530852603767989793938678075595065249748941614906263576304338876759633282582232256556412912263472695962673527061698455651319097133210741611606565681047286382016151087299776032294485708099267025474989767220582295910836725325017554623991420849646654937299327396366155352210716978775730060287169798457465709226232351165238270500561895751075543509279623762552306885872604087767164963407640637016009790130928599869935284675060887441231561621629109011516658821525236864695922485986177324013370947130724814418787025453587215198802283470416888403270716683696781871064129612882212809841193615940041448744797130911686215815051698814545665401859045488265706281379356851094122395586514695901227493011698649706262789175186056477333585398010218095286436309742803269547781105785021419110602022118990669519871782912153782948856367716654720762689021211749582789081810641201925177356721030301091894214145381801796065996136922028170070187195758950289840101349099022761464424731052620050606457158439637165994888064472673001051727588488991702669772798362010890152274009367768986213164129784527503890680627219931339715919758583455379575414381565470785820691187828142265849801805745948329246656024199328808366777516792947983761403584592399559734486067102709291660111840664083461774293264785001891071978568776452617958908257857806581310234569272703516280511819289391180051576754164010637132799259932002476931181170769437912211288506522031165179347797945438015791575422911950159282828946596443814126272372825199420254578692844893464008940491401079098658709550424002765952013361102761729705225371623595875468994329632428483507747218925120560239407222474839743830849262076654549635611676451165549872172926577122672064864089965259179084330648061599924102512803649213964572907809826780703103651707206778234170700382073747771625096026189591181998080489605499358097502563872552003912936296015649523268747629936356377981385081184200582757852073324394816531852344566881016766518107923432612714660229414281268021898361063204043700056585459743776897326976168758340151293130352988350188324174996255890851770372213832660478217702646660903941209200546546297499232687867379575359222743528366927923050091130201536363999361289469646837808930511453019779202346271893830513667670095177949723295653480536090193136765840127539639539186611856620275051096231399931524907116915819022119439606350098348946604826222915691325734161712439639869011729218160271384653197581981734967307911851987389550113495794753156237178255332211186307251274161991426101926675157730015718720568047589696119675094015758749355930398896566790291412431001639559991957884737840754515461734281311511276957883354821047211318021041150892693914268349786529128837055676553734351952865085444134885095869980023707660044293605699772552102051381556465667125713700216330411171635444459710187054393105356464569023097388652464366658201476506079955368867223170268886381386251838344473042795928574790412903527296254449447279560813908582518435580673069532897337741673720097813849273049793740566611139768176611395029029280331574137249173801680414016394392134116775328079703940142853242292351321286833760105302182328006754920930544188082073740530405919236971422592862909278915657718786729500676531161159173583789684503027170237880801475513536131551752916461013010973148577991617084960181899093462331235063452255275277993726691089872627075526289931703262907645488375100694145648149135266931981719312102144188921020212592412636087718761493976194305674428395112508402527606428410735036950184220725245194764718543520729798067019486102709633307099943581468760139141562902099538040159921980205993082436499349810864794337124943995460299389438656784606103463510112252842776833079255809804709553515262714467520395836984444570459403001921138280990676568762029418224177531030885353657684894785076575670336623748436655639838018126389649414074533304633212405772104489524578443368535602619038306500271661445673956374889975596711065657904045931830727337488467796762521133694207503499764492691712810454255323723944552981017463080217802367587310006476049815323365234757458757501972842960594945092873834788464909854797667859381982059181278302815453513074817062274715389495953274440450351638630854437778568914691112398451177603550474754235237387320739973363532962637409055406749892315202451982913594606572488707999976973018008694285010736362657435527939470774340983749554458470234889629656276803775784581984064277137708856977722970053595489925103742623487377285440703403421417073390195966035838252132082837083621548114920238915833699219797243154988203184827218517363313663656778301257833083012362078110587235689833974069857838438039058905796749668605345588713123401418124710784147528169570811921232843086833894564311054608408408533689013264433126430298920721315238851742690826411130633362565023638786736337409075179952535378799226707102498377870234188118539974831314216031659704423446670253169642368058160452358029904051941133362396690986094164594821490766715989906877293025646903374488796527909601032666017602912423749525801934818448684459871976961179967234811355697580261377015590555217752825272958139893235550508888934675589899628243251502476495765868602363878106212343536754068811464296345149422791522604279475631619825277885230863064995481534303705875748288639743285295904926889619963213645827349045929231202891186728047023588970824453664830433832441500919348133025829296835012115010688278266510792251913699621805412527476757694154210902073891556221270342623617399990283998585378895053051592796821297273271896643987973675628304475948988475246253957467380395552818459632514110337605772339272538191758553642451654338232807729942957825896815339423349525185261999393633487470001510130948662638973159098082009057540513222144659210673062269145563389579077690358547249513479074798913986490726542869499396328266930300896659193720773940933607894933887897697271466847245934499123807166139982536401711611421304755294848078449478045465919425293981448012738733803318681327514298465771679418473213807018162463401056976278302838600809425519716892915948398373840628579585944222629590065331219251106264553145307059489380163952572299681778959690905387625034993879681604649446354536263192896551579192185265939854666676988167768579514504888759780526057394162322612467839510380720374753525112575632165416483480837540512809071666284023582938905183313980734193185495229709690442168044613158448160269758839553370668111189044453503570663189031761305525680150712195313773146791263019166348003883531481330759927173956328424579641518876425617892807079528129826174643260341854603953065039171447000830456293037098536204445055732403941227875216988758442570865994402514896815442201877135386604429354142392907094688472494839275910898262741214520285123355386390318962566026562796589626700371422194771738462878833560736207668621045700713406685662317596948779392276646009224373928767339316053912805696417226751930083880012196929557204073324321011847798455008238905460296683309186396102719452331344570492195559380732597643496649842400475014108218617723127872821212314186779989575269384554185504520357165912855172589572870178005126197693258777672485918146479648216118035088901300607937517622267775381526750461370185179244933359212612030732172797568087605402239771850298372603175962196056328194306884485340394113929550277246459608166170196095088621479727430086822862443544252679224557957568108415840362555090963436700932548954243496420366382164454473844454177432027029824465779078879340855862095134241047786607372588239555468991972831160972147880123384084162652421351911090046682569821852194229145996273052199312222028727437973459018042681489992763716413469468744983605572213631314311598040304142585734762120396873777392432572558267861142781865763288017413046438596343725979270209649990438322627817246183437263215248574698569054760874586284297054730776779172518399208282707314371980747188758870407276836577780297932007100015094537708998691034790373286123065811303012521762503216917811064482641900843256496731759058049059652890330884750946890895580658027496024615177411103206028979415782670200922130816961267040451811094729763266039194051711652606397541050320368532558796228232420688217573448965844679336885073969396605396911112067432319415856664999755976162902611014834034898827880244283257023968542716795305442333708810181471039460900286681241549404063055055229584155809200329338802695880472116292645410045113736278043687425110020243387444786971722599184288938647437550042031731363756401841625934178892866756330500826843988048096419096693102509248271770031024443978790287595693501785466000460244527572509828521469323433708634975954979754213126675528315833017909026420854279632486964791932787679837823094299741318820456014320380069654000138462061929364339243910733548782272705779967098296940889920282884539400850106385682306140070998347295809575562343311303661756597801332921381040099131507540610353379081252922306020854610394671406359631070909358723991614823934253582644042158027847195374617268271517329452247634462948252372899373247233167385262645280003177812158349987586742453107106130249333821994482378351461561710681921797948686432842767372147843701344105858694988087845363782720077642443960517204053000126389859038972320736325789293188248067229202547002704408473764482170324209311593233734103174998231475254105211165364939381565074659437911887699167271329737498016730733354847047576599989388341897604147341101869903051994676387045049861871705062318138204426391654802527902577459758644979089010412582696657482742006715278219875867890470121081527959357278063934676047760147303322178894586045884495018042065485784886734068032418519465169306372599178317288802454768151301051491032874072734497882485084552945458596842010824209069444464154478973969036988071724373089636428228382124253035131745931180636391165541197833317114708677854115866346914670025245792854539384199100885096581417040361087760940358006183444192329770444166338534870037805142072113262918083948998729695424990110760106004322971538879285002828971918748912182864717255480993476370059118429890484526977349545002882986230092768184250642765734094553882060562694421201244348454267880833998781518828869132470792317333525185506479894684417750812283312616570589266701963427102172431568740896328277059596118922013640579920443984005626673697901840211424161976728489738069533572735264771668619614454461668223462521108346391511877352477004889745863102340977774252280402225636278694513058429305581385943728054499644390106310439565774656419157809586356869363186470522524935428872770041244961458369843675946158992433793352209934052811488872990545269534227211659040056647912315577427528140876430545272243090408563069994174864078987031827396535172063210717866747153379311978718790644659946021932611498731106375436990310004460354206671762764272147835525454063281445795085499261978199667154461487693279183694282801347325624593673825043842547457001881068556163710179237739939589428000581255709758983498311157400535031406813901782342137046651527201303656623626339012796576360405235541794288793243321223564444837406806956435957503037652105287537556872119441843117280255423540662321421286540182561477642068827790175615279101593697167135988915235941379962281930225493813580862646132584345073596237407068318743437701496295729659304747250319022751868964725522033467088026224207884132235125744317460058697740374963370554801825575530896555302893976576140143034361773362709219371175581154039822511660481979103274585169553622017083693885758933861746127280604529244328173447659449316603934628490998541867483521518601158919339646940101503920287278838096973431631691659157754924774365892811799481267294710816290874572315564733431159454625064035741813196654638691653078650485062247895552393012797572157837762488760184315804566754288934412785893459553572872630670110730981376668285428753430165006101015528704903518527954971260698434440552675181346658200455921031778170425102319238583193317588737022599844456513002419613380746671857209271497329514166492826678028697653532698206723078827183022153423732173518978004547117744383694760099024379565514779499273966159751336903830998636369677125087755793870025080568869104801836027397636320941891230359827498178442367959570166220995594971957718013453368076287635587638314748621391463611713765024617456429298874103436072100692977315858052609176615666982711569899640843574738427940073210039118601164581842023457122089335252679055237337613077461735819054695133595176140629968808223957723469600000401021059299803900575947555855458242982579770445210484437920350173404738561414029716406580450782320648799445188967471652292498838422914233261916729619816096230323000612046833452999249206876551265313558354847473024880446927145288211007421010570674235764441109201674837715670829824907976560270165268402977898588054083241075294357983918008225067751237912390608290332982336832847498551957736800481412247586623258540057288871997399820450732612136096217275105052865907397862000916344222664268335434816140202403371734155023217807295303112281697546841638714319049815310308440212515124986084105104995657050668529672710228850038039438240785249670204615022898180501872201653488976003373341779205985592807772157758623720756736796858757499322131876618504925924857706052795063949434780984765585657446582182058767341979189551291019675354727166112809475381478784089330281584975974711134586180117657026674317751905058042489925469771191062226744211325211988835246600576382238747196917691779309120093175755167555501438869902302397808733051973962496842652338843360878258626554133425738796255450736238475942637308886507636533198490064466845899921305872014419442494811448710076710371067674359933243736672215822606254282687307615604618697096909496583661034547796152868285657513141667167055367752070685957974278558022800002718947038343275954318602861994269502001892546793733216986903998548125251693978533650140782359811668407494922410499295296178141455838525088891824582796345019183356568012010193272890696840582910708001520724650473163508310797170222271868055897498527654881351356112268364019818751201798857710948123470057930007049661400839899278801992755140647952318028689833521870678126588365374446574622697442206302218551900552842694716504442604876953846992365309991611683169325455934061755073130213677161579196195335916699020849521128578849934160143326193243042284950619779413533510999033439802645118096388068013597412557061216606109090480981235254069897387556239316728559961640886273984982139073200441646928872669113592354124970393086206501822377655004936165208913015854829804215842344193249103227128361842796105213886909866970403303534824251596003359176833569505589000494233457143977196127591248480500776075731391158694107436757947294612121331854935417782857464006606519985394795093883254877180560418154375606352314344586524811429664046691682786151609016619474014891189505432641551819305145482690387581362074558545801353416564146798799008949662000295094147326670697202445393865385492351003872325318341266838643933894331319358775143844179256837182518590288046978630948962983596750219644891081748975473754730204975396652095178509569424485986028878513209493235258306545999834969527084973984910049137032029625259536843451783121208465348229398718795933392907636882621879426132715143139955523175095046473777017454946270495265973566687885169674387518758259221160007533944662182204368224583366409418387184231732827981671990621129400128517763552663720364269052784273382260719293721497193395096126572084239008198072795132195106919758955173890879907483072232080035969360969786311543005501786209295573982978313261866087576614108346102187690612883140491213822755776270659733010968662337032930650006043365154789654499841253083398279513038535744274074622605578583022668177955778019997370554573725122043830651833928891328597453868494235524117978484411831513707042785682725657304567280452340828006155377293213363351726323578009511199924672382929766914741302657728030000352438305660276533507450827718661433532677103253628105213111274527386878679987071289880949335130355951765920223683301829056657253621924738858480338589339374109181644856133323557852426353759820598150720345664850164635175754487425670807263048938124090287691689170925206451513618153221704470737663767431175264227200198609570055803762130545311562596550976342418559236265722118763808869449554950386145654138200936108455040653628500335879349073833101719283332166529785017434839062485166229525985381082129266837282744436115700199690538416488043937414419389242302799642614201655228229119866993981871240255649254387873603819474831507726265198667782312848380562980372905360267567483368536157565902597755503286306670404230420152807267745643548668238262903190599717557256236887262354853565690622165476799955620016028253107193747987064624087110631506913582168257968798933021053494806387926066910804847997155615051296285226219209094926248633130258703255351272727080402590567418153293996526284856618246230000420409783267050701954538683837288264767018408819227899786825330246679241538450740816784371559261875807758348068655239214836234511768999754838929974892520933303683166508672464681758599144745385719350485075747139856998054355519203309044258750196498776548257107353487540557101877104966220172048366072329483871925028362572251225504860180906034628762746363769624671977170454494405546809686736627846299721942538026204033402328199612662650207903432536879610741094872058689785449165284248891980871744157194729473242253808698875115744755773973128354939590762089107659722858786038677790782775817799175899214556126149951850270557027055816532504953505737673888189399132162135267253761684832402274304796549857280585120596820403047547378779421348309834630811068706727053185142779736716146973574490577896708311832408143153244009682171953748534746532741259144267053381485641623303843278745270128302758691064203181540009942072527131588763897640087942498304943024104256568135709641713482239009902546197522785968421260383147040774512363731510266396603811371728094492764524691133939092468581330323044848244231131809128859989405402152885591494716735029237484237116739352833779836747805136367325647776552783758128030062704373480048772331727083595925894632971168547103521075170307134974435226709215176772532777447439266286771835027302135854439305042694848822863398635056683995956443168163708405870561031637256964046545719593541669313734172050017113753961829455566243735414699772303449345886049318789155726420462536435404816993029602541568962653474037009354181498178717056457954462737116515820667961061786690898371326018760928847434425966820947363194043823635418352608855599484291215738728908520528210190079963762859993041297616384963525228621711709666411275962481597493600602751574346124413411347406248597716777586408911264297752225315668387512269109341415955298416911595089112671647872431625200067576538922000145073351519373196349802520712003713850350542339679345329819342689789832332788570680802300054759526691260980826771740421029166188709824792183903829340184228183586562361781525082208838417041031308763395586421589898418916408490455195413562863885448429557736318862259976824972109399248613716731168709823364647641472941166538092876922611271208114526997844074474806505046263668940475051665563445968279644649182161798414696975485874486252697495009855002435451247077388981234821023368750743251315245687094237013250147120757086401665450536695214157471679315681374091805960910398556322230529064146496396581955809733418903810943991062907039448456354141433940413277978572361474966406688424729597404752716061897926730666861466575163346623501976643723926246408068013666615114576566957020362942306486307577966143092796966354604226085338660751104885281889837704715221135118804753585817864296836359336002831678614123625998400339490435250692065025144792524532759607417349127164375537562816052715246833264430710560943696958243788841189739720505150822126957760358320493626104202139198074109366775438542965430733770565603187929990277158827349073177597434174689869170523436115384477163279039786670531696047414918191249589376051615485385202533094780918314329747844702725691983817641600723329835589689049928853206826411224439337820459319144882552392058085867615458828135967344266983196636070617212187582065475998629838662068456388957828009950518190346231022401279731072827566993131523057468297169445566048237766309864512951569230237180349833990567622354349024850273946222722544690151725197377497868066712431536268421382984229910285059318741057351362214946462985527121734392631182978127644222480674755050956578804158867866108567061608827513261768102200961376802515319039063097225229792983838874050138524276734761675107974924256435444309795544480883825172121320384315547034426999192187975897363953231556883521633538328773772259420063942819596422857821156598691553356710270235881178793596191696634438372494573494088566903040757284241954443979494671877646011901952837191179907336928033360616887237143777122776716952682947919128609008834949409016948654605452424358926546913909549791857310194389566336038249723766399478535962534734036243767433260625166387370335546960198380498468833161923807015929432370477261741673395675691334517359323854942000240034719058957829269953214184571777580283244924374068839324659966547937616513475295185637165781482274883423612419532838972678171682579841325592666704734849361352112324364472375343472754581727973996273932145144975998991031250937132892042825963567837190274732885929654672904827267329968119204932724774430997357993274727356635205111723758983297042518045276888801236831270316248050825434930675951666829421948808444777897620918192724086193720648914746791941167452556769395032320036239270834647175661288250440205267398690791496249940241610932211030890481719807425018324329545257377701983510543812249584319572734323333280433891005530168469624566521932859925026808503937588047284696452381215205563050861906150574419210630449928154332348210753646100969591038061251462484319951946109914653882610958662176355445714603758232434573355061461780244423986676628935797608510683600112589657021815871112248789527038399778901370905801982798520979312378653986448547341534193833776411413940270444239983794470268863915930295504720577120477269451915359737696284049528736827077383939134381311675283264351477042949100499779730795964906864837865140633847604641958594222773976216021081163562716014901528868849905255030371902498875144397278366681534126879226507289859695365085751266615098919367106947347047381108895352489519618703837231497959252939681648689891832225897864617937698236634388897375368387844640140809368890582942269107379580899701806467568237326931629873052364137898238737916841981243792236843314487603450094249990518587949847087412679750535628026891989645718846339663082559248452823036994362690687918319648795580199960895904090133510480441509885574510615117952961277481450286659960915253017362749339560268228602782680274962949018616025134574495691274820629416993131379505681844598541050313612341415629863352297540978319389754709234327943672305861124997520921863740581987162134081579072324288609967905132202263127125792486679358823564866280691732017884364347425909139552121362917796279140089534768609380979163913238922500722332777302457774170187082565598951472427906148700412988791013309314909637362806570693423177792263497850733132109893421004465633328286674812200006687462838321042620652908643322785841334816061686208461250796652172561042693763680859121646951331320961384005926340091350647204760423911835093490980613582043783203995379450755529101758120909099840655872513358737089261367539387393089031014947335179053487127181200233165226041878476639317521826472997959506281835209411022481735154983631441600338342171109162777624495048968803528946257212188668250819694989172321423328196660321190902857418885496768705617604323963462158978637187199024009266868249323170328656604370097725989749844542153100822047645556364165031861444920731029035327459087765414452252841034089214355081279440988341118429559101025892797678101827893039803147008653212977921801650728071215433729924545366560653504922621307568064090140769669425543549752672151967412026376178741255028644378179577210254966926101110420963612051311820697653778103191340533191060579010717919927193975854212334794422454573436338969978353329065467760213628019414274920087615609657332328023980353165021668787336379115731580597581171414430441613773374533499916951220081039488946146664342770607406356615016129147336792543713750253267947246907590909779055162635464981487326977775317980068289805797616095374791840790699711553821894632126838450624111090077404200321420181027697080740875825697897707424805074978359640077586382854464323043086078247757966594248482975019342681762375916355977113757555926170092740627636039594787852134585955849004294073866116284836418208781974098924253967311504960867639391146253480086362959348250036787688985173361070693297885447337629351141540395903290227431984035344214427962497942835270155861960274970828835930005206633719899820138043375189063621286171246546684881112896910328804879167221100460720459058410335022291610195349134126890013372185080207486499276953217726826160194757717048640613164152415898752858759797277354556179337574924615871407799684829209438358291620205528438886100249631704819621314222252981447018589080065231540939931557168308280476080141214636096157299898527859297838536738961649178186605987251835902353879846333443190699758217594181160528108305713232620611831714550779610909765438498701959920056841459491346240705011381366127813567654517704858403306995389201981319180862344958810663206090692490755963239936624454825228188865019850548297985177486475008401718197045636753423918394064260282174613904016731182496441642335857092003984202730986135344395462230066261072262357807301830440242024964946507888846267346537638984597240599773763646370973974983641845732234094559380047520936481857523884676567169673988357255705771828923008477737521499911344241141988362411965464483034557227651215437003043186464620410730127948758607984643348515462351163485902877785935881436835165538977187135920919610962021566517333913488197926492676942424267317283263228904171974498262929842929935164521248250413617890297808771867690096643160410177674868132031755365869759740499271597104631792506473303904141246927896933263373248873286534878467617054005018294659397357814647180362637075338883764329950147560645843250919876603578660510987100207144340855191091339074286335531581792490027491924404196288142665327235435211908080865623330319186815685344141669099548069868131746532450603559236991640142165768493797997951167986546569623769437386260259092292158216476290364684557603317151667789669882536431692416576708551723409924084024816526692891593577821486626730133282946692370835053759495623566385999567706870032321831416030469693497892533442835697513093983107859830280323881113382886789712682718264047871769805247113187109634892916355632272670721486839791992821694044336972724579136903261084277713036529592167309714385194096059647084356413033115645433229341221914118190285716791729291682082168599853709729419024497514768245976057855560798045971344495458544161874597769112045935693318264918985245228892365004931166684861243287701878934560381669718211254215920579619158534295547438714437286963338702233072736358742131751251121936700826051156893308668367655708408599661144026236022391028588154161405030661480816484402020138510027120583744038333429519178379612506829214224905993402657949034724425582920189385753890771524852787611299263642750124176493693278301957820907545661749099451702233979886388116435113334537235700018456283351229798633773985609292815859667287168080797659390951991943019040349763365717833655105561126577942912287467749759171112345337041919212703483792498812642412809116314189712857708967848113365986666586064732640010790268656027170699348929520527807825938921155373009327259930479959097213033831910946391957532700449921293438406268447423863233898376764133240474475351372601665630518577306619833436316954370391385807717188744524388624056020302165970535488479425014085924950357262519999813168096907515667406289532341309127532630476230635398907849362404318078478491922695970598750232404313400223923725559161642816287430070044419390559128239144391714305132363634644587577328582227482769359865713963667215046025302192371632631590078952485525011351395777535209811349403790754410888659078338219359351788097094885965033406526176388146251714895807741260362147356669211391066701140027140768221768776264765633712081239441849378140873456430931920351737637307115369211865938526496362117552341612759151099674816321524549068096489179508264475714320054329443877322188209241441801630121495397106928699407495058276219476270974755478396171908883933139636928844069593010149635943187334994307533114661283669655022980395325640166996026910086284486347485390148901462617157054525099810881682389926395524541913074047610945448032305181117906669069677425970052446727558188051775734402941986503880048144894518613670844901381005150280110095726652073827195620958455510325147038534052236966656520001244748395495613979894127460571028061976644400479414841449946876064778881864398641264027390893256040341252058490886522739357685497899945010281729249433458412075073956219796897252875308080794442142448347334374258999189771643681259481667212128569008983775320444473227708929222625385125663287112006960830338194214960014417795041748088928919095142954217287006458567500611879207659642857943102425876336517819458593886630628736830854359857968697951111209389694743138076631879893647738978951280085484476317939385447503687463804637649163062027644767847168170686800064041122932712537767365430542785294049418666841325944334403081581531017960129024393624483902164268994366735739702334783944300365724272445782783259767853088484132756276431792831396909729033093134905366504756671826291472565487877639587106718957737438258935417869708057327558272235707337681823988209433733642838888685378691901203219003892235645919748839777322010517043351706311193629691415809648579152654486786452709829538568869450968429609371185356206990101662611785420800514814504553620230332534221152731788517668889290946896163300240690388840954341400912414627081324633791523666831023705401133812999425421628000355576767711912742024228988587123981386356539471800692351387529201764738324066649502555383792761994910555559174412883897091814128343772027183687009334528564490849772616194494833810751581320630997135321559630771978171388604764404435470388329682813833799028667525438209430238558011555311468879547988033394270986309142162837992590168470558656210415467759340276693594338893611335342833236458119074797296645265132444106545960265734429725109049292936178077235893626595141576075531674749168926015996431313997010013631944419207916633252686524300720414156934082748697390640866065885426999306911892852515407382283917571124352012428173432806278212100604650030391039932151744746591618861567389345141342357827851604180329069064457827979247183792930865592720569657502020157716777525801900762346819024210889337159859192537974196905302162115703985285860542241510879487472109581114066909535439090988424326774484113889457476836555165240955209535305157105592981922173260692622309095307639626616387586433955580150984955185580776509467483615952129553434344863084913978238363217397645490894242262380098339689227458434077862910162798527414283517444030650522029273620204473532605448277425970843324012805846829410419700898561509041308967391939668349880114894349995123560655523734543604986473733139853112702008886510898989835846463051718434022485007085164013911612919497471053835033052566027506931658572027045169503157514333703906660651222259794011237484746477911969589116968114189706788899074079460919614466108696698832708607556292863944943136313426821769562843623041082933246149421678161090441913732898344711772460473942084429372812978627120201414304364871187141859768436250769091797588902918529441299061741445725553483375675472196314338100287608021344948336162369027837120939620743299643832305045889356431784111028440445108396685217525111718101138922451114696960709933407513105083513390058682386860858291227419286292630254277622483072943756969087991436216602022884221471855345461050691923594527064671336460022331657936763262019168822461630522187170274465135416128586169406312729780748412130283544216021651182077731777262084045757250235960130291349509629925876011879102993869093449947878581509422549825971686295377032734361584631339145549223095825438765456721680747102451965460900889676693423791495324767215368557675546898815552277069218205121889041642907177104381065487991904244393231762251017829843638499011153548110351088308315332517837686989352201971214638249399038173419781183259097238306636676131411357851284702631851558338771169731312501138184502791325788902842352302966351882933875326611600678990460553633141552967506447545247373298095358927913298246854318713711006039904787862683420174077354949689733808462794010388822506247340614468344347666532008090052700990657621696142773565771742147442935434590543392078199265447827510383455707853802972098850259668295027901245134228124160596089539875636839826855529900753129622178738223876117052380069369687192232805640169800312527077454320237936198938214274089940838103076033214831554554970191621175273012235137532375579794741497950264128961903771350867985675180943646684452142266151744123571438708012510836394305459192883176121774991113860009539342833594728521680019474359940969668945521481189270293935727767247565617753083785065430524351487999714526251914686087820002473537566937256094054174306752828665829600999899779367265772665907380142594970363164512849000186475317896709735317053201182353495980559188629734436966081836191707365117938483420333395922729673390936369669137664187261752523936528819539294287378988635805848377003544950749593776871706037662165575803722923816442147632891399544222029955793718911428064460497164388600519228243310398160810607070325863629310659862856086154108748421259819584330079530362152244326719342442898493109489607874892778259250503227732119845201082055974183376223175485925580772281842066919498476295821000579627506530166516038271192504070579588672056750828820102602964419117334797355712137129620032648603470402890740291042705284720230979521827515474552242216005877175859435593442240389574317704704827754418984108751572771163948579411863515746633705715610566987034710273698518968574466601465247703498853853589810081606128258871643240801745154465335707034140083876578091970695397269933616757457513651016021457440300056620077350047164407953957200347042745492065068650309375228616139835741695007337558660305470985241531459886684557805639581063884721870096951637030916170981874463203762700312106260554833768369744944602973626698527276403995736198135968258442149415811482932097359371958433340813144183228539739621194277057182275920832177773546089232124271996738558042810813127666944298408907789333136921041706724267781769856715524101623662343662011652250485208307080365583595845220472680419816181951899119857524484004217944051212546571231341533599071353292045979376960748467342311168882575650245091672193251395514305864025254187839141484666868090502526344743405956439112099564888141127725253302700180286753658429266194532385934159694322814174167553826968384099662447545465546521720118253163430687294252308074384664018684777077181499957690161613950638403377499033964366757406113473894844117005699596873923039702452178579089215961518794058628520305464915639938514626957791753919522918760707594131159563793038681848281733040396537098323413413773768853319412384155307603897405884503547613257662571504259570143191585206548925493059671524189757835514373597330845920122126776543199449078549874254532987341766901561142160496270049400093867341738116618982793663768796902961538590027224593991609650486117867591214937340648774756728205339773323249411178194827869353451168160900034806707788707777567404600640476668578164755794334728445714139948007893376783341983516856576448486447082161408252622596426468292627522315520696274289838874507982296332166196423769070583108348504145312729833691597215070003069078898543943063981417667193793435374780397033814378290201499064150841977814711546323649512688958246703490309616159500261037255114786481306218161709831421326882062551626805188370470700339600318912378126657720996486992728063816398503925862397939334195955502944212008747089550120818399480668394844876759448135149034797368993349597686303864446806874449353732536767612410498679027951728835567319671077464153054691039834189902349564525006643775906462112549791109009300595917065255408548950233546532098546741617858036069017940555533736681478551756271461406012096348569390277955773725027279301758265244534599577370141910313862379377165885028162582456967176641369185468775538978700505957994129445649873789456311695232131348078144656194062611488625944713958986904795564386968179926794618068586153939244103774678177903684461661323945462610132026710742222046697051033613929578146976338536492841062214816065737366315371124434656154979119483355271349862269887161304896433391024990958034951044712759268121662131459036975775456418217222458814363922248819296817743412990254403728727618426035265652380815010064388189625790558860611537235439302524517458497325394481766991848483566856246863795843931686712853520621213103661020258511408172070869614803007372957261843810469570686246140959225216113593006344844847063649155972240905517285307811240563329587744638827069282696693277302226661520579074726715340826313143388474417349895069981672856174130820262438790601316064749767337293472142771883348372467621549045250083546611074178160772231227740178453838981615379186021657138627284494612348607066582988148526910289982435296596676079287101194283834742970192750053485111680416255899141347964188203375627341627172271928501025617716263717253873989222248035673036074850595336275833989853881640533738764607385896071424765429761209748049103383528497391488580635253005708521409857660257632734338726505695227584925686619154777460160282755427442900902964145971455062472598721973642333115939965569132373989663580776867481378604276310935638768376616984446506340327071898702473583332574683687625079520753584919418284324533599177384664152796653255502206508132922213025428420267606335651617544561204839147968053778349826147485745360417740250484399445865652414521469130065510577618192177317429059410467852678109269516344837048149356699269817681230767237505098392016373101907593919952136468800332293004946467709499419998577508185681455990226814960453656883304104877075255504471190559009482733204960817169924240982419723812280285380645475358693042372796008931913079367093473778304793095692447002297422956434519967119993997705625967588484365769048584638247043271636352022806369481730460661688672891368810161893552344979164889516312935338764137460833116974958015123966736712603823618776034331797370726277721968364580240518137002446565227180703960468858020363224357204133474753043669276923595326048694640621027326973419645158121495474155457773949246931577611261208713297170347048612004789339704551032168955450981286152948235671398088695033917360635911239187429422932437453660105679133791591860148358670211229350153888242885522899992752793665583702208783788588625588867574014542973270374815560157953243448432799935344609678586370604026980041517661016263603185557752809151254300842791410389460529191377878604617077435056934847657615411617476914088473849213753717930952463477739329463833813843739543919378203946033348197614066301070873247752410907624168356276410961871090325709276660004913365348560854452000245865801202616695821150605369976715523594193665121043698484000714900920561910144954142519920146911688133720285046750994270796420572799537025291181668857655077354069462059224997988655730762182122057062702778028225877163295204824057313846799060057560789257313655887304677432533609783738940114178093519465367890175046382735716736474237821944178833898553142998468675191095776238347858450178087276422784959689189073219018294715618652811342348638314378564134368495316328176403885257243322515259591876761373719160177381594598490927101631639932638584963650432225531376604890505312737626308409310875727728614992545969849233822569286323080416764813768986436321984755947193764953128833778882419579903784869087134334677493927753846727347637131531595549334255085271378881233325988897573833890932269071807711745008228755284996074610336986404746669439202484358477226930626235761444295941156151572467482646101410080773574711915913333610854339328969881973507869889636643108297265694130801697324166279051672395519474516555580291810813495925075693120087086235060745479402670161110785323106814642278429387243477163911064110883337532029490513968244511092884472932317929373788928447962007393098655138154239800918507315523093036617650549059989097457437520626350432589447891113286638481192667619713552273472933096475099844606281062840406389617266619330842656558797081895612978210628581355827025445487746737374823528127486959851339490946942811075176116893430690086172688323463748224881221034097996887273794357791358864483501231702273160911860884956715043777353494907461953414216053821758794156290824658064685976810949983326989206649852807337712945557581914530081848416506116885919863346558309415703174526792729905155923799092711977590372743290594498313682767784197734080381922178777835559896134605966833169844435956433267368607708223703892414816826632994887595627591370396492669303905200906929712061593963141862904263044313499290097232672615176246530930406279320903190730635213144846911516470106327335923332284011043791949998217789528282919699565883417776734050909471112041436579792777831153948505839223273335263697031122149757658097728837161832539552975859745219201328637255574795414090739964397299074503666263963667970810805298017055767800104150198857218496346829762676289079677572833528503705330536871324234281714068995957041107242709598607737612222834662715093040686568345554475440092517913204794255660508351460714166994533246848917685381621008008360467260960108857684465979049300888979810323712618129534298996887016442449464791533792208758536852245899186179490472939426352990569649829659089801125661831316418923593972046454917228377536762164649771122853974711440950160903726582073377503866146531955519577931511178376865563461178794866942129742070369048539763438016439330671338746512550172011873237104147037949195272199553510048623201252459196913422016138545664330601418331890396185431990879853446572755796693371223571234203866180140588625594166907285510372170858093478336288083842381345637243747059418673370435652808422388913464468235312705970558295333426553896258888564043751853586523040438278721410531238414540032121076083235814614866263098402084897500303842513204810562908035474463849609541918851428139725739055068298275307353432292831032581741952103845435290150086831831963376000686896141768032823084449959729421351607761725666313845720864499142068831243024161391062350164701050253840139003453181650888749038446621858683892574637452221127438935622752204727076576036626460556530750995673941354657246018169612743064252442071794166392068708065890626657506968061509321423022427406426147162261698524274328803040674208421628649227599106135841329022050408804251546869581378286461209735738635307331907771016984250760408809834062822100920716490755413084323110387695195164244556090548339725142930334151261943035270415993042384495091285950700313565647737946295288829555130100599220974233834266702722982102909178299097126499223053147145626438989449461557237583102466660619924946808099119686302495434007136553958069226437548279601263672606064547027671318405722888297833034355214272848516424187306409088291553212717220494674837322922675974810551546221150482702216169915043387028310272120569672253370389861167415362538235660864092104492988899612365824171490039920371250074792546161917327306898462745983443210524808858066333628476408354392636939899520374529245803434781176889425127863048175076261555877846468421076451599258121024857639815382132417538994643877846120918887882283395576071880851010392486298892571693703337772917983301924647840222703142364381731784309881143509819078664348486405046980611950156871032310430558494606007814119062325064402804775164353286948756679116686804276419346930273509713150931933979624450835466215755749687134572448504209653347697942001444660900937944550945486278384803696592643226768956407058869061022287261074402791312891808763008942616773087188124594077595112643007622546846769777451137780281273745383847638705010466041506344710019900541778896708983382369065570542177718703861096603148441519532470511061849682370839136332504707151627751594604311035706599232519045708158359707641763453375212732858297633576211562886076206467025322217792098271778214089434187981310974963312246745746844681962689230584684455814702739617615549913190393919883895591736625521735550699253091892052754725552272142562821242699665128079020148842306212753568428725700377304931718979301892435746346885521313567586941049615965976511617455972236808180065068916501759012340567161817953710799350152323808351399425674292466768817758157015229690478594730543462349477883286383488203731685834075745829309924512887080485376291744821221140244064167732307554934034419791714399946423409744058797272914196457667752991824903078110755336005515668166605303173335184464947114148937982550693863829549622941116690720510157193179063087615503585670758513718484825680767991069523567528996268499883069259401757195852952252270789537704261072102824723837084768957645740675379427206503236459349660312347518204588066676942325081228318791947772959276651502060307452352007309824293114986009021189728127034844588145109270243056983219894636120696005888931118373788081133150268774363520261675453779833284886993497606393281671653275429140327949306684572723656492811597175825360717670411149621899288635036527267060168401506530705728139404530956676602753640867099879217839034927279976229412504599424511091807562614512013059920266238496798462041149814165322874214361746088137306714363414914486410177781555800541251016213088830241822552726565014071202105200440354541552279611757126547378615346142969644336774412139047796311893611820736580102139623960369418700769817684397781586094195399667682394520648327589822914586468269579715903645322301036477771613885328258619582270463958992099235812888325713781281178528696445460198539996647239848412443679792885611220425346940451204269273915155566760534554545388721374565583653033454967281701150385919655534372966811192024952414719889853719482137873152193214058152397942804050145399352230280055525229156162132554445375576808746592082077357867666727054800837982151942363930222703268274144592531774165338550039541696767032287904310333103753803127671328055793833072876904587078947264173104050963336052979224071456525659937060605238596585043807233916342031302757783887369759387821307687089566994820327091116866397622487355398763901352490198045683165900654865140903116078687141627365243970168262971330252763623556435586049269058547146147526221445099519282586662999809997974149139978605795810551762891981744472085975461637008191881563287770078847851432849238790073828605022608479388723882037912638105552694185811056117010504088726308379709068822960507696652355054749659390454127286535425844672326116556352004017254059141506614257674270630815211358861973164238529770651238730948345666239615384255712680491648013331710391612808454924775299015000270038435393467531144177678971362200799072917437552592150301902231567120124566086016239729876029538137008544940047980024182620160883975962004745145381781781127033502705250970797387846718432511818253031405644672496132696938029251907687430175990547126906715907330376637399722133233002103486527563894523103549555618598255170623330013467954485867832772512512174808638123290241715186245623545249710430764837322129692785637144986727505149696947100828826078002104534798185397788226692504162169145675717692631487308821394394099363204845266875159846096652486937171990319123391347556151953197045822030904873225706740595549353372517946254526727178010325161511461572274994813167883936917804248303115741173036464296575402485486913850556959433867737922779302071910577263929265525755016619671973780887877123114305912596096331554096885550488713643392929807193166654006136093373330695605978259940853778088885861354657720457451617869944679651605911448827413824733898595582788540688956378808795157060374965471516924077813329783791099346557664146500199436602552850707813108662392737232306730327386345549225954105159620180393523292269452665522088811076901915746072103719811023366455164278158777199874518305246994066900508788547816596267793627309712911976167920482476192420773584180671771798240764617927304200399333913735817334036592323627922479521395159792869727461517708327606199681087928573435855887715999643988266459986002864749182459784422870855081298399447352864680623098512672816204027086635263564766379479743906916276891837387711354188178076377289236667499260839744508361108990824772015642465324919170221789854660215585710474879513639669910438060157114420755905676331415053149517385649080195653736306231732391279612492562345462952285009686186792813137157546252234926158303378534774772370600765307270504964442431113737921962193971571833137835456162370858931536565955741238181406965453447494981332521040103309325201926513571980423569533900768802807768799683056045015066708645338207493444375928978543555948104429622407668908754243927518371755722861110951229354815248643669903805781779647683431115928747923724845679643157376210535281482010487353426122154086688643283648817948132230837255867703612059158326800983721796786971790618307089955358631440004183297030391178320093786630561105580764815969547301929546435445917427744824837507539628754120863926882661601283338152413166301789980575112211887078896621184153734860363293627998979500628032870470256921473652478191419134589519250911738958442196774663415533900391082156961998698584740188087601593499039203008276871567625837158017225877883513939351663875306266667449565564621703077776339549087646001094517853617295549674449295677621007270166358287770308768348193559818665890158378701091709256844430766774906218551998950903339072487332604344131138075891419031530156025497992373307059696315845185896029013313391792675948909466738671761191171934250013941579190531033050301094222004693587471719783769906155288631244221477028792740734048607615214878567609368023252333417040297469359599921315435458537960234756756408027393700827270710248220873276129202789571148225876880792728263746374357444268760519723067240464567430995798716765260324665890890988687918057031347667124362491629103805318486147351967195451376572613576149835803744196529608606163948665144333773414282275445282982095681362348846673883487696435611138406441037019230919914148972271381596907623184500123413768363571007015722783233003066719144437095605858372553221016527524888770546526467831021736940838391596500288741509941629378037823697119464712937924136165451520131369287205888643219494225027063317778880151944102866059410713823001453225060331967572140048700731265158483512279705885329610861166222146075727244156338859690965850855389315208457048626713834887111328691226020931348888695166607926037444191653636104874343739105254687988889667182885448703034019706586911943121465665213274728766311663637779477485668193695953307210644037013824538299621307487115468495350400849032073232002441353525036033605438931122516916874151855437113283279634928019454585705130327287359224304005133444269814660992997382929889610150923453609798746701852023534782361300158169724171336075089359764092116371220263942266022212167677472952329215923523983431227259539279400668103034564712714575963341834451041997057647627891727215681769339816466823233267107090172708769542583605504351753424372902712426791078622100152104465788173181201880295557695644651634753947514765508603003114081268517215111344797030204795719546738871755078744504533946645873390072911707887684555736285340582448223760876932459109054457391950757180182043740001959530138845627959582660677837637972333512185690346295870787930614816557102141212616958672536193125616997125241207421419062753684687600153236056662489625236461857872754135878067135581715304870573653366948540423657351241214328778298191320349627220169718590834830898886382934315046545134921299745085716346221493407480146878556233223030510398756846782134746913997164228448815449233868851028452908664497338621844682596386144935044928645092308011936236214286437648528623956242703107297117114814152853825276963830077872017846097393869195935554216302366558255115425296349595957642613241582680526154934681094862659645572321339495877230166349267523970021266603771763147978916048956290518709250784095543252899200746360095059032138190723115530215120541535379371487008311774775570136899159861178143186619447202844152973834665988806429417117352036692147862746793486302685092064662208475071152098509406748726981916284031118514904423467678327216497663015548445178745628612193546277932881749196972912837529210693582100010961145501591404929033137986109644682772781397674658897257446463409572066309037693877304952080933257404588864622815675767583153662540568834475978980580948012784014967577220059640248028096749511440039679727438665018975633273965983743181740654229326821940474243844083054375253584693106423384812808264570432486115811380015963784018330576915206985136086521313748577181511845848346797026002365197993879972103642901247259327488511812453273030902797691361558467985228349192864396440238799608052149029916764691695001030319612784490960277148656070609551489828303591942430046395700664185427149759499312495248726967105895146021431803943864961648724821135778335537546296332145138361697592874247851033691193132380540928476511905541112998086170696890598516792836677697621960830455520043118873388216435871329756693222258670240246903555283186584535042203713406507742052320766588001962307848775191459766905045108906711476306875125524656872464323909729170596658546250664168479935804390997113652671284312111852561151594868764741001663803485358253646795550916176227809079943712422001844423483401899527599401169718885906556963487046150229297697099760282584964527271648397406487393260527934561376767157959038566384664030462128288672079266198422911164482636873550572783016053737346307616858110945344685481315627254944701271389323882244767248324542290435996282404129897041071847187766714541011299196020813800788789569034143516413202386790930986380279896022262456714099502804660056821022885820435007665875956800999532293448698136628890133226800145514990166242650917877146930657476660554117269013244501616367791168009606668999123904115497045259968638131161246824440997248537695618160970872646778529244806653502259732520636945506748604766524283093700088310376161323342481921360505608207156426513534747133147687051271187413388123701925109588998591264851019817486011064818309834687274522756444801143034118273573288128988039334964020928679221380863285523161704490029402061653732410973628667159283692216641276490613132593525406747536768936500698197084720729171574481394141837017564436729029614725915498798666004685334986466123176060984628056567836663478162260514348055816468652321322632706549896894977444258202787303365886281764212233486525902453460990451043679672644944237043243886760347096239433801746771566345597923414448979481038033874100223343010159918699689704942832875494075480896103135060349692589203768898977465061500227148359806126490164447670669000765161078204214415975839843380992824587880014189390238197413839030995797445726569467116181852562828128276580764662349919783351438332785017197789662533549407877556834837965138306236002354681669627304902542458003053166510438131097758403093546268743938867429550500745993822214550922818762164784134696123826771646217008496006038537478904687147849105260673925837062009798047952348631674427760366040530509312241275735270107584215397111359330350614187155426983073275870934675257054310893209941920908078422608785295984769022136588554487378548207748606534109235445946790650632434784896415275899705089707798963373391805200537747048781268676417579776251190653438454564179702924905696452236863008063073979962893121266735437875231286660434478151667368566272998317632693215167447213440099930278957586082912590929305945701146007062515232255306599423722773073431132117998713233473739327562145477024146076102029398490615540705373197205160633814031060468650585947680725343061961968622083379878846724742964472058345577961839392998725590663263600172239457697526869785999113023757336720848636770304075235927242700402532226256784643015243124285147315078881474111722096017960948701850596517123080997159347697218336364936924674997861591850728058503662825662618830075708848753860805108590111619976286434584329479670084382307007817341928858115752730114746578632325168391524241404375605489876374825696739784949758006922215260493920567461779524325484044398696311168185065005296058452262413746356857308361636452611274908954809232672335731646324506315472251563107899407048393878813158057085167554051403616620449643123256439603781268595828238344319121978280201480133669755768263118869585201124868948994412715211635036605061611692325707391111947957424944443118681773662323177897223129469267896138828798778093120857024861314472122909991942117751369328392742278106658130817675525125417202832080269275981883210477118524913523596015194496707832297458177243717087145664157194487227213253548797634799269188874800995995946819650219971074843330577142191088118309044113891517244889950271355325014954652754104415447448314408164239775259839320970698070898595941171761094678861841064694380024954842682085404969070827441673093230691006826492935377952206655243764624743167637248749530628984262233658466541738315050599483595598571778063419897066101853942040625352683086247558002331037970348058303998112977795656638618029886468441194025048188816796420178422958021798172647041368502709340080176564999939912427233102565628436472611286578723141311098569413194610009497344657483991806913862623273878892080745384880126177010678412256319593901758502841183752050731789371081389322489497866873606312097884671888650399867139797288346915293170128422805327892116675864379057600874032698922362465375792514251179273576131964045979194596188354189221735250955333721807447742658631386466787716488856534388797747127471320283270142124776542965699260843394930233969108453870783746889705134266283453934025086267464415397059963217482261648395446538811180770382606405215748447579879795799188606951751732737158607652959812817185956071043624301718687957704100507974662980318675324695003091786898598044897199722652949752968543341890171381349819292322328823898037926355052465224497832917618629270591079634051567907287506189575608729814140801811638817147881641880228042048238988611509238300045863553777339304026707575319636304108437743124081778563718609371941309230561146364454550770242018331858248567641143511019788061948758126457314076556832959512410435690994758218235055267505801436862837271675934796034529238919752140128606263247016323685281610794741956065050807816823507953653354962912804607280960490803685963430658688480158351092168574420505191133305449601898913611888301623559811359724829222834844388782231969940506274320952137470811236280975696529791837284132161775544963474234758650689223044747889144862526307656146129188403722954488054510603363402014572783457802546819131507428940146887382576580596752888310181987435562405075297821550093277353493351334456522113824269344401696397792873817003686797520154764018006087164475604944476180580993072596965601342760000343444297927107726258033204549023952165024375097799478522418164786928634171045119246642436945221206114383091984126404459674701280565091666107632824134319229496902151958297205028779540433204420352556410720990517540140811452338806346909051002355828450969407318751257810940111061652229094930137360376887739160507257376362115500371330291533074562602287460245292401423871712118275886073587398237839950957595373102741440433573701279250510526498438421353497887679831496278156744246538815424674738191402206608510780587207125903963800065873041148241373699898645510851625650093195564947073036736821928592830943768183838357941590957364649121535673694831746093072915345258255880691051437313592616916028453570168618957498036552789268196422005701142361414926710779477486841414867859853626546518902511090768715523879012324816416396761769903336387181314335020216340175446544514687081534097790615432786309377336402271140678230897553197349412456273466226713134552745728607099575245005811960687720251292356465072942288044327411148509064410136351162829270991567431567548467257241128560234713422181526395767115480465728130098999357453075196364697355343066968306926106866969420849151352383889273203766468819111387626591375441312714824975643365544266177362376246239593404411719909378083406680897560937303114934947636347753485334393335287984220296088998732710474641933763284930504982685885627511819155193495449152980312063561379405486061871897677022705661810377805484333677245345874370943954359305989920407667732225746212190465091259463544585317896121303059151044645053753410741573021248861786554670618096330597614128822843422534316805021930028745000673926074812154761391981206898981467151787350816604855735603846022759120552796495036457010506971751837073570604421804314630588415932422991490864735698420802057482734199890664828874187678586932863774410422148893549661419670528567002194784744338770006381218106582737277342435425576515696909944360412707111866892894391220994465213753996220139199198821042233878807254618449017800523645273347660416365871523262933040847145111403737538477042349724817755306360024234206564903386499639278806415651404888229880793582004172993971118679782769332307874429036360283617808300210055451251424825242199027647295813330079279132889713369836372125289235444885612363770038340922700263885802998270504607764997478348717119675711206642049113304611280025855749825344789755850510051392766576058144214512558973980020248598042530452330500962875698716476339917461864086993910848358408587696887877656138676765900273033202145717854935853164210973573773395826681452605965771603180478164980637040047324716931737433500716397439584152148442868946173660928066837170373663718272045221332769029306860813956074051322214341318850873008850711078534006263752873505182780026219638193462685190086381366075355153211073517240280705630967236523558383210097668126039180366938383179433473514012122860521385189417996163071321277197429099362970733770954087610038895447261654995493656109124240452570623149451625871267216410187449808666421224308210454038588695391503691022103884070536998027474869299591876204963531544165328648870957914940560286405815643752086807096691174572884103455722222044732113862623486193110243050808015841934807570456091016945726847004820934852194781172348046236841011169373822845845590301540583661737475426259472591033454100857524802678076207774071209612981953033008513981366979775828861418913915358525210461902787410498614673355177373323268001591597361053467400955040462089727538472420155878393714062030832004423175485081768415451167707936826834718684761324109191441491258729366775339015272011389048707547985544938471166577200878011738285221082937275417442842295925090413768270476581405442585292212766327451060603843408314189110756963429124653744511500954927133345046615992205807531501862471230089689636762710648408916059251927074935913040293271863505683564593874339149437749952978404612281936819673341800465554057569192755840441941632964190097870760413562846299655102881226167099640950050368076669572294594545387054766033338685394761194468029860233919782024950299525001782381164346115573823456073787714222178238100246551629828807090133037191944357937044583636232844020284454460000820102505989196199980730739169793598524575559343169289120330137621145430256303324043078747544020122418637303999859519111457297789664418014534329367615892264150560873222185937224122338695047696691933938106631872288342977053146153276931868350506469781395816123719368219399138143314231033334622110640144866614313395215718344518794446368618144082906017416546987366844494125204608408845198329781280301130684725591062440762279472405026355905930892005884399854542940916669789987486179742386761169602721072189893638440176481570688540862794136545697066057264403132197844236816177473360545990414941018863062172486919423878496012721160920658242931162810156352421893894234717184430750683953531376848566840313849474278521357162192437513321418397145940479793779673049231667453868207555665892810264263492408759868949627043807831237735643501295959636100302901102388103215190531021155520371287129656311479674509898438468810514122326704067441938226392579401453734096511412134982432912121944842893813729686450776557834992822325116073961902695529135821365632956468314732956423329143215515422416724931299369262926371927763502550266256385225668002706910613659456110063930013823798480356834456859994821041458692486278647337376736887636876217571119467473478734383684888414904510534284657761320433649123447298017034606347039880737353168457374080761274244412947043046978110161388412357820588646434723996323202005387258163559382688962920307310327608150533682219326991099598474350506189328729095486708766528225589964983634530789496036616496994754863539781126896120947923056397449930203589061857699561019893821682896053255414730402307013355267481821938232284018887283579767534610113694263140126191105584118995257476129610434280603379117152948109247317786512056877392389595745725133757269397739212942904939510678917795573124607581279067293701538351375502316132464908385214385044123014730028167591012086617545207930276553671838862942957854768512577118975206379087679944691634619864693175177244682041977321344518721594039348669718274366447863392925431725063916429841292028350836612726119746579401876518769775161487263493850555613229788922581688171116372694315992379890046280524910148228767965149942317518914092652515442176544066064830135079211696743791323889463232746715508516030830982981902486141605402405476267277091450098696107191946273567135671019280089653092400872575286787444385657430077476512154659605251190179958059932447752137968559963706749764984690355690453555544701584527856935688468690743997619555840626754989765842589681567526250511888024926823477855710104346265101573428634396614350504746427068277513052088331763648670009066566796969054067462754498063970295324326080344377455115572859708711478070294635895882721573735125854383632600357704521908150241431476289806426110235872755994445044820416562541798442831832413735822709727835092479759382264410118461023044210333868764159206478593579916699387275423944984217792851875637178592631210534574088977841060731041109102070550666961541957248031902507376736106141069568123985668127688461045341361571053728088122176957963672575092491512743572558520660998131340656659290217538023802741947330836418243829702912403760874047904956845524024223752158279012293683367799428204265352219455816718735726994780744563053750803297723321557867382669541204838163397670988948789603597315141109364152962685965427685670400539793254118195706463904874645523673364589437774092184213897623121210242697025275427011325771983482014781894920297265752736874288968828630678763391715590300896620713602527653920818177368822450052847505801084857037359704143360671459837045592498284162542396067407876875667965124904373940112451172182095829319122868637424547562997460284690283016748262878746552241223484152970366973824456057351125652680892714953281115175412520587862532493654626452735199168034484148402453998412885159769578672013825818988140399801669517928510470715795963579008136059751741422494801967076335139864114882210142990068538437969119004215882756960646135742349725871721858980830796928898501596571693543479523261078791855178430750087316669942559127463079945859079204508675974339122252836596508189656228255669109355460000655298974598466779522236415858629817287277193236761327663426686759931295248903318935720852746824408457875819685924971582991174470097013211621679565647916990127402897845925154234475972612792742719117831094605973482821984521527005664119486705714355800867368710322070392394686390346248848172397690992496279947025660359127178303877862149372598477179378089116639076001271931486935083276453970125023675753734085188378589779685195553286959578497468039815229749415345994243561743503476360644598123963255569270003260111816494512918114973264273611867681243281948282716574442999356466491630381823758499473158672815610016181027532043543995362705092394466825265322772496125254049805969678801072026169420567575822524635010747293770444904747893701192046479832259300467898267505870525867599691699448117113226131119702424519645781269726459068503145389422517909939318175018279381874957717466716139327718695351252577390343243183449281716279330170118282580336240519826867828234914748487187759792735062116971854208501174508033376303591292421881670009795125978319338310107021855353470915505823315965547568380847397731864621207708989109813148246747922902020470702672694959161525890415209648009268343405330266024933783785246805482602436131790334382139110053260674553052419477936439856888605084921790537656045537848405579020087517838739948930907238920906188222978985015869159794355227087826543734946714350278273464760148343149729597796717726686819238751550795497493872340183652822671532434676365093496857495033381104984318711851637342431664428088389007449147415050904408195396059777575143827239215832659153673834910887995298875497869865619183478940852936885868516701520083570569104398348071499077828065530810667066213045386415815102480390348396291540309904284584947697454715281969294159422585235943316323268175328212979608589994661756669010755269634666257418966236833557193098455856754599641833311413978040909582434136361212945844302939304649505510520905056029237742514228022114465403724527813954285997674471058744507954126875200987706863993723286273388441875418842344148892484186229760424749132513420741877172101488789414232561462841258099969076070110732396308643142511954322820852664366981153802455616977995229770532847320667815485678829559382037521306544846536396788733203043313071858829933533329052250024601314809995565168019904540302671639249158855824720718506243649974389008214848565903929385239906645128125879655334107268847507799024564650243742579946738392648441373066769690586751451945760271097611452145129782060712313357856544073525151283293968664574975733512474205959727756976508643848811263677536605747112811460188455673485275342900911348641618389755681617887578804642746923067436652567887937675242745761318930330686348218201207819275726119779577606349815094329906868001988989123182496162024976191682336300189292232406057592265686265998280711138000114192082961356537479013409736187576008782941003908790353979109787322625582498136878384974453831554415456814013174414243957773584845404539634349790979923117618277217445305210243271676168365887057306690391703500130415075808915338782045160258827290831390087207782995742289148966972310580539741293128550198992956665732626534448509666032595101907201865037059560062722599609134030253296399701648443203775901327160010838361098351772016224666181891708597866440462321876632681298155594807132556213257801621529945804220798873609472185767901735116043788882875750226146426060648661703584779352713231377422646241021665920772942801047322233121889693285993889297553661444220773885242675645213813572217295081805871375298745716392037601234275186528471669342625952952343303550656996962038296543639976385772122148956264428298415714436429585295307228373747811918359500856115100687290720371464000549875893214038233304994402919327401495635604620694631043832021761858458087421619969371543025017990463861921348801487502465210181787744512598240946136074464938534862687125593154984909257533737608090501802096354104123745113145626702211261552159700149214646640426750486078836575936818548001554153786013678242589849031773116440656887523600356164159393799159271744563649034163886204152925216236282010160741177680222104823437784898771846077433741873887592206327959719941443046661597292817135594159823495470699990339881818640920106020807550478481247346747933456758351006302825154110845486798636585209319708906799945960957466475801539316542400328649801399374712234154916202064697405611933217876920130631868243718941740445430116737094769014437545180625163434813830628046474404037117226512630660400211167945660077941503209918904028966616627390360385430453505690009122289017191193699283856477890562586993184978794983128099347074878138431997742102101754160621556200277479636408199630586704151777422825996563872797818060194191351668939639686824593903194401696961493254155790359057355791520814087950029822897218138447998259988075047472475232355289451559325844199159730721687156250981709196697745602924718740725917454651646830909355368410164835424242506142459734069397141113238176287710611036720245717068175978141421063554372317156509822108039181383659996149086785552566697867430022939351326486128313787404011086966061561146470973112765471554171885077622342386805065646536843379740078345270356639135420867388411350891152002518511454892550645426669604340268883862678362280858712657607002853270266517217279761633545877080274875459123552214150766250443400391352968439826667819517175271397525042185595481119103848490351367358685346225042912476681061409638973762303322273716756562861779856143994210666771273686122565702610889102210298359213633934186959349390038724563615015099883350275814141230041857103096624165863452720386121073357140670441258707226307092510634932216061308074725726242270163983446830771494867117716619459257651678214419576541752146490368816499068145291540336762872917564145507333344167430291979932368634289205965799055118755270323097507861384286595864666197159376527048420501405780872994992495965939491470015356066338694945886634624506456939626200039156041933345988260962144428662251938245231514803398601239276725389162074916038872254935111682038796538060961106030362165659620441742721135347364875152013813656257472137525717979651472961977115979379634238427363475229567101816064129522119654523578935225105247354981708281036290214308903333337770635248376676611724748013984838964728698573053181541383322642598479272857651984279022211923525602199573866270221541681601249976469511919058156469807884898412476801904731719531883300649622133332596008663957416310272143615068154286228383659495565317390658351708427174385175109038250687026715941391723764228091450237816243993689322436139044635852854369140868958300089474517660247936079627641465252409303265987179337643002573404130125944031242445189087735088988777173400622762922989915985493325218508283508573270429918727388927267037413346583703925229988710369006959170135226296286908747232768073462866115909734542363618135125109702893250640212160379598372608862231963679677856948170319541891299086593423898487808821297682213219347756820004964096662503677368704970013618650066722226899542140389973070399215556912557346761258260631792789437379677528205467205864448180281653900500255921452187988005669345781835550325773973129596469182349161402150012908791219937890276651174713586599721729548697642269373992207185469094029600124294677351355198634443282465286304586623420783961235481418347312135586894278326355787339059496751900449475805149433246607085692973988714391007476773820997082253824057555679909771259147941460081173299197195543780623605193437992838725253919652761712863350924140710654858450601839695947300082933582157968085711936174149401831707295772461067350728130396068379672834284639263405668855867859198882058964239937159860066375702495881567171769058616793513669453432086476670184903818024033446261644964866954037640003653663987389726260936510957470993898894006540547133671409311172499189027247395715673759997812997720979351082272304878432564434467949897113058772271704410364005461385447363303762484720232117787509824284612180144875831515593262664275990748914713274180806427247486862335961364197211243044451728829026337613304306690883635643838936669321871898074179703781180100882385926286549993271017494015641465630816045809513937321177418346875673623459182203897983385894227644987477626379598745379778736757240189097355698728701693037747626180827197958348083873296163072371393099723521239478377140100843840599889756083881414749774480623732931979897424024076834803539618874611982916698548340182744906973024243560272080580784301581961538621863107840217029682096286897740684550381627563405462104590906250882278687629858439065658409099038095480510300108321532251557646540726200561049962386960930544781038905732291717663461325797956349541731155600892628976701706785192460733317461425323083430625916309663709957539448341135756099695417633632144772039303044584888726904058227995064925831275706940303809067505103917552277307489037569602481996411186573187372491778389136975488412180412005723814535091797049802545741820848642615194585295999989594776733694190064463783704619947695342560666737424179732392627706179898794117375862364603851362710804722802014393812753688548572502873189148845146899345712014723339799712822041835599886262714275413714511231289676512251486441935968012661930940503178240849281137394383932316408748270071257668625252533357605877929268843066719829333014245257872458620295622642995388260536801398996885271263147354186466822510204552897186176586297022364735842691046546948305587603978437966981425182987149383007477076652132340410299084743354225284258524016109933113537906251786053527079417047898870207396721341547710278781536403809038246561938133455468166243727719215309642907397780213866415612792079556399896616720770490444507405073320412835234281536726843800626568135726654713099768944787912323858703989724051924676815573173106460081661027054933075417804009549376807981613931686140902215435483432619168743173391585097204161052665301623485709490051131499884242088834111241884874637343989376917314436116944430980849476752263635529516221689007906845946511236599020306670048740516956890602237727985214138379500697585963151178674077768478344084893612965947055022834490839068869241988758840963269967102709995976777087736952550259109650020205229755932785829569426057103580310536158935919796955978583943637600444913699399800198725391226500076611493660753978390749798202181611224413848931623802102437953782165767774318694041598153596735043793157999449958140407525355834736813734668646053873490477636218502025394080743260999755485650938507145053111692838916622115371145008003048887157828518668846353834184295407476759282054567683832122899965030901084547232546362290971678180857781312894175785463908719057572415288593039150258732398306761052746232133606947808966003840988609767135660672313022413038046558732231553753288932253268490159893038916293509899869534669172425503335969436819827716233867809423590781256912300761374034749939777113734085155810043442320266603579803098694792215910384113782411000271754408663516514127249908471085159164857492350841093429056445047567863941179949311915092121030776085694584817126395310802465756702042556147450736357307508104446553010338350653957257538857294281574441787082599206938791722797865852607778525058070869430748132104820194061967746742339873891961968660931011467866535967165863032957359817053123678256782602837579859330322346362397912581331865916933730156532234566140093011364647591003076827086165297583206747046158268629939781039634001490639587572598077447921047151791266193121482315774085635517911076565971166167413083995499223210544552028867217952733074087829770719024295857348519366179978059989057229263240648768470046025834453527471415113855013598742548503940753318535474820213742181395367478745661497207414722298471765633918187503068987221458149677675213188388975802864826761380595882497342923536508690912050968752487406669064910593611883859473862864592435475770110175905669950309453815981785252277075885193650987946302547573254188067933277064336441721662173081940761967085571100371763486349597995410565761050817437576509504931016911491558563702046763410986326469237379206544152781242227729090372768861439951044724300148704764807969444883230831743701844290167017503061907887910902923256151592334469858961958215570262660980781440505676066252746192578566673278906678688494381160417212325548296192532316472677050091042282709060539342012820311729287419981208450509362810380898320098039482257244771732460762725200058647932423429230159255191025333121085684192629788605847419277998714288348336775625524323362205950458808666260643161358541089857160420004125312595959292138690943377535289234453994433833961463301694170089256204772702637679719279509524686634638565300490435488659141210718660560845929272798498038442673039872346381598457804836109074008439853644864394843067013986476963139105366874744924377169346173951755925538637813983594646567483704016685973341416580277374934625255691999509550013934851605698469129573990879840473277262573073712153892789737794424425690694321934157282195967238255888043866135391721740772824501856554457368786057388348756537465177163837693990704887308026410182497100879092226656859991361006501799439744386180728532112029859023006872721425405891954747707324120996168402825236323295106182052885015973937381518815512447808867086848401444153057921920413604895147354195873811282188765502874676817094862165192823952959035968962000914886916481768429514017766564340988208502820946681150189806219373831048343821556768747875124847251359669902630367587417508180988026240638575568627808961735640635924331354840080757054907922946823615792807779038940831124428256256018035863861234828428923033693313975649313561296117893682958286444708440400558700408301528196944103559616508000040099388482478095082057767104248490428233312821601686646274323660595974575227274240595178731943480212820393809391145734683645777279656952991490900286213253665197213856296643021608414335232396851874036951140560597559337014897696654098399406232952712703367743299793741468250523257887514187860625668437105352552183076483343517032676120476116568147513454723268520687505481940865715570344262084933171814827563729015900932685161240802338711618374085235967298526641963118251614782576767288695333411690256604745503163688081678420337188093397469373158357930546977034009445826674616089882752496377570407366659794955916497071320582196110089636052708605972231937729007954628339788093328362836000269197767487965925890448298336765640216333296074392637534188052097812423204939818610383388906088109710583136118988092193689316924686359517015739075957454810489419448125230308935181270972555374243145104993578749231385709035423743733003855956933580814075158234459785218767821855875548071262898196860136559914856810713613526506980527568607924510314447595434898711980043825079841980648230497699569957583504857147698210930711381806702581171632625678608561614674573865423180996135694272372863256204294160840724837050449041580481877726218174919174715531080116820607078672223259920618047287652826743741081613102510753072832027476821193212965005156452809897471688963329253588216468477234668225034299766410943548601810856007573731524780573743899231534763581800972301180432297732352237952877372414653071111818282234182514176093645881615269638679057697155901020212034285513560568682576486039304385079485728227965504756355404959945629017772760522578479982065198200475821023560178847536157795347396357409841210213413965322957987445463141701965689631725345260918588813578706588313970827816119724704960676392324084228702305221668379048689214739152824105229770393310104142096086930808117871612505971048019764772290346968556292095655726079912078439091743683445565868087850551715740170536055344687019860984620814749210268664163290689979351956585922436231200595389671587880445975203713661690279887663876961250833971616773449003339246938250554867996264476437384183615651844616961453825740786102522061264798238515416110725713923909197437739151985224555213732944850637805058365784181061425836371355990698209987725342409336200631347308374547022460287437896988193217748439315363699382860986830393689354270916538809127792404781432698310761741395166893749003211236353715019846803681914178446480689388000968103948850327914679452458217991760700917593878162644553914264559884482867676729109861896381096731788927291757346122663761544738178022319636998838087130287189302020766378898160545640809481971300884069897810605518521106457929351355321004990026589373731393248994157860706101665325367588127338129464474886255506708834275419089682287663465054834250101350918231127886234502013048795371173626352059168963402844756244830749616838183290199087443110840726502152297950872870266083888880836067691091658069338687617294859039886983810610251525806657673763275958880874078548393434586737598044075240157002203394061690404182734531882293240937298287576335771347871834406933929849699279932179286114860205346815326073875594816852588339749548397971395211880332858571078828635676025770497107840203661601149715405448709465901994916151539637561986233118374045944667199192061198902130103102792991160359488510034756694016955362332201514430183831498350911776713189990204354576795569790171661552031132442608687082309913055064750989584970233089176793822945600873427238826717272889936298472653615970734823502747647571843362333721833627210405540629242647357213058707509159084190801764750108554870700416038003723688453051607453255869688625037954700961081406590480144349791787599415083331834526817224073610924743156085731053016168960418144603943658571093985420597931717071041704570937706497480347485149305885708830334879667230583452331836330588016582335699643041430242163211562361636632445111573618556870554159377355457585221749471305929127195709481274657460162483383326884031715709029973477192209039120381408196009498819949773552537903275927825209331726131118014799916701325717217148906245530209323157324480544286563309219830329444748006451684822600252995323134934484248031978852290246400896636176788208868321419840197646121452242353703877749692698531966326591403605917362530759066780632437889962322142141830874963765373436618266550159995963638333280771682045693082179134020471747179158330160437658894484597752603713147321287387790558673336902431427937502916576224035335391738873019562663965413121021577074644877089025574782245737459627858592028477528315094295373567056356156520327580947575208035006890247957502477203352587265918110913905608894291180459271113273426210997035961836742896261630600492539280868415700540339135340193120970498245092444125052259562821816314803089392518030725743852162063976820887779242652640943232036066132959711053703790296160057613247463221948512696469970631167303937754563539507883230837246619228272819413534031949747649235915227725863553649194699148885929417352987459891115816192683470386512511960185197303263163284523131551075449509487006882630092209085614351816857997873225514969152722616426359944574638474895095848592336993740445724174834763671772738251657131061524373128120202559603686190678719431137713608764737252480149446529655389110902773269230802661382608034090617719237023440074750485248571120947626685764713371752047565265926387056158807544266403815130587705965283785564072227425611807262451743872829603863353824383956281375516321022287687755278736597130432782307732337379081520028184215926450262826412881131482297554485974237652991690607392495888874984112426014391973510960855961607653194467773169946240390857872923550207461992936153654454296566290776976370069266449069902419826019384471686900722912311120009364821396262226360471454336931377941054750057067946930721639784635645468056933566406306997864788224233543133267930929731120620849472545971185688354105543431376275540816611143327370778137497365384894847024880663122464023175127910319386795194146205388029332384257183820861976355295525581030657029799108129882255855407344822030692198153606286681898838367690806522901409571903899703549923076865863591882868528449917847141822712061340683596504909845529201832988255519201871853979098421375277342018595891268113561317583696689819111242930105458778011360194788024405175924013328145581703728641104720642533996965258518070165300651790220689237532537958379532481705063172635122657053013067284881887794410063920401947104515454422347903636059685148808823718282812962110752894737002741886021944224675530496466747796640031050417709992172563440503516344780798105714134180138147779231857227939718385798490145971745085757540493450721323535777702062932871198609350670088216415160930235099843816407366861484192648801719412016449943275217300545605802840341413595804313958216085825396093479967194786131935045592478350138948816437312041793244672324221555096298219334064369245743996014386948010847298185783653846919787563676922630393672012778995782788443936069929507714852787587507535816276318983287030749864529583359340682203669730388277146548152694546131808712693411453013928374621159748596608562813641552590398991078228871105765007681800718123729886485030194017156191781543646956550821255057032125855269087884257830734412701978151497025579719963631801771173285593027560833686523642903134992944419906597191317219266603319490430075416045874523712696367559770640253498715710070307042407260452012884243569029827245022165785510154994525999398460057752130255130340962237359540222278443516641883267162982701709308645011536786898782534504554430920486891265334338203240060316820386143172362644893837139511867330158337627176126423556807137978999907662877482411423589467784879063598016033854758961790575712290050693114464610681543527437450940699987348291557494329443665349054892792541377926258648790082556702225924533362535124891451243775847648361798743906270673887314365203717868094076065248960827089061333523523603718430065230397566064514233098833884056693767754017977091778902619407474231084741501920141716911243457297846368352441166210712489259159998361098804249856838733861939855529650870241818262809295655970498696071497200517264724315273499675868310969874402206526203744550852426509359791484947488568865904772557350227983617340467650961268383366451199638446460351386011417337537243191720657683731830930871019161104739639664249294752012347416835884323140301077735060193778848954651306566988341092748619328429347250849747880756336228417094674351931904662160159976893407997698268519592402061883334774560476056816158861368441394760384500230923300049960446615231177884947210470115391452463324351359624246230392817242319158301196448131391117683874570500504359307986510626895265341669836869849143108293098715081122854699407177533763661771535113298652705085436384337872601508273749657702852416676487212649593798339775062931188796227937777132634301396110700367945397432209223489612642550598014754017632557521234187325586692647264480370385494868847391926879932963092428746921452980528668564769108056345867266768066915023540929879435112938872228820863211341922663825281697714008115191346840200624579043417593289388325082403781887123186997223569466055107126182980323272551130849748330861883347315733079998877453008772132984299916391133070928067363472134969248334932010835274419223909591199973941524739957590204283585689251290411976175500316713254109505569381310427213775598450309444739079079177477756711295724153801795403191275306828056783550099661626406604095764821999774335731122620408275599063292318851757157973401603543185615393397430412293985998521153707743437575481163453961582610139667439484694835430245883687089734747749965422438192792983640562966639841575591758852039314676714416290792114793223441063271273409613044992487059007216649791661564951370847960733124122160098108679332079219230116798560466796356831929358455591410609733284112203138024145578228045801196728992547600693773863615280535220782638596210568114234914934834561372021076023127199583228650677531871534146134490007186779576905804179388146061071758980715325986525153896222497774038160212951205608906754968731131410554269898932529421930000930409271460388904958771622022424108870240284628503422891344355027399376505670031629109256979403615198253961944448431894640625472016266863069203060124301151940069541820947329793761357984034735812603616918709821762737270929768390845362936354482185892052596772553378231868160445251715999032869274800307645458643248641181676760438124307515403297476063255797990467482421484715019822593032288075674093068758110994392757628174187309480784304292818228596139291314500611268725302630163762176395151104975260758643918985918404107081647205791034790926049379184524173270524496533901972637679695433250985158948470774351797286033030243206187408629961815910416099948413285601662518147988156728400403803031292594969741237460086660705635995325588087349679514202330309908157541577647285652343667826355321725270369483357386566838381048705756115200726618686307781409574871484422940990026383742600093115367797912681058705791600625577505176586482519514968380724269247497500600935799263742145183753626390806231255416559809873192980538382513270640610567664699680226557695125010776362919219324521888728290266952310336187052893743006483669529644616666324447781251032220480156939194889776350252107924821654938386817098759505442837883520130211778828213797405589311408058902677931386042763847848849992017201660923798715794882056170650523325927270996682770719848726113757605786707450267811846443782838453172403035155366880027101129547311958366144644553010521671655576104664831995111039579380209460196019612569852223641688166932674914929007573575765066142282061088340202039212594453661018445923817535515075499333935983732260386700824399851386849748477331201384835597750647690499415871580082279307974274556312379915933741883240528188359020382528289653562785766862549814495092075434378553275950951126709493080005484644314318365525347632911309639398828087889114948887495329495869730011159192873996393832085219935020377317440204540615959118357624382454413178293537210720610792339476330359626719912604679509113678119545026587293814203289397467494968708721399829840311925677614174330108740406721265454883920229820104562368725137971544055515780932319827142575004718168578206558261868610117068445859848530151318125626838320263771680398506025483582043097098940437782918432735106980529144933439748727863710446673946616376010272129379360850846286450284071084514289904853681743357666071183994230402596300024756787715248070241442775869740097421623888962893137479735816673596745777239105174197891163107008156277822171230952948439536313956117149940660400460449895869183818581063523131059478494306924269429484910460554490566746483096878244372652649602781320077787406321685530445471646662887933359073530828251598596849178377760430229592223177942218247121751036898145029129409536798095375560448712344422976757651453068963010877194083954413937021885505888431192853785007105338002476835479984330202076832196943285508760549361995787292976041056778751936002501656747070466862459187453072505071080556949443582372833768576972237781323944114244138807199444773961330185634079035501038655587148140262156765453602087339700265091687415728623728843606300509647747342695767010004373351343583579391548522577285039879408350422348855140679776081049009121403761577681331293328781101032978015583275423572534560279721165822593755947911545730421177286416486408541132876547927577538291346488215640173897474461853358063231122349911202656365982853790066263031455114206532376758745835227676236604113784143859936638788589705963402317531436507618975893775301171325756042852071349494850153877607977897604193133380883991250514228608562367015383850073212352316070956419150014372532665165491622621522719166219154253391127934228061781754278695233380796637238620643476320005609694618949066916188700758294500792573624658051067399010930357722626597648078317618832779403349277017501739314412926064171796947967992788824375612160262967201935260345074954069290664285474520159265793544225793840353694520010652977559103664119006969166450706258746784899636939739796959100314995824696658798295160329695841328914701545835653185079938406808604788897247799277167029886953483919621936092674583007546072828110765078524839807662219120962165116999729216761102317120415611528760785367002099596956287084241204662111307050266854833164680407977823890455662041179073029376199233713103181531929977927893553533557482747181313716264167103795107287593152664807556730679085214994062328724888800148592726543171249221146168263574308368643444932894441367635710367554486292797553482881747223947088730552507838006427000783304606630836773268286959677209779540204398090689129309787759541025233549990131284613281548972032126510192460987717034464077789086939959788884433600776832571929805936624388520121062124973416157129160422667571940881753674158772441980473375037779837596576877019553281708349674885117351033853007555131404929674096053630978879707485568760006074905910173006111830163005672192409313844618750223513738239988846432945134963800947445417619061992698142647926631262514599864465332922912327762608733007249792065172707309150225848667976906896627691234575746910323876574393942045817763574652313291834136376596284587784189765048181705339078828049165247407961534021576679702448128624435738115900709506924174656276946993382873491897193713311850235575331514082445177527308570160718882023107411786217985315578360316026103649020058957703824306894588806873484923783372227604916104046752268322141795435209215808306391790071298624794953901183491870264408117647255700534095592456779970477884392428669523206297994645280095531831915349674529250530794747989338429297344937883533916016162311793795113234587185637924437827821693044291592991713098832996607862031335379854180227136590195103033210294329271804764335220695289417380591203148891927453060371181187765302150858408781352121510464569709618380967842024523642010183508310709030436849847115209408113985195195412152997603411631912153663862813991280137397936405166639608265137248955000814313332624900368518424150108350879847405416105923248471522857432114919394270337363109994135794852925658564169162894411782244239500644145596262038933293909481404503979585874600749282121339535150167180773684233015911294885552052731514647867362434991021033607709805572675990058557344439323634036047508317897262170032209268724866550891452589921411875761948779660893705326193325353167063714427692877815584775976603861217426287645116737299913470379678509820181597440039565246828258809491107387653962135351118781568787314959222777534406631342786431297453835603774639209862860747969115399845242718166426749517312339356359983240826936221398188935718128885549671446481780938270881520872199760711696636534326415395285073193860514572810394881202104938562645798819277062203340894675947827398579023154354910380376752337444508514783517427278138892608238102979748952548372154990223414599468363697510753767068169044449145003724636806844817847791748918079911961758674922665961678969316625618924190798129508605529166845193546805273361270042421627363958025153949405217124232192931243884262776969911686843155206323120839329269240199074207820114619009405037327028484471633838218960299833036596029149645632860612549200292415990024716822312621874781633441585100593824344953660112033922401830091320847699054511709212282639898001299935518145537457529269007580587190610232723943324327163283259652038595666571268615242423231649741512840985854848984668662267828102968171362274626444560490350443945840475866798138847266540942189138525389583556796428768763193634026950099503829525414286085784553009913045884921317990494681092483984325855046470592072866672678239013238356304269295216580426527060845029337846259561565642943586327157153092454530086981948258844742057698456681484621844889891911077807278606678945301339392688129702767553329059848700846812876520719923130758977751952331781862940236115382433667923641952830685259434468900735424520535409646220258930486021727859380726148409533533369192273898512868818021093782505327714311960524255278722282810429578172204815703801118166958520595971440447905180667586863860807597211369455784428960845756209706913687818524181785841122815059474762779311779762234904818903957462617021723315631521578582343881579350969617868670856586537931781937097908304447437753079807157089810011129134714704730647825303095089739060622404926984494684064576696491894764987697007272588117603587396532838069941906602741600685258824109765239393069071707409942761369225033394833841529232430022469554953491189074392052827159540537342161585175274269217903381401990740840164643221007680550630364311873386214126497284234943829483080766903047106568662817010033350328865438833668302605338442695479800407094476751551110501671951728071928874586009179883558290406448380598493857428634196528214902299883559213514994289408631328569257667851724996867608264543334481143271747558482404715904714400178708868988252890545963881430782286820933407481998218917450015561163967713797062931036422713692012890164279543680311691890483389971237699078121587644303605039079904497248242839136735629044616639785472745325061137983644203381288173261680889102033674848826099245728092062646765930262557072950368775638451069085115853384995081772529433128462510564164270856456376939091136591243161561971381988375858794307253190408419314577688217412658365958767312757908780732517442783848766432631949547191227777961928915265593582174895968058558947293664855483881157947901281065038133610994041347495892846081412931708740325648186034482303872619965194062030162135872865153896090007068510776376384241370846958834392286626451728873117428984176419535280991729365253009646906662806511861918003837945040490422221150642246309427685454496535243725640835526061386983495939777205254380937429215873209311080265493726133518349787033082178967453816168539158089901139625720789068268291598501767122274569688743841825734371157389275608518190228113611785082377011756537979637978733138333020556126737918821122337651900046650523358378503955933310107470299163348542153377772015642109784622473392798203396379760115957425376623970540229180006682552641112601552545602456588888617212621232392115799356510978952341514433708096198950480175634852754328365467502807265728109025382219583644598203949080583222625489985514273395910162863100256737733567247732172107667734185044415527915401680495719758948262255043743079066713541106348313843698347736117085558869783885850763842330545985946129268596805797484065672803044926289992876345523235087077743575887873424174892201969156275788019776520347350572957530880998430639625033050801359301445228281295871190055652519451588216413414215233619107170854657072123206514573926143376638909266767305086515125384371130927857381377545806714663940624203197105696677654474701152815866950739441657709277588829015000477986168085189698020305340607045656922371268345251299541813863659098624742529133683653031440416755764624028484230341534294362164364754542031218816994415879219309761754696421988318117631627276605857603830403845816486647620265001560604178613248893511965786456087068186457977690165275998045557434679246507293235517637790407100168184652624053544503274383687946280835003105650338837305139168643796131556863891511788930497590309775830620070676201671616702726099841193179351160564318978654149019977929313879457628157859283447079298922481860818601784433927513189171896280793260928443762833183457028530852338638175645264127405134483414374522310617476604894219010231268084315925466622800585420819351475515648337116140512949303349739096425768641302786980942208342217167301305693256578830816298460812609369358192271655545490863764889555465462325135207793564272882337638183696481833016930240420591585527172536145367859938251556011547850453851690357579979360190869122455218090557803088743147607931995579211832122687716762928799952258313613934470548824085255068985811668951351982806364857223386414206390483340630030679506799183532865974696623460615577783703402388035477876967787805848196413643007250366385749986470342598834494546975657678918042490544721224947230874207894871707563937558091567730743424457880046972913503077184285255045598301476491652790845993733195322842348568464362922253771352777301611942557550654097268496204351089542470080329745445537596048858941802145535306455897786787985317166644139602200723903032259280867321170503333900089679423087874896193945884603667076771430478767474199069945941206608307656091187664804303589349880219546222142299183371525521523530956159536602785392369011976178613569714914759903486912081233335065101121215656045030219063060285376139514171084382070891899829606262516198400207264121985113687434251378400855676770741986528869663091945222414548457203869103414077270140395722424929699011220433616833721429938041212299131737617675326284121920711286000650318855604864640774879532903954885868779957908913083079376929223287936768808168020160282985256696710726377197207000064584269714710927006216806639180113143723917855997323710022471372922078995770705322082043398699248464373656661011276328559546907874107435604780820868211181967487823455767483259251041096443163886422427888323218204411205646564913049604270881090946831670930398761121274738628258697577202723776250796855105925483730239319034420904390555206584778282434869615221548715376116731482353621057101993947289460500892584148029757776585068449675746298875272142403884377621440052976302303302975131289352591194497533015961509807124413066866232843688276114384270679969552666266599318653069887317593887957146900725395210533584078159682373182306056192599213182811034116047325376658699780559727922774037948467072980584189791428832571971429053592943305673004611336773527995121708142149347027215717167888194894329733461990965190323407683674559106023937920386139579643971397972650060739636414966864737462985931432526928464667042646633902987215432817668699678767625005551669701853559918072091635142573013543434000920324797214576684289865514943711722167733671679082199623121172571694554087714468268827218389179934808267166946598033847693393796657668810308050535177318448408634460380864122375353844089822458620338603112001448042260505592558361093590182840681787541692500058501014429883843170642077139169595763437272967054087770160430320740763890236376992359474722896399009886703145400221793386870469523713034850514712538719139739065768926791024349432850038831645076529182216404655092797716434675594522132679540867117047354829186158345526726203493769211477269458169082560491551688016082328899370499114729622655868435152237426783292730255521170447110280825063460731360967626254772065195399848293960820927635448753022715189014879918883316886679324606161032230758108189573118791518910878836189866952381211891482653417295900384404985149589365825332065247401021380008843410736913680080927388620620238358651495719402911572719447037297994958358331985641741881228509417048651490947297694607949176967728395193517778876728081091422036428004645708172571486267756773980671563201510425867987612605536719252059888630493018686168382207371794836045280372527321086757813638814796530671830800198466394255861983987062609476043429379653591815182047352782420220206972351448616607832314452532699290853624481382354607422001933762696332438234629202581409183343931156886614515078795150589791832077620825259143104198014941367733341744265767625493954618316521210709420409648497284274450131876995853645586113304195508749605921494908550726467125192916730407956093855062727373474908693013362045654474806585799426234794029663908385238573774076159617824770425627350458945606078623355885316042411502503148479150150991139747482126365245657624291179551892965713462157985862549552967832177037294031157813688691757205626686661018148562455161416710452039100012146672314663528618963116580022166595195282942576772344522872705334176202346066495475490862559564129504777667463964304755929632299148659611107452417711139818187178122157320414088127847341231930163220663776262744015346285130354021340758646191811270988672480971643947385148352271774706856802095536341085674198226210916627792232156233883937726085187123965143638929192006413061432679711801961676181298398935607038623270658357863235001754613568660996177850845921678270874428111009509836960785296740027139689068149907642229503367591451262361738159555294908358351893060628051127557891083544517269295139749928365232250979074003673062204669444670881818669255037173357283673924223169061450234703023745726882570798238619501870079978200772504013007892739037777208653815498551575400969288135284317207150349582467732475187656150188180045102188497823707874809477884119448338186443733019186350740386835539105117258539236256251227383939758094216020477426637742263346399986089706853068668366094930603225682677898271011762101617814740427349488485299825381783328055913817973673477224511085287384773044599651590316986088141370436621354141144848748565680414721927799773811491774027272265347421782144934068510307694914385486454137911297042513501684487404909664162141798507424999042834064882306955507556828221655496019905476452273698677099540803576604626681436248673514824010438356646368843153860241216971623693561938469602214552783807743664064347550653121041596925613032732076883598703630886105036222181658013656814341043779852909571804449211724865439879282934098679142805590100884191157011304139192661639799935676000314375510618028274659148814161704043353631631711462759109174802791875019958314318518929845265772062323447597211084881913148714520483321362477318460212920444309223285487340857884179248139505021410910136584180656282947214953153007535118961790783411957573261729702302711341303977552739071894144822612376245460291088851756939794629749403274961059784912004003994427143439123608273271346298556321104905002579357456416099407164179988102170438021844129551715615580105383754012668625079524994318980462980947497875938426581657228453815524139754365629928346781336136315196920653150778520699064899094426391200275057493397039273325530578330120970911928747006041048242062435801882057830555191039721568407899031558609525047470184459604236649676474684085475838678645024802274451022734303153513881189920284414353078425907578199895223855405741882561765234714796419772207019278152416256163711169149897095701341211803149912564936639822370821229710066205626454342377907205378425065223486897097881092216420588124357156135217582263579686240141242032110444122756675368612535872860512824636468760205289258038004219016174186844964250242155413427123810534248583945939577308243344807596998814884189101012344707848970165035740726832650934275806990910541303016084653551718490856911214074814391419146293120617945626410626291507636643552598165881901396651318635132349345425229854374959158735787616452475058344432708481727143313635030789852104455482609250123920758252887009948784974783784250806035579346719743183492763574125518480854686239064815383841529983915141097332142009564473453544866525131823001528148624184562910532793166867554145861317703770302277482509258305849652979181231351346081534065098053581983055393495081075349223095687482537893723004573820076083384043337399343513607625483745362966801595441395246063699283125304115913530252813583570454883753632724315209527054306419487809301954484767181039821402693005665088864468390614467120785196727181323552575205210669209853706983816502091936391451003328586467122127427740004344046122138058847523064677575193257226454548147714887867725657452131094488169876233709068589160389764148122936155555416047602146500240707396336182284459561646870285486123717611611916346508858081571968473767502000844254302636497660005610642687023188979059310286055982344147384039083706028423331879570734553264621424106469041219725754764663234746826251245479611622235040235934756174663300884008489887139427522115690850937193727027909723022463546281227615316480094412006317302473511146490852521497827110075248788307367099292739325616710008192206680516903405463734312405106837982366237097219261916041806538584712928863490649161096210192515694923016060652541915481607399642043066848401220245822640830507586214972742535703614435095947555741510369817192536600085413535437894066078226427660616330474316727106245394742373803579990557253219162830180053027170497508774907444489261753364339431689639066857043743981093558653967608505490805465795185808740629908459770541779976343367086014384861220364248323157822434766280423346479149617380251296058802823378893066570447874242083581413110289862138569467997590659370550290477173276660527363314725289615820768288876206235677130540356505331056463288850412620011072128608275387276563629107740966817558611308187121824537041909819048620625328580026005303770458826243386844349503913329224924995262860560330534613587680862251002288370552790964253025431627951709205963367870744069868055034400642103862542418682730019224163797963596166081655910903096174164846015483897635461160083939836866400548678801896297398232876783008340322329068415394832296892175008699046225014508091213385910814956490052497095487970465218948073060365184409465169510239769457826139959751412384436363692561818206517785721709551540622829271403982907517681216075867409351733743189296957814548543159776468225479941468658896612667842802791894723136972848284299536345526728982589539857239338998334701855150150076943706616823366535274526180677665261713907684165119851148372333239289651262114561725059928174072055311964009915825925959913448417790357796261989998430555601960071836699758869247816727692949073736625637623209923609651410294258409420374047431855069463215045058131824205115829256949595588113295612329272542385523382522795297076938749184476131928832479857933313247594678785885710169474069472602450910634338541146307976315116939483132359874941761770255677397571048356529572640960535046336832840580323435295212717113712553606877096921180990392537915468554330366657296977808305790959179424254368599849449028570323396986964472235495338179712693591256735801585032749490095358746579429911164235586753306768437041390143522040425554312204306437983592856931638670848395536988924095967542469520325728621820031860807547155181855079553653969971368614153040782058083961998051702308110306188279875458637924896228518272780411761223310000130579563738842585290969763664780522744253104073956178251829548232430753844175586201059419377262070814922411831743716825626064922398175439239303172879405971551348751725227880467144470176860781702898535403463698559187161175731330325866176035542683308450056989466038808096917614282898673184890204304203159114297865407919570021074441846400644150921214892026961647859621284721662270530490620183795125910623286145289417274385917338620266911824828824551761624189343195546205750260014857056329199335385691569644943126742061407964646409913217963406975872531793481056008487159035319740124075415292460613363120497449357521723179860324493531411075857311944372626427263253265299765489468297030506029605856592758739490998955733705282746994029208589938435306576894748203894070902260723028564608720478725423122116375265976207071199530449789543353750260001245941016688971029957267948137625117656382019618409712370273569827958015357874199655587195745347847320132640009055114870059130964367124197073881575784089964273083968826912576447967660292074085376202788663581441389642621387949429182692705895218450658693080682921706783097895952909359188921770703094108235558419597985593464999981442528745498210051013889166519481849870527433887413133677307550300009298707421078619899131012357508752778979537165080429089121620701581177610028991081723488986099039598118002143883276011545797387236628985343669450726239636546702664654594506611528750318268082560825011484548825455717729369830244166065454143628333884526649586313725876492262210519087508653939264064198165359107265882969855982973018030400453105095515142333738384932113532030510579978369286201210282262426848451375996465900110297293120610437271956121632342311178951265420293873276433288098478900288226419988984325775209290632033298343389037237494286651646765285124645127274254199589299383527766983583172270254464332864090132392203660743869593931060645753019864088797959192585645141606857256544665312656821167182632269282773328382780435524292309090045373688412250570508633633621105369697712542664682955545294289338044041715739271005289538440412341227886002315828905998337943804634104814988376997279135649814342980556744999548759240096088201401657675414899402711588199529424380610473965208100615005374159845972172454807738104609443867925540630620778803701483805738703824605382224482467021805865198566862282778263049378568690946960797087128590108231043915578401303724669383957228630838513631074104567821494731593035099663284092847969813384764306468471063414217146395016790622907625372751677211708480131956053082182220914224381285900412563488385494616870671670083520827427466574055849752515462915032058262770676608737629611214953264523276234827657507628878557428064515945116038804800087255965754977395436842522948608844261615009974237999867775188037232159615684494263779127928422445287887449392341683094487619625811033253358021506988894530665712848800932919587354263217206483686862667261743348744992574488438999072166011495325235733379328869724014109228663673137633119491672562438089167058769124356083109857842725840776762237121609468116216254418786171128257716931818056764919086080496174194077446675331115396566506751238308873782640305065417081777038563351808464427736429241560853035549790694782906240928904862997543154622241664115343906345765923464908022455915316107160725712037888494063977120848956944041354859956394624238331562263044434681547556353603428594227948013228297049138981969725745583447635053877265418296025701657560411601040339361566146615756714475765818633221888957876232463870087630076804474840346862325768167609010114991506711828963656555121321233741062111424365775966782655085575189664892423991259329785823016864518503683294739144457622398924803596334746609601692127625192946113417926365752234427406014396424560275611192978859109966190214105629957490981784219719019085224797729829870503612389630908324493839781086532742910621078677514009865187893984049980567779137954570343521540763169910088649089028076484626938850316717040419419083923442218781418298223736200324317740762114534609981301167804037351815290971604470749450663592898858120417549734434220864910597969643238435750462445210000162219867138564419516598855949373548208558870151621895470220665963027598966357363603020150932850772275335411279303087924601140548116114088969958356371361000666654603297253779537957809046409615696849211575249069980856067545710532452420261129226200063349778393369454584644099413360044268721080866727900592579411745408261852690893635567002055007152392777126405064263204572953438668518239044872486171049910941851794794295652743810421193858695567469892532382508545148163962033046647835534187968148480839909932815178318608942615444433785958772385329739766122683038003879007532797931962742530412418546466694044033058389744435263266102389447510640860450241442900972253185035679607894002697061340510446979058854182640550263413121481882774673798581560343395916587722236297330492929718209280084727018287431997215070195423980117640831167234591608086660743306659468798666332292805770418622715612802943607284675313390501971175286169451388317099468519301038503117354959701795166490930741993176501348001802708050478422376213084563775555961729787139349501135977893230577805473158397802821580502169478736523274062571304497549348600159364449912254323169376090466394361400748955270211898448063096772080568227835005631630531507071702046082203482134543116839364326190650021908300317070018049137510618654064920247298907127435666844173681201572331459565219268137492738518650198408333658006218959552231086046014836139173061112610448196878823085070787018601182540846699743273071433805645385533574612603344393015288375705786840258134280732084334094285736380934951312103786257259364957580478648959289567514272397098902206665190102686054254021240383735563018369820685546900500606020601679478311382346622374541941235555322037524385645582839737703509065465817163410713303125172629860919415732816518857003170704673441658678407498766264237839789181576286656070813055866712250284541257100793002714501099169783148440672367281952901325830677960289239410954099459149162650571717463376110883831214467561980340310309295734078784977766401674397285548675569040854819188503389485440058396754722962591589786103283530453542298761693368047869879040366440149220655217143940879062301984941922393399351950485783533486102616442221250508459705555365466865520409344873179093511237681212085346312936662886209865447222398133340922791320114019495741864972741160119028285468560330109396109197251426676571931137056073327580016892419835603503436042231009189443534590041012003995461754539200601716757815358171788695399906459992064786674901852438958105966109552553792701800957614529001145302167116837994630157562293765658602741088148320890332920479001898136011190577659057417963706334165658420474594793033966097740835285573308325203809384216075827312966489080139831661207093098301034287858494499152305634375294042341688704916517759147722100261725942929983546663891472777090517889073310033979613689165063461293430616188809567448419409531974783622237372104882899598997051790237084651868535374119243478151985473204877921362022997122905709773867706089046438550385862644831233408794464762130693087193984845476942273389849643107900749980139656399173866565968184288455050217200012931788508016836864036585343995655180457147309360961784794763282332195408498973013495773755171248539330833625910371207024721644883311895289727787168523419085099158393664388178071911816508323640182188869571474331121754790896053820296425516193377149045206630951581804013748086501606649379572455532129793712860225792318589267289402024067933258812285778983225790672323421400509813507399841721186552466651774095218687632337680004980716274418192066679804655381507072015494473686559209055377528509818825116151140008775261107842156251907079686153814803839253824906104215121125790568907897827566002110267868147448886534028859519669977708793391202852211709529234410298850361443623092209352886126574133459629395538189446162818634448525238931407249626404391081275814057980829892091842130028624979784122228070857677241132746637040719816019248504089065534098855337853015344864020725800956645012674374192433621132234666598621512223694029594655323327895164164370765691720363704818747890929193715674540839738711703710366124918056696476446111137936185986920065755772615338481269472686985287459358534741770109222144265136537468583052626247358614371115823670244819643007412814215376762254291051117797264344051018139316886302598262417018142495443537568556258634056209173314313591692790799565395070794557758262968468665651697048150263752859529193424778394419131478146720632058055738071706867134983183643578245391646815164585608688602459859060833220050046421318827782721464848309008382001577706637024886775461715026016475068368462278075405557716959102744589619996757515226524945373244623025205504231796300793099773477299695190419143375040086887089000165178901068557801363468685893178212330699032445550751609457159839357142354859105985431861121854344036693465049373052355316931790436362837677741461534128248730042676806222140480635646738369448312901168093086509702495120674519789110713926840044126245541299615835484826987009872666451985303276864483867509065692626943976863674993408699482950868000845449437866857035515287731585536758379526770469984437358061987958335226202454928920106482956236249834737067917076846746451319043821489708270437427442613821658324464048734810178017575335344679729801713582384650469569118745928094677579838702771101085895476949571206458530832909790224612250736209722475601306877894241319897218902918172935677405738951109188421342268777335068940239966867613240471840332568195212829561739778822797250338645123849274276445684926687424232053341400831644917332169217813388769232467078674220351165438403083356130593531965485599643274991105915985500215762405394968979519005922426341408117804372509177400261850830007827077004929057325929466503060782217418471233848858172343631671720965060291997847661821140713372023556881859875518659536050919826627274591172676571284131397878890523163246725605253568533491572597495786569693867817037669623625788084792071345644354794745304330241959781193019439099488253770654779195450314129613677910386586573657687776409860661886318125423538208188787828120113474149454961295992665028933000245561611468531924097307893333170030563156219007196479458525989882865144109195234749750230744144678793965158783652684598456358821435509073977206237109805753593572473807016035243459128292937378229475480248434323496587671136898666741321094758904426017994176257678035073544384994034566710941236405854184915393128613915382266832036893562553416166242311890945902571071942222194197302705515018930298266447077436936071336136449371916395601950957243835082977785577312779809065702502856975907995787461584786308553888740386865408433240992218947536457400840438617753439836536614920696685858833604816971385373339207461088794789422600594013172467162067445313724711352299533736233694317520349346401264852543113482220914930477745932141899212018472073415336518572421403859724679536843831658507998214011980159771280720756343789642880343665044218990998728189835511145313176271685165788804627850909687467856591282778487420958996672400902769916846927380896667865857351493283176077696329087265281328432148485735708862168122840102557406171575131648710994312295989895846853649976796103462821737910990626398413591235076917240530793387632662728750651911969633251219733632034800454913037595121681060911454288118000287154478848229064879837466204631394622032343108373450660873944748006323130496511124342472919209927888129090610657314529972754631204579791209873505980765756576335708226103396657707659975323283583363652995524204733648577232032305455345822562414901431249458166715005523214081436716412427749132073585530365082064158627818535686684563075028280173167666568376079772571746066676135608444148068877840848926964602743520287963792110036047667822084812133629901664713702986906725285576255199026247309782711196153224101467173736252487636760814153575057292762344693558922683176463383911810126042872500749279927164030801881457525462055770297283789321848338211537300599960500133290313542565788269700355250950238179571288138008740406583350343928380655648300464776818595439595744859547233146079425241642688913901926000370633219443412275690784700366130801933560862182080841845629039971586486517926783434063210449793696752733689771628216478473336506897701131287259406011472926158794050485390305404880932694738605771364786941732936916630755505941208312665725474041157746450899762498198134687980679705740355521527418915415447972564141259613817676819177336706377805098853431784738199200827557521906422826115998720356788390182865383790704811285999919817694185598865637205337568676148629283729169142148704608725416033183476831689435508657023060462573941963168366253216137220795941844159633097175476030107533555935727957840939828996804176805502082064286471067209598984088717080105570385995621225766709837984258507795252743504120042073060743730293519484913072283141612545925015797020712553651849516627736610681204604981564224348540072825852903172182542951620696325954501435255263952950979454879936122128367382275662684947218570185550097653742079473393390031619791581484282295959048378422474771531254548161329604551039740664701569615758186721328229257869828586776344814502039755588685272634651497545473207059241287473613712630906274430684458704762796069707806765342330176082375432241323964336945589224608946764952511426995258136065282330970249523408155668797899082512695694105124369531605938686392899077395859316260121148084017073006673709669176958555166112171697364911174931360568058656376947684243368739759935238976181845286616928841543413003285130169452397148743433735917902682484049949028502317268009927941712363045058895767361622231729730308153407351600615664496238129054672698661986173263018761309192525397406067277850960303647167048540074953198543027502622708857305657920721503782284136338863966275920420148110983620372703820882156302858757897497354468015630679551923093003043109176033366189021182784845972421074435226120858334494360037975988716880810251804381316489940434093647322292331260851723570813581846343511278564266742429370065669478795871483122706782426028223479852412108891968660546097454132327798946240565852958829419503520802827160738236262588565903818886330417032127314161377186202485446464306751992577509552918709412227263857962878331562306167456893678666392443595700818536597802274682534713959160320941627356205192417354489314254602249210853088456495764122244496509330338921900325340756026794817201013199408683806090440726404441988725528353643654688236957183243145129004243035687852069803090882638057824030489976651575012872578110135765307407860827939743671056591961086758781739854988113766693660978294146263447498434385835973128546988130240648746053215184364074052314627220711868834684091438497811720151998848075162701490863003790694210860363351157817305837324273827719122051047639490535783537300654623639460535659923554902723101949214489442804909407902698011840739548900848581858360626342598340114326332498863394830669562152173830032044413545340277715468412940603397320572425439499841764344932371018951855527880640588371000758581952374324541959066151881944516708428872515800406163334135537909633837881986567671418814579485594189790817904789261620275333297247405032789490371204514388955345470750203439427430950040264070626289222331248915410845014072005592587546335485667280977190725892264375814697532900054189101209028649340233174622286419330079508171179885347453256338032676603318280417471111567175034373326073698695400895335761773410995815756060995143726317546884694875303788473329497774102789566788504574681827014528665524810675760277019319879332897696695563132174310605237283106356878719926775818387404861775344120677044413294286028618526561393064697189130996045509883648433044408481693427422722405613504821950201859500988940361934211627906099914477696334765380714090349770227856557272966892471408323365109491255321769735229564497042415474944064225678846746320927120087231936678977107773511210319510183661790294035686326308952573216322118453806385708080536108856803766245381628250001424235239559073996902430031865226091383485591025393425433866870361741122455270927065298589786135062384937021015328463034895320445951978040674264844608615837399892296612430851943368396272981161446948724984903063068529551939820543555310053914512208449702084721831206985202841683123610345976687404778825856004953199236116760922168777779888383570274100689982458769597560173169759153625289687113552273337740400064049268743290627677074285751825825890321640904383846003505847398682983862328928771869710102608052446318203891160998825272045516333086859278110665281965573117817683740011999581539476883481095157546334840865998502521134508078519447064268267287745213378483326490455266590796001370198957708055507449743463944998973432630073474091521532359596771126828951280434120881495043010774838060692417824589934963768554449222732255649227215204895665763707078740593381895169541568959185054529016045872381505986136489661751494352126724296564282976595890782629130752305557862273700343454394320735938806337003266816726887825883870273067098013664595253184192293751974863999748122395212948780596714808894909869631718682616773553329217993881173318495728682411335035591753247189119504829343680354790724649523866486274834643421388176727279858164002230423978746800020816538375096399806513920966973658985608862283142694842988102654129710013613256163062995258436364303898991370278409756131599128124374641708431625813376957183820518714040358678804222358240705473995458642594997109971789565168041743923497489952642856411272560827118782495571571950687751652611780016159678750647306585189659997452852916694219807377846561814478567779441700099106704994634699594904000708301794220707881312573188401852952258167443758574663730122685905167601807739199945020060642003988017715572093131141809752322064410076852621969767351997692503116781947598842088504209353984638669702829903835926849302701782988424759422822723889210295462392407796078034807506156161477673509665150508136262229633478382505465988484694217875778993311051871241048057938224951081344310022860191245849872837483739013568818470660298410963267090936929067858661591520198879638944285316054756619494833743762994472062351503626966207794776175346082217282459072035601285470437367315700361507623447860457267919177314156635818035071841562452539287955057813403413581269714826530146082818772420431798348660092253816392083435215108830649134424199561805425694550582229012000450218277014050539899816616968045730967187843416875158026650984129632380030074988032584382134691687940027624379520114768679613961410344900336227857414188859888533888017580126052803604429336970528600640988656724744213085555978086290161270308133928179189686321003505703521860054898799991897585243225108909347743814439044096318215873293095574334658968310796393159270799596644655942598211212547455019992965441119785339042891920357566867325011719058505562105223790716329971028936802853020380606255697302632308477759055624118297140975619770553369874835584885514859271923608084702662491274202769661065308585934314536932969093137380695890183593257584139906556686496474627812761165516932176959813492042202940692975501983818059389406094030809908909419283508570451184385587963038874353960403123285435088936272167507790578269807593454398943281790799929174175507544858395843759108544877089645924900526622895643858132664132920006104862692655994052525573174027530776220605133537807199206481354230450048245073626647612908354210828937918742885610346714788893300825280272470108784114473636586743227117687277103641950340093295268838610854204144183515165286784685760534793710842078910789515090919286821383008458095798352053335971790093797816895488062386888581435627027712714912518994006550470419570840302514697624788559999830413750228923795283428924616549350128421091901444044393551597012229680084415411650906987132147015562957234349438747853110781633604779382811664812749910076883987723284962840491534319630637651844594382130046401015210424062035387250409811755211098847379261015415569233447899526383037937495987698471812690852709650528550651901084878340023217179966162625625538910526069731107614708848365784914693831467923441202562395631072245089780314979709621497091369258530749542996610804925751953918920832803280591905692526621953642575987751560082666463758779406668613503958156503869802620084696645433581562445658887150604910427270840088069963384215531849143555801545730319462112742243714722217450437964404508552784665927381539539903535186237301237380780461203220164423862135062105976708125810094003372728831943445592165218729156573332174594882654924500771894162892888331783738520744049369722128086336944873020671139366362637544192940451990920355077452664658277011204741978030478090418593232028691025944561607869868493215721684109606557903558894727371755478530493699643044051165798756793209323877256008081167885884161472593256002604715559294560271920511320817821429272816538493345709065498023343380524561314058949613508733567966107671035865672166231925289789498825333466109104645370304995058793982925935638484971595512995037422080266100502362510365296851408914911367885680953131197921845257519975027453933968586580637725261151988702169107164696377359815409271768330116093699218828679620182494795281184689295597593130438826361746957020333220103478479436420092434253581606431543755091387059199877598046212343325784600520226902548338416275544179368132161305033437056875987654254585299987621373958094819416849218395806989499719680580113585874243537104793770016430057243612646045324131194505913981218743256379327765274511314772844721525902931009158709659326908003751302081371596615946154275834468019240540954607461851636239937276070898115267659118398325342583946443675756382294267808282399697030767802030458806115085258163740153158332404792480154485629198832750261052759065438803585825799504265335378225636830319740379145425543284553275882397267612133528269793494282975034830324556919203567479590226673436145294947197758007364134634811599325602068839096444789554229171544144940495494448458229272688147516749461516224701793920459384403307291596852602302021137791465036904773194518857175306508997451035639707898127896290683067452238657090612461231358507210492878576830041748217383825843026949368099154645460781280589453386565980843127141313005546793004560974471266053201317626158270670015967219637290442089589399179507097108855642272477247022007930187174136390551405434875878446951746772399945507760516621209716206318930861359945769712724306170871452477264611016385660749543526855132057797844401309498469930649808864302794885533759736773680906892333119442574260225026010824723076217504278113148811192375900696904288548196335010093983849051753530650667978463581743680662924512343117551338416137572794612413524830772093706307819770817945834018266709849698615109046755552705522400748069291935194043848920653001816510600849800148791329076688602426090450186249994634622406136842565125307237124557195334422625322217905357257617608501010678969341482069776896484580510758922881538662179313190615774795905273841789883437183709280852453829242010172950046684460466674109157209710298756562780175591890314999491672744799279641841167201454648171126613300426398559560457328347569309610232747845866744293589478363941691300468411229732503182398344919733673326985965082963038239393107668870229500317263623555619117044695662722617506465687284000897107278057046513046288039054445603855730728573760060768872605459589969689884625900566733366935464743316349819613878086017666948762062262206630735562646025539445825102489491597592670037125277991336687830184320573565045224108666079931838895963166347872771891401746970173838540048922117725640905597737850014934799972569943991979468756535052379207026217884781001950998944195060321297261570788757467219501594757984825782847601105007623326555705155985455874570705832338545668636537271353763376884857296029867482711766424448093760918192206228177417000027270231632115728572580867757608136245765982680923316946010089049496622260528894020079081163083322251852770258162040896091952693310001043130484970870108824087121885086326068019948346095494022842104801666393990730997631438740570687723036046932627473611416406984155053611342932852358127864191513621638081907917612689091650026894315490152145602287375074974686830532131276187899749191480386667039654180534562159715189133791998117198686562699573531677089481550759581021645987889891228561098867844445274258351361084562333165933044343388460675029211924628748228141588940201665339530160345132425905403077223417627266577573371887587588717314683396633874808873349617183718797751639910679794938557424584366057942516927210041290855828045589269489024653991248190312611587340649605712999807932939688065314903772552918477415484999424688614844659680914444254220338912424333587562593166182973729356458069997815023141749718684308214248745886269239030618181832085888350478230203022101301076612073840953413094767984167381530297689679956837056388687231029375079001174284071545955139312579450554397240378112035577625716169017458016280148534684539585047198414076465253039464937187556416301293163214385722602029409584774175934861239670726050760784285025529492718839880156324978067226996479516963918595599642820928389165645182319009798970049207410255686838580856262511497831750356750888481893347876766046382132180028045291615801848332812545538575816306697961393480645929291102548121189378804590699371459316342244326354785439388621048903298830364471822468007115619204573393945208218095576623257574558057459855445208309808992481037583846306483279503941956148185382601713227185235794184841618621680066864805778348046540557160200914494661922237024210615684481734119305097348322896935173211451355820082573040129263043333711071414721414804481809412944608427229746147989266977629989113363119445374279209678087346559319459979866115432549336612001330750881817750716361199018002920751096484649351925686338150073341298792565393652658080347438056834622068354576646914036546343219989990564118683587037800120867807893464134168935171950057013547552934298701235328749292412270196157996425810104113848841439155788415859884754617409881211016108421003920691455178726067722999309009509198321898633381256019163850639772269108658671175232382181740142670742740346807518830877660541712331633466639043122560915710847831476511985916319494425822831135256745122109684323259989669588410047047488601639158393293072137303763062518886015095749536992260297713221916259935459007157997668488531483971663502272375214524103432805433411062626643968963072687458326271671103027357025817793975116281476466686815224875145873254549065505933394510033677763151510917011730196169539385400284798361372537503718443704726331660464452918532076581986584744747866693560601490305284132953701493494344742914315852404365622049223850542299784187383078984085977049783165352755863202774329962018336518366914453783199678503172334476555971114626135917759648700239861835660005142201373776769152046351686574951626209738838795177340683590743432230466078608861101274723786529859218268665005002006089969284693032766777434193623244606003812933406535317488335046968056642732290632556319436048033903991811849252621219584735787450828601686561904996278910481932425797644761623036375750479532887340022776804665099259935342968894807918863564598364911733824062989715274799113615387016667651933246168622726865033892740711659832037996294129127173453172561767081268356281800089584770952255480864767121341765947488244355401469235926923653993766557381721494153505988894506363732674679467200627070017274910673207599559534826712583152512899335128919164250181186753285807909389981659715351714888771615073931685429135746429774567653227549928350807370648402713157970571394879524046555987936977583200033930046225321281637831428145534346128519166662505652747706350844511029802141157429078748180238673433237841511074733419595230296662735880269896756755821951134538240480292230651305179490966494451045615840589541701751637352114016796547884256073888873800403692522431618710536552656417282380772339025942125276802148584772357639108194517125224282867444286386173486960649049401643990112001682883607770094277792271907516085254981075671465078536927362475278074125161980795930912445449183211866842879511195391482299065220877604642318692546830499627824957432168039385087447035589190553809840086602230816690062095154440788380720421111060430758793981307650450124980563552793297939749612239293927076502794285187229173383394323953135728789912995828660876173586193007664610347434541200900362222343876941581281179929812548173177601238002517289500334201503911403010257948606058804454933255766509483273148326719904282167465864604588438986379990806638755959790273251577687562229693275911911780088150813761649494682823693235206758761231164820126241667054356333459280005983588410465798405039190534061371370764284665913070581322066476599730556634364653133154902757519910961636515882558647526720162693208869707894927797745990661488561038934121304855894414713392978751608823211501653685189631239805925819402465372124481247730150995875634393489939990084401544820183817721461954104461522864230809108714786846753941145218191521910187084842319452054984256837006957899476946679968431299219791915762465425209393624380871715511383289785571227720376188741765690896531890991345700663616952175911957120368760589969418785739715262391599718621837932676389251279830777708937369192571826747106151269574280410425906097826754849667051280205062961791913003595177667618106135976346800679825254679659461096577204945143725068187952621022843035178488259629527594591664536942886020132517318357036968021957888517686977511408526173706555504686381014713047147930514556335651997004044808535348855358088643631605789242248684098392394564868789679111459307400872244618388174269629110223364399496268911066950012482079698293381061354361789948649570514931889724087767277249148306128351126403757849401392265547390701950687961362594704628876903030033952157844547231368505354795983469653116131248019931621521015855966195661322308625287294976663646455435864937229392873412459141522159871610813851443757767781176128550995889544898635346120173273027126505307058633399699845359167222638901278974200335983566211607854963656949721682845685335849834838433197010552890267542008609649603656021439924635453580646464951329454254060286447936608085444054634491629092789416593139906705479113003927616773904122988213164817573174460856414886497772068643414137345180479711515942920966859672131487491224457613540220489924420265554788708435695500985063226979111520882159009317827527680008752408509350182805572489463382044571265388173740393814785751000348770595917043999832390387395934734624294974347634188036337444171156877143069827275727781282358906885643801664147281918200460036618300089228355526037583830758377863918147257493777294021592761559939025822574562149587066589935688684514256427790834286806739871254130139475621471727569191179561701653717300268249436315622347458754442232140280664385445684125927494128444770396741395273805901243891794039063033894265750556476193802801597853296566284890019665011989643516086567641837949587143137543065191513016784457538669670042678814437686359840984339768530399180042581143128407783312772067176057048309277494402709545731025953928937054568857569849075539878293965832697357008650735446184358072942631722531408495471323713237692868780005937304152309809739721831587199081087424246494785049412938999587403929681210528294447643850017209797066993837503002058918368515395307997345531990372608406899549526296298054157794146216175347161137183279077718021014472422437292547648386811041105550142067095803569733947239876918463059925952598387326709534111851282383560069137765151049247657184534476446248411378110793596784358445406081394712673319214994882412741648482744998578001570527331467856813780654979481161883699901457692951331521584859979321067373523517310869448362344065916735074666633979606591992239838672621826352385123154071455725496271830899212207906444021058775837818789600022583213254333994488698419959120914486537057630520522136066688087235912002599323830741696615338657037795696512877869708146440528362088524349812375175212087358961177222534800070005828031199351443580323619496598161413816025282526918590459364606619113597343265704616818077119623670674682463893792552299825133388565449335884026630916089452621212132881844728109478604161586764996030084262753649955886079570380366540716585401048807698771383917172024606596583008809307294359691785088613235750991288843839495191676101189625048248751746358872192504257046821747655961729751528009376122526015430558658498014382862601261809373151926225759988417340861167548972061691359833385775299818684889378759765696668992685807862686560073426904605649518684522726707552684273449474016384058004704335898513740517109689817739180407514217434596714685590159953652647304159196582718837121025150171577175195068841265627902696044548784469969099089001590809241611545676882144219515626755806760974966937455759810991843623765112246954818571872142117922747724993293900130989431404661924563427816603255648471921674862656594928312546924961861258287691125573838746553020258312301577215367292552764485611945161818925593101069286804549618046654676132308295179354526800572798154678864592520771432992225501384396085022901939154834527522503646442828003077730304714012941985212904781696553042590132887126200718089607298845654189416526013938789149324121337612302414218437960025879914578428727924606093558301834623264082295485477092192216104770969511798140972477956543254517638922178475425217921984404836269107368068619099866377408930970365498346540821684533285798835189374731357637067023522665712198255739152219945103327650119630220966630188710039268295573953304118521614035944514994041160964908171397379418569478262123286250401461655393658492267367770010609919966477121596174830645110351661414977937629696058104657877841042641879555328659339746248102525882104203273942466195093245682868972214540066430719106994785426225140233963023555507129123446979459047028132277882452653800191733943759624032833704815210696611913254359552187687889307819390360640250756083325216578103954995696505540245887559066748544470719381819717777871917446431016775314956069492515933145361956215118761763487807971780884181221360706798863147425705916019755044551283113556864475558282041030110516051151447943618724906311162792746005624014231856270817986384435816286979523523302841340569766713000942253872688919091422891599881628520444666719334225662509656033035455460634422771395859748888452571053763237310195805459172954640411760626546604213888944514503162352310011842587764634316106922732262183534388945886425909123050523005715738568411942462693475875899619210493425206126844863627375239239480789637664238897707830130230849741319725400962587868834112303080786430528204613405947503281312022096243335709730798123255914277455376295134226290356116339324284464936776569857143399473612460595530467026182014925965565299142414844577268006445421028349194426983255559885483228035907201848294281401174196316839384606085294215652732087320604653089687304372146639544534233353387796618070662032377096907237457270519174916704323132753725615701290788874742764767322866340108801776959192279930073102983770983159924732772386901583493013669489360856083887572284217791351181974104886360431999338342164285837205737264848299108224699988909537943988186757830086479420308934278185051292228031604452455267688618393709288010959356578641878639485130150135686997009850508107227055156357376171649489733249231178662492855149382992578634708543460836550022798828470496467348837379340106865625146582194392005517109689383399911975188127589765158521037447363483194467071911609417766274801789935033814579267058006060595699103756639936260289716596764785006386470676492824692151805915594554356813506941997877289958631363408509250697634035404697651854121072760322581719081656704959505580729172658974100946704217482959839430621686683566397819082531373169415300369815455162589274013562921881225213390837294192891929255270392693623400531003636338819204347596141877291082383516189648817967920093257800007919528340495637219991484480896143790449117103844565636807299022559104742669923659876961452205546275741018413895838111499233202658121827568340272931113817280831023834400817058614409282829224384914744450449332977150021444136386868582887782538665609679974161889944959566716866363972996759963081277814366135031682770483995986572608679261028775371131856042276590280223731560500476815593400638358072362569628221617767998116717569032285467459111279327751283010167952566842351111643175491116562244502570002432362407018260823583423290849954914226635927128768675980246971586281289868315056749549444364912616618562907190413483648483054874152827622701011497555673728078530817681051375742849980151246760222254832874517365542583817977030879526357603491952609178478312021195548750203611445256409809772829610359686920715387100200762298853222978371753099681712801594472609737859193062289061843351602394367465540887489355546348473743575415341254783331158608254710344840486415879308522697456134241447839065484625072483240903457857243730525196532636267598258051665097330381975891268614732914278407696044924928209792470585589232140264826498892989658005780512652644439900886749630946362846044230768951642489284604428580634659363647841583218447759877196403676783216812520907864541014334099699139258525989966611498289275104786644648599828656933116320161567647548209047724024268646886807183815417994883363140008058780234759698621901657948230382726376175557991440573636082349830697380270801424765317961126038253213262947574994676097599903304810238247815284193700208027489223645114309235995344769755077680597045359346820012899957862770219599351864743199585820195870778469073603603761801117192979275457810640903550679401898152625986139875546571710973919361686650266064675575784944920586071495434181672674188296763395773749549479863679630247587584657382697357914288571936287892582855202197053701578454739410202525094522333466880821778489455722756710963277711639466417923100464193935775329622025243810464773548036353278511664479000166680858926857175446868695737503867072994000435986820056685322919321740933024877206223569981826053360069432304997841999072878193715310593730102681492208807683784314604020227239351741056440592072591515056238481791176032052661873280494777345195627167027792500267007535490879378618095410907414574013004017572695577434369198142008696899678877826611813419551940590232652628806014976899459364670394604335158469106069933960355785976535535641825288619739747438843898555986513668208268213000564051453157828392364830251194975224856449805693831645915123821785570790877046012563542906981580706323933189428351724451343357524463029354124093383507932627112338582329924406116471077469255928079461796022648492519017093142381249225556667764463748623952122329388727159658402947723070868128140591987780851197496425397632028594271467320838003401154102340752922957641199460196234150864987672592865621034444831975264031600426864060428347809865304675391489560142647628421968135676181013126007929597461417244896538803699048046339272367472045042917385165647077656406636682658139463179043787467055010095475631849065810383419813281399391094360485688811283675338643169883971088395416925913477826862568077479069899894187923681775925694141919381727904170702982749383761431593324624802266834152831582480445045733717705657911110799714619772107973224216827951376031627438281826350905584082560771131295332699429511415501603347178849897827834020093067932766646461044774474566452827762679290942661433211740710870882676343015236876622725982061964615498272410771467482784803767992444915910621539664067270650629705901412791773288441263579849124416119132884713716715616097160414232863976887075531376270120703686146554023561911992560074343640751270684610005075821891204069310328238448660251966113982931397502994711047532974706971096692273989186839658762760614413015037372739877691821568155551668812782297871837868564716168777592614176248432748660590102633866886731493556495414728020473978634472796010130449951214901353720486090310463987244631781877754511279127631223777679795814233654383947820633330674700077685174911207445087141132366484882912798704633147794469166294410105388012523753766538182842457215365850049030509608792804922554540118712602716332042516725772451404162535662583959695467230005416956295339734640073950077016211524391071257419933155228450834509390625444192801751015586680757250234262428097621261872039658889533621660325510349106824655069302585743495659255752255481830131301958131942374916929817140595232249209800443887728099670555316516860327835007845512741059226909664777309747331874509339871000547944256786835787256171552733815277457764675749399704571959016060440806671710383776240860530149672025341803955394160670631301895726618387874960512079233936047165688987060767608516173562708115373614259199006775239032642374097310447834368582904541203920209517918885133881739868914694894199949769017993613894139664396162235024920569920164685235318543691732028974547118268267449512674929089466391364153259852906987309585989326187341283853512765061013951031542696158524656627122566660865719292669639906195594566356122873254419878899586817389859263469100758185767841145523790349066716147574648952634252044917994748454919408075808829506354580158242976625644575170824301544178237110361230837804038988276825406888450927254484321703485204555549443714560768299253240559060598619950895362860954564036264674525753897395164170875485083517745630759405724126394671537140086962062695777632580344022706579858096425363961403142181950858860366380496502975615743799692777029991061436488613688507582615454611807776920283268167711133582135038683418703974635067373784925818701996295201866555591067750807392619559945597156523302343492475204805270599181651376620606744501615457040013685241915095384939565552115866322913229697419590413004475449474555984514332233840173598453762188746542185658640833146051232358767999233122951566740174784159788942961103802722854717378811873696632679600525088707318622609709612943764132206284039770266328376253995188006113340954935002458812696885242165039424893971633609660943571968135478231379988318425431600162390312387583604806881940631334186730322280600026590810122216675655127123115600191751576788733754035011671790604881449133226605164162056965113218104851542066469905138874730691137669377418366795204327579429013342271972887275492249759181016354241536913784067735997736496246747265352476546958281670772004841140357053173545457203756925030554398838621388096293854150363542070158985947453314239693914716016164503205530752147220054045209912330548986005618974145844879353989509769063259479617666861979868355691173980814167177024660251918239932470093445373860443706646391897789390974034534835438568801976105563806698414134586146395744296632449680943800241522174533510298505036826905530654079975420821282642777451457251382551832222612897034980146647167044699679270527927583143753353141711812631838788762176477767447341728879238257946486035910749550817410845286473029895313061718256264172972038807108230563624633718147988104927784888646428447427901683906425760501948005989802637823056530107886971678478072261476398450427846406683026571798312180632250471200165695752648261893213651828150865146112789837570182371655498805924938148146253800774238278625521557007153104994584486601955801820446238960405610833948613277357578482197017390952787072734879759730051731183373441877103354173156662167462808547964932131370149239537970308798657734746210430104030725552649029372853698676642514870558874593690576262068340030047231209565420667899764353574841621659948112596581370169949624801178988397877561010061213429857329736609317497662076514260734672493488716813929651330786664731581454737821642380593557397330162995706647683532319369680711427586775190910258054070812835650748928383252559051199732191141383801215658359026820310808571727994126555807909993369694608426383244921040734041976681407997819361328476948371911572035819734087792446153403254269454811618236190155509111363671944771050367232849540828030455337274895164631113034970901200624107303650897218128541741989008230448764146669783453889506859303670287390972651143311309861756599664700442148102874676548537164017198408488924061477645884716125510462789507066906731547131834453541597221225250137163102778461366525963100044573304712105407709183480461872817189438388998620874563192795766765187031625129070961902787219698032390202724627650221938368291090946314353869175343558759755683766914315925245117986743132939009924154963241850539996653817034148345826836252916023424685816396943276907403737332265186838094971304579986613485725637290880512885172663679155913112434033795260776402673733774416057009613009459262075448754623760404831746968405264385630604703759886330025276389536387351688192661960570769668051849386977052686623293539044550639385875553887161148869948282240429281724443548313317298128428494148146860437358163540532489410642103472011397465927654499710861506972149658977550759580815081762738800867823287776364801755302387285829936005986541446007702101416147818937770919031389799291191004453721594945143762132207249019854552872268800381187325853614691828319492111382344447251262471017755786696839132766879060683718101679981978759219333900863640348559093541295859858225655103411877838508911959061365394540971869516392046718257918040358989265864277927377466996790514984503744417439305960451886379685246065720729780129437445962150284256798563039421784511591887547912278984252508956975094664244756470148128947379264796949121202253036486276251697412287050305614438252991524320317183715528257088423083464101064396481367834598530775336456872890184242609617414660851136625034873877438571918493769928608369806518871768893604244135389123527768303470093331645168150823987406017763182084540709621678284881436333095252137011006122677544804245123593968873286220749183694228672581351193802685455298977808499667319857578323183523960507791628756464565142202862586425164722350850657796854075729352828804081100864714961462202260658138984942658619498395168502179711560773880471863884521672976503425589886620074428351165623817560820470230098288608185532349107633360335460905194230549406105029436779528674341948847314843232248912182859332569136818580899666468378127261594334709607214762564054592433261561626473701657671678776454076475843509786224339415365458121880907777328749629782413477035957044396347413889889440070217727588517527510574393588938810462000704644605290893818218432655032540908229642369844564732739273697488691055329204989302356344414175273267886333509648382505177811525760207403603244922555219465006998398489328632148676523483325090483855194932035380987122897833261654591365518116598330061216781747859862994316451557469967202498981359220160346937937538488454566778768089748432143916091954342778508984932240822637806587607871881915160260914767427942604232598644383260029651399152669849840063125647026844820843571675202502760912853132863430888122297529923087854526665607651265342593999046294867272615452699710319551821403683027481168488749797740849169518238755174920522133447866869177439127857560350414312103898620727552477722196029238678501340992331056977833079125427586554708783866364183191873694234276173658220899419766100708523153018116590278339097056864547439693772424771816234934954284067175801143859120988166666102929708787913412736187553538781405752217369837426706775181133534519677016573355521881607753392528888903295737700641218337640744022926710826537236968314999301160369675511955940968160188147598224215072548863393375680070144776098084248916038597444421305179235978940659792291599581555284143022570936766621768070784505131159901320287438450374942777623655512142679737312177489419763062844693853366585349279018154181932582178984134039250615888979606906134282244899774166022315858337553635244743794324349908458594589647873292260944583946337449073619796292413986386114924354085412570184253984242007548255275985914107068549550096925674813600792918332330176740663087359773861129371945264558389407569738868466591369907137966119575462015144395881191611028537735488890504814652839135809290844932762762909341080271239371368259533870321606313642404549248744608905658335189611548648610766933049698268312985259731698003761035774399130501403346029002857867455621336350706402962875661935966221998393665650396568604320075023293424844697431788594617280230246861384216942079219331830856290746714682180559085714596672444095652397756897465098674095478528558136728044507714876478172589506805137680456874578260436033802823639470168999188189368102201465069283628190357855885670096600151704009945316583044043109172633604663791428539918430761823789630844471135255272868860003821795412440377138923511292901251168877042547845047463004717625627628464009311358773490246741623663944013043029671245142040174645778249805242512321941613212975457902147676941082200308786980777550551535186635417147924944512158290894736242585422866572313898240412119634758971257499019293084292189701506023355020154938709754252817869780145745534514375783852367460984406303507902121867776658206769553678250711165666217264554885216013113590947138949417055561675680327935779594803202795047700946110679114519889194094012961732402316997436129297518742145885697041092919223160823683028081473351996861954927047720082413406452136001562501705586487119310682036388799052036487641516198250674892382598777088560682492765141327063493676523992081303879955510187551643639949541273260759469626045123280236925497879158521340615458351953304537173031872943046094674513588864312868248777090910600948751556132824990743257075430944472555792026183279536496581135231046204154018236383758095846641061126418417873987842697324476193960540185482664464060036341462609192746009479157856106836887805032599850699617465290627119565020460178970882516836830599039807474636785801259990178575859280947459193699734493561886602792075640444255594920225049532939222952618648508863855223004510042843660151315353090840739497439270464758218344820209036408278448620054576851727590693584473487075529921090375273682868682350432023302779426852709374620686462875817874742740977492486183735254208171348000538371787458087085104310620774086409324448331203362432194748524260538792064910671786105663035067137827658985592317527294474589637007996640291131099157420316834289294625231588306518701780760597632442618891543372038590381730916818816775306570814578183574660330933966575193927364421256506840290390701103082992850668664576325478442929171820533940490572237261232112669510154681870165021984483478637564498795043436105835505368942698674475336839785951068939365182599475672869858830401134069025482065709813414482194201255378803786793241895734242533371220249149146231254308052042385520253981242742437037547831470081742984588737757830822258926534501860036379670186241523042003958446180007047942810564809690060124592973793946117015855436286455348628118717401593925636952589640062261282193971153815302550831292803760797459572133540978901117152693195065139094956469403729555100658700144575819478001150996970928393719887961244199379139683145756552447560991741693373161565617519356485414831684337431456484013194181586218354340798531061519224051471915928544631881263142401812182284690691238332337395926049534161166358697905872065399144570227044820770006849366312106537055924731823855369995423143081223534524369277264806970273191794042600339550103847415397939464777566871627768283199646029415911118993246945929374121569254552310170876689259484223418866352905604687564574039464244400555557196247201511910532216607806182617224553379050400148803413835455483540581793332996951188369171688068850707402294549731260351005260131219713333587167491197587240762249264071698378624239774368639419440119927413724283917128209974192853223749068607733742814568637268035577148183899636321748922223092391032565985987482920677342333996359976813193351902748672229776639337052010724114718488157262635470330500856722135624937143313714782584386366008825137663012452952973373814666504881953359693031664777749096692901361346520432196843387360314503033358497362923872783655575086227777992704400000168585547613384582674539513343422186131103902595627994108562695720300190864389975566865283253120134726153258510612575129454062577807114715150246721801352534152109891136207064994521389908439104561209272152380242760494531313424232867511503960757791220845677617780181014549095737289814860694683875347000941472363531196735468942031587254340217264377371518846224818987785400043519794269508367971919707744034292047249786606447038074785214414300879637073139875504413624333576220181436980282579043953825272333683126688837879072927179316640421086330952226834664953800139831105472995866710047895929975602841090914275874517462591959961330300604972887114551971383473760186277962591875610512823886202359733471050364871094659120094322349811743684772299400582244507906703864671233981824864957761015724074947786884757597767013009565025618989037273259735036183875530159222563933603790607036840831742989158894122972305251984051579717040130461976933750797652068080503094167360835793013252319830711814022580773228646446684239468879812003930492667609340557173841007623177376994474769429982662812130267268570027244681455009148718219412496042047319143012453949393373600729575785123916576399243026533078488808680532107464463592263530630912079938912267891536637911202435260860390237201263404874712033221460370395933524020563714280836824106676417304268716224542819893358000543775772011459426448719840766536911663172858361428089027609218091015166804874771447913696178428518139725811620464388014861076263079994194393994120821971225730678955846476807311190413418520694614023760886503739148010709070972373941959859786300493450496529206294186637375415900989705343340969648722270660117670660905466649033928647692179396477548150820687961835777960619209270114522378397706191212782386658506549945361206348306575636441054381235132410977890978393052085268196671123592206920596635800905028089877768113897998047282414484881953390344632828367803537588475464328807899350036457416629767639625139779153447043838348853824221874460627048990932081595486441504335189059376241689500784809094003206337833099765166598401646777214590652240747751188429979415870109226258017069477445244141080706863995685745639329342313426843901735939990403591383941824631232764014694923407267575603069033775110171331448506169816959865310151010469360514771894573862009957705017516325309010780354591749615336617789600417479487033660485927776957998289653357542661834267078098828557928678288996093899727737819441665275963335491407056545418739619480973536108593734495159137500321198088206008925688458809431553220941615243892483877143336708760595000877804419163839947735565523162475391216027297977032017287262791226151741932622404348449582910932102762462116515660205002080994157768366175505719717825557531662633496950753221841944727132438683661498056128447740285276902576601888377806552354237872708797178566246209967512798932780176228896483163473785769905210335909140113031236048693452556018756782230205450961465978756147130246391774667545640721036153182324922620904297048962595667285278411392989313627433465112986340726512642778293257232309671652822762544208792519220715983598564476369637937790648175583839320889336563371062780778955757240522991693812373013352999783364813985911007421897866187717162882446479438795730934663304889359514475707759219398248651588809257332223197981257351819067069583558901144385891968477092814939504565086931014452624001201587661063312704089279229638058130580399488839623075922681208419109164132581049319006149104445000309906391435008125716159660947674799830394633288973740251605799310731332145778568164892228234774156687245493399777286412609379587783939940501046800510631648783063703034471707264132993490424490834048854179304614778588212767171401452280578011880723041140793353114138026506890272053964894640370212098462974566613423536810946624827468303975642022870107130087470646687748826588575741339357915514302006765339658497292214361351576660184905971118720719377664608094273252234349678359218518367952493427340126399130898843875569465187517417828415404234405911021034405819719067623592266718434260810345604619221222977867344054137783271774243289188408042875944685991631092276033913849087025047930365252926566136412423529635762845142617129157280446844886116841543984882219534217474008164610310664277209247740792764805093391363554661186740489502213395775776296960317443443003787026609749256436224461257908990045440988380390127620611489256007321088280026313613104652316877644765415948733415591844167106828624200267601707036615018711406318133869576132568609024817161267909111140967220418003644781688679911967460672655303783066165697155780428246879470739931665515830485036089855815143235669353914301109788679951171064976168467942429971699040553375729547488203900450467711476146347968175155248651449003954941545184590410041904320719105777387558484324268499431291368676169181533737835178483478224509703915115173680478889139284463413714729877938001619792737739397353087369077033697200536885224187291525997254615020396647226788197520850519850435099715010289829937561498697891558896196017069109003603653216426923625054472615707961858725999577346080239812987581418238519442537245567158463172733935363231442934373305978774888930943516751665350047717906534256821096652155448445165178295314375958718845646563136104830980920341329444501685592275232582557907734564803311705487571579408838617939911188671659643166306862218416334596620545441145129203678892897090112758684499985893441453012802124436620184248428130747271755596682107365242080748324392088751208987668238700510561356264736464541901783133708942664630549436725525448047530815340780207144118372243432044194356177319426823615191408157533376694983937388581894386613718691978705494026745277491251011710439516494038196731031210866378411792471671149232676236200063354093072449344680493866785789386676409313651510198081235855259789645641172836871143191387340649834173026075032204773059502262320458449673477722118626548523230163815673314989258550610666321380981142215035187063959317043317603761969242493424247616215451389550371045885670396888128535632557381010768895888948351483224852361221421311974370084126594264995436387585273178863439024727509992163267144242021875059766015075395246515310986610656748424681830853545858961281318171496835616213946841868767187911459179271206004229939445040209189188315337365285575726760535223687598268129174625849203403060998521750534674701343268447974776038309981506172324240256756128653969888255569099181927887840540665760880038074369967047472346750352844801310204848709404215679969208283856680402635909328365488521474557438917662668442325177412381613438305126314772130567279269331239684349625170108829024360541952266462314831996208567432944532556210435276643920172244037799205254033923219109469661953271133803942875522953545516306175135755535518284851778016399854760427588922527946893582550678653191436164605816666303105568932539059271927719572429822309183740717349626211288105699596969027061147808456344077886902150878474632172433149315331902659231103517258032406061507743104255983166793199173811001733221670661622900845570993711190146490421397949621181892170266697852700013526066673518002111644586341075535079863366656866856787742324852683823178495484268750665565917083358295237304138346297984881195088951438267774538752770184181628917494502387599848903779639573464300179822078659421973460647742058067626680989919954835701518341736861085549883639632389316933374104970038453997029068064520555785222785704108817857056871046198616581509845885169339250274535185404122653413887251926835568658954748017235117067802996760806868664157676285251536252860535942861574275916076265180297608302929992019617141048773222891385411053632959245450399320096925181833804610969532731167921039138229916270213043273317598333066151768721861320806751003660251133484749995838160529748374222270116484788735356813931422980611741977335762614512793300887237353253378988228639456333657293067331928289769170441553858161258998457495759811965036581336851290146377202778536930313456291287109149867939838790882220812004362102506539682372908052949364647566613365752074082883320381879457188944630148180125467231903393253157681640020623815413726447749830163006497068070015043471767322047585072614822164545652110065709773076620765202597699002605421726748766177165663516825101304923785156263359956790194683475013485937643793043096301037514827862872608358375329221376969825750788419471188953068279366881876116616853367423146838686306012512344672663566681049614316437240674762143676389287204285124086754450097791148942306122840629036007822857369956456956226008239895918443657237664765391437196326613131822999008057006073847887764955452005116485710577959604856066875981938314650446066756403166691201704000039626257035391436032301003319599384492443544929667715005167240981508499634053227111238436769419512505114982972533312502422228589173849862169851268442656186005016743715116409653654019374896885268183550201604215146918915891761377411773614339915430680272678703251133803166090830808501198138914765337852059249390802595211580465423828368519162819221913552919812070030835348864740824807560183870635997848587428400504832165301499503105793803902879741799219910682705642911675064671613412290884914526832523845527057675921909273721625026561241033872771797421498996785637940726809325015310193571042774373966187158205008319858176084437794470448360948760946263576733214135720113590618911926532271108302129804368859373528863645917506160283533921951823505532712608275016790779693854861401423227110942996241174889798154848134392373944462442003814219750686392697197596042146301342923590038396716438882375852234394721160115101308250960569880689677921970370983820527585376678960086226358032721621333437258557734984656598265815926212568478600283916701983121639463534439338217791709540698215619680088400423920452868323907562474491483952161577708381137577970843013249184122122933307725892017599278706136673803727290423910889417173729618276080480658232292470370574247011666075552003229761744576360860996545766979701322137468937673923900490330483706164495335565465696387449414301741753758278261854379968057936649279021815107394947357407924810190642363994123668933072877006337272490614606241184867191835165212609329079923148837375481602546878108923414027806488380581368304167032340031782133153164916598231199838861468843903986280960504144073532860645019207527680481699258702248169664196536611819374590171603637382985098952292139827778187867637465498030085756675711630639439688507788149301478724365266115198002729927532612168382135985585156313522034298265867399754417512288562875132476142756547432511054443376095740369371226545715499369648265105346883732158682468305024460414507196122790815955309684554520900503905035459800756395874254221233769682397800318494260200427123244620817740987441181409009406854026544812080337508752649276653155062148977972220799926104300714133390775959092843386271717899923931215158590346916241021020529845823190343986833196477972269592484708198005703461962999934172874092645899422609425102778729322330782184096224649868068276374838507552979488070001896843175854440885440543372032395838427169641489910246377548053214364722921529416341306411212573251357932380196850760066224136911333372939663528757855276681159839556399125315143188043823644899696902398277485265952337396232444226875272556664978952996648438881320402184178976822134762682770370534165961908203653096861493913284726267422011165953190107011281710141245242408039520509223990069602269620403683127334767156267756144103398829708611872700025538635891743000223229897506684291539833083523241919772319065853986473636370637861824034866139409207143700031063398324210738696999588613110197243275792852640077810225695978495119581098588763749082656246823230730246492132675447585549744798862801608055912287925868455794239010162328044715992639467898284321331032499709057113005961511115348700293237672910828298569490886949263225971519945684027420786889086488228652243176385756675918066294109097385818070620329051559130867249563369646329244738143018781215197579013552793742296602863001194583596906396155181471927008445953418025304933354555486059872404558566926649943128665102096709658984625831966238312422401147441747645209680496808630170785979950335410604502729143061217737468811644581622980831537506322422272150720730818315860210485895921178641793237034811489610037668760777944922025115180119792761777636914389245649248922651299849448617976575988252031940647408242023237435218821464618209185460670944733427322397762545445114553441543035023171269238644452306314927693754526439427980751413488243007642667735443944840837222262356520391549895085235424594702128681276548006914961953508914201102397899552397819947774828208176498721993428044774296797913063931743790117238039715364430235224496873222013418215810521890166569827799129162707259852066525428523867376854044280178822316023953466066039080037637935129469669875436367111119953379404334894499954327054915602504726778052931297823232743974561779931439829538453969492986792619759996877579144472077332657052948272250329390675073146673466164451504855165779424935477384109943509114406427931739939975006820749136078663866854398860812573657087475304947492691475411429129390882349509811042826353957883334099491965591130057736761096538614029719762045883129975016533023139036882694747446041998352267110134802542314658818919049284658962793190967960134889186126889787560140328162537741327023343870382762231427082908921606660896171534364884573029247905341904585852963041342379628908653625007080383634350282721910222962492978155142167041089062726364081897448390798340154537706664900390730985174445731916835055331221664414224266003800771344544958410091939585509346206924388552550219625191582756073708710730983157188906197501864540227577669422167482953205095334263028443178545924266568608496839963483531008016419367510516214170999206779333730638384285461418105673348615419243172268028540411870795212103468640576174670767250673307399531007518172894365991598145165570881915148837136393596528039800053755188234042234748165058024235982447797325023440803822124224722572287030860510804673690247648600974002156301930047858005050360989749906931477347496971060964626801846886705512212405586087256208736154735806011600009889155564230886157676798956001375272410706186756217754249247916764704920305426947378851820063392478209194795295030421916454222274915006822094011185628042921070575011926016634160221000490729894304467730792679181177580204598439325467024681176133526659848926653446605885299736064052479756583805354314783243596582363793552806946021976701954670127708855661251926475446355410119890827961549958517014451778208099948240730912198334719587792711875720600042776761676903232254363795013102564713189964013536087133490572855980326428492016841208985936901551217743118864707434999146015070595301783491960547961223238608367120264902116816959301195739430936952718938645166953733926015609821646914444113514530049917254361301417218008730832668653723810069427747547964892675273657891193988358379667638550859776160081084899577059494070185361181927277435072593456322188542191674594657093866941427442153166428243608750442870698216350735963929998753291125673175683001698332808416408825830299103397215283130656735453364774639710921447881606053052895120169856107155600889796324133862541437146767432801003825560324501146359777190126244228389424915904004196496538549979685734529642419869301628530937301468480898715320532968635976791654142047661545679314094350833660556748546719001113803988518129873130153421035144959699520463635647789602495818726367104593346333996618014915310445414067625034707846754673243736677208405443245136006571089941882141478897763352741907556760379016680614119157919767138766899052340435855872898953468011194632671540747476369767986147926203188592696757164817589749589172602303980853166122197165509500935932644932592845254325981053590263574157169554760069561530670132504868535861203536943283877820777337699129532343561981883173882455543305256575169227727382926729806822562810082052182639434510380592341498347643277229409779023819385299737558286735449903805036303957407257379842584580604484329037578128149163663776101618054249069515624509355877766745277768791980742060970373766805283227669276276484135152956224273490773382342593026380232032963268756604636405546304320735862419835046226798427766950972071971992616603870492526696176745916094576260018912641284728883133674761372721304474875192974417791124945276771863539382127875027474822895814084957288098199618397912490791592407211412265756619598499823249888553524248483471094679849612450779537326244163813552875597851541540723912128191893907870532088424074248544602462567328044678272457678217137448389045912975465622994195122477240081406088051493479146476170823235320608735095213526491065341520722127476235453770214974281214420236537070717618002824147418984311364369986792661064978362410386515912675422298225523378618764028892510995699823008370040358171700451245387372662628928696660485445474180438772214794892689688065000680468765752535593741570614662800330221305073571694655407068201736040359182251105528297336447250187144343091807053305430695538307707139608353974469547106794886972703815604987864413548950995055615253234447404858514733992886638258208712895030179364871180473273987238678109917487059380729150460362032199979019024256734100890833715957017141472079667977808190137703523767627638908694287179203356977194973996725863284485659725807862647490914395874314525843948836270006738607421796864414869668211323348552178568812929484457441689707570465878619565735961090395747743354074012341056705899509244014747803438312948298534155162997652160682741657999013916967933109203874892867016804147361271801203350161036800955253394021529125145196713661048015863207622546998640448252229440945634507198223316498228678376018783163133412781008819458555744699474040343280415521363889964212227622475072284008381460601880712716335750478263469297944908992901064016901624359553094554834217755841699965510659212818951383142882528476073880627606829312389992752414148510174010327248746378518267534131893558934199912514959473456250478100600060467480112666282516320744232929150942644073629785423959645450856824500262130642352384993407741739031298881989346561188895617168193820642230582926909533442818098451522857561612140690164513505974091121227718920069067978315241382002574358826687560977222096566166857571028505409731096921878547772477375807581557083190099136498743212340740563719800580327741221431056907612680710316245829133683012238207304419513902036315861673412426300349042433709675402136659868067520508124558653054038167001832125947407372489872770670945995003209645072603753286076746180667665653387587359553997452472444584355077159171639148163062344102756684726530942842619271003768238862616770993390122832962402922617907289798203570947177901166228733261531293564703138804031595570529123100415513832453604219227242184386771799393797678755532361138630000750448945825709134707996336913481823477685774468997284219263379905848607277541793685115839083074496000293606403572264864447334976086905561021583227934400557648721429160042206087097016815883889641866067532173900957038690154082075957336082866777796681320060184302718749361412179405733654276713577600656127385376040031327978474545227832378611513200891086326844025682819413650243780052589151651494335296965591780597492144872496725165955332667792823497353164421255411694878632097350963274125473224321969580056501484733543206420430674257837610537862870119524167170755995554692833415266582219437956664407681852702041873428428407904114312469830902112358529420498629351649747729887453743946776666110302898544470156544859242759934912420811868324434970804828920350827930308441481939082701876746882009698996044765922966926994350375219478106731092086723771606472782028709892953633767123422849094586837602751894637434591597714778866357533264079020436504706442337939045422004423814361307174337934057488694654530190965267426891501936541818570598947692516794420359260418638501193426809533122875115364175449512279413275321349806924758127636969838596725973418826993594469001761877445218363124452127384030538152178652324337119384937459914501931219747088246155913773174201891884865203183943688297105642420282103508325849330767955334866546415356761648087907607378341500100062717270986726638910039698598943404719721475886571190300255697943704416010591679123329245370709444091606042409903661833662608373398453945769988816266796391656198881377682616475976120329391043897693513567082998185624458214890305576869449179538948811504159869516231371906068659169721192785698735241515650783571032127369772758463373556593904175475718931711075943580171253845299053783960179575982767898879501432671727190502471833009456760568382599902553801325398305085342334414538119668155725892422048148013119314452912133256637556951428586237665299117510330668590667616907394819503563818360856475422653973167892232718236274842055303145366018087041244168142717379236679826488280439273300031159237716484498719175935070822135286370295828368501330939450191005156684898758088393056643750793989183656547067042989919589268357689400505938947535708970132384134137325990521662939192712911492985996904361676227035880814979689664901069316860969209894927703979153970643206200006345160453364926476937771363290673699795032649889700551511074925747657508724107318259767133988829044583347918226390091510470779986665186093400883246971521865565418759820267154027173171913914873419564508480951029679491930301130648255857722486888761804793556022262390049019132315018457440442525187978302325872535975975870137136828364214144717195239383161096054327692417535398906555943967699411632336571743547015178021097830058264105326279895137810175504614261612305168609352799073942536957629600875142537376797591783112145304253474514907808740780683150760741139781520703073188774478753411291264441465461399356248036888455698051585735965260405504033750234899257737876030350344242137413805132993056373809492247620420305752527890361461073985867082541567553543003153517919189003662106046973778876513133594534245019501300287982013450527909927811612798914572558188633369161032891533182975139397684227453694785525185953820730580660358653898442208438324248440901978473015882572638689332589237198342482156279912994372824983580528046448920384516378260048524357378389643629187498849692459632193580591395469432033910489857172491830884122362250356720059397763131745816766611885347302727068030078008959023339395523596235379707749439075013986082771057114170601324870598516580945058224487798349754682932238618544090919480310976291175955369136479637585856079297144720121721502424480021025037361288325625646911746757473392808342347651964846657888156485089319720051114810390220901844488527666971060325416511913770475591365499892760914333978925353965788225215079441150897497651300088695083996433391676075358175150387005537763238309575801682510209707883603427992587853437752650728797238033462452368781056622696896633505892749820931652288872531262310976131349422013554401239423952763406039914559964108816887862080706275480791689481713994642892178127027230111161884085735431046917813837596786279846066011256076308479441772541550680724012989143017500940211094117303141303920619551092101068852765235848716715317155989194970742520166442520837392018118895347465602476504574626304672741422769748271089424243880131777314383094189606787570052366064087772505802752622565394017869302578627670730859269904090170552629599836751382910362081143949008879127365095414094057513610168224180390597212543099163510094233589882025812722266672508178036722296473248283767215924728961888470156751612053778410853911797734519243554918457747851430646795610071103946944596182508937614621077580338381608746066833637366830996911626867002585454331594988247632118626692133193118012799110631065403930063656005828329788421342241105140617464531240612240438402331555306272504424136011167190230120813159219429088759891924283462877898348008229668543265806525079799716743371303965515193432413004206426802515603561446857974698378890137428820522101071683758672068968833151240970916106487305511678400501820793631243744135748636449205271528472095521006081503461865256015144975998615395236095735105899412120953970060952816092089243980742423166323256084790821013959828088873407070051228877135268396714868626957892937482369039697254002219439852046230989919878832650235407913174359950971520139345849811801983211875241661303477072578328665663201480639105937683803529620239487624457665560757750151359632037864685489273238056757645741375630407241534856617736548583715596523041487200986216410555975665002111923584612465480372884873153175057550115467063598592093218723977688937981525571650417021599937477566868083827195698607683302636140383700489311764857478022981240597161643226481200717414167761099226433179829598639427649726126130542898974703798492481060859151438321809197157219265685359924242810009781958643276765528153534801359581547613918732884775542220896712486887217511735164364930884535436829418402114827043498504327835663963116984713752288424837305215903780608771647216326111864898368170779956312479539497123081190689398714916311134733675280014930795220139225437576386927514263824806606704091345176096131168118751091795963253118425344545036240297133335616460120415178624132633503004231501542337283131214417807913808150167804242659825493785220679374084639257602752297624686928189949991901017527223240664213941360361200952731467259322490897425447280456219693097915963712923497339205434467576149533529863522359584968529275285604101419470558542986413758167390740542765742462669332779272953295900832946060024768272685006889479503050902936395078938572137000488192161981030770701617749266650833086641434571338834766346579673278939096216835515037947222545864250781231912544491331815816294468296619786048955953002538471785704984126635141866186598669992095340984889348857756987110956250331548993369192078372220123911327130139747377822811614397584125627446638355966248055101657653702161854206600649569847082147322564133200674986930621695101804825861505376053226094799103053022171221099262071983527404537858946965863557315222276501422192882890718702958437591165824542800804770311722752070499583114669090794516012559631841594327082545166387852826444637309653818248173863725794333761829535905777101872683799759321479083919952323280177932160801327027437250186978628076880359258592605583944109701101652100856148132333241852871826776806899894748503593554527611484947165908943444871797636155707325254907006678235923114512356868800089979191253929992517795484011590858097731362098544429316202416591768978199757118599208357941592745842186262079594816560290872030721243784387908691776005230728389326326374273626673547659706739952811045663726912489275921206766870668311474076811520589292173334086898370347923355512904441412862340630750437567305467260542823710719048317339952521333454295468238695134318438351394939937776538052308268806740645389768286101123742862659363039917407803395721915542497196314930946373022454448913918096470000936594506924074569780163904467178626999091943284152620265267061176923518338777246631849443406773899866678501541690253610580365621384505425154214211261870251565961470758475296192275704144939017580489923853395078890341773918913018312375683860169773163862799818439146935486690594466682603281358349638496414644816914112415351154474789694723769873095378001385658844890904877759285358723078288303508000303049644210236206565239242552127357508335973135246673769155443274801594240963051431829960218298938694515104123316030672350128391736122657120481032097173281272890056508944058204728027980703352463579977221065828247156399382918292424492746633718804798705866665652367365377499339523638842432453887893373936120537371289447100948430574121663545844090294926516080916575963458580617271739375719164326929286972844028489414547421289833093651192827188897585011443321302265793622528592659549705543383995456052091406461631939652566501294077155808507085740006383262368283678610697009780235341321622356671723614250751942393125525359772031319072918050928231672391338848824486151402545883603058169314405135366821086791262472764287024466893708632603207271439339697786872170416616123099228766067026435449318134267517329581753086549125612249414025189964135603925925928253005358973383710028897211401339913585067776240375058660288858534981392205591023426395444679792700668366774012863632314851422085377601745627397760141632613384392024333450655247323211018415459975124090255161615768465761661161452567731157457333253251241131218830298632837027478522092920919146353070512960167482167553200051812125269498947022484486588150792569626961285026116517925867391432685489164839154944835244164984945110687773241641147528554084071858037410391266202335034659247944938787699137000519333074545426377558146431695237142021745505623305066265895308274693597486292253570391772156799668870580618995107569988652129115475137825960471710496773196926122436322591767122488032180260900577465166618705650189741724729432522498575116559392547268568846448293981331703068307573964232113516727265128436494126687938042751561895426839350039990692774359645680088044324696135025717341222725585900042385898959079798534386291330399062283390279310950298586775798894850373048447061024382814471235646535315555386629626335527734092295397069845892054231623954066001864937784126745012167793379495983587535040715234370549841513210518924005591438697536306258905533664941760889161297192111530985200508715187899284930413816886564717065110509176162841827434191990594492748530057394290598969788476302134669562306507059930543721594059301598776577438262041885740851710979757331345706731604889627707123451249526630249759169589934266436938178061225060207601215953363818597270274563808833373460595076908069489818354196229801887501674421826939453413755134690890593117227743163862520943697282431077319008583150638755369438380571469662531638291575497941748665597846289500502332778580320355905996419105908045563591530899426440348379545042307276143094275785710663649973233976302825632885742347469245107016531957019616596882649585064294905427491903725671536694256957309468480470427024835684975263087958166227724141225510555162381095933407002836927315616341637105718982380222366803177019967059536195092953128296828224648032837813573293156593105972391286811465952353442310492338352863810184069190999639776084829733902645990170067169134975246801573805452211303718800164090317186177668818082014879683983741420524864796155334590409987928669185336972827126797322505478268105645334734946496688481700515761962658072570949355109932658735715927366891256487597076769815125676412145099019590232333997570419256389086018471801534485892579078596867940005683644050821341631102001747853865166155294078594483713989059933845495245579456071264389973539782777160596656144775380036956779288800575001633333736826116553865037159274821847737048950197708972374698603489285475135779137611336125936542922104157958309727007080502975566920757611999424581114000076115808822105478027638549230153928955928629563193445805089050125852280500179995746481910311442086399976067972800248571228229014768208504087602153226988403686187371488203384519370008587014379081960399938914183142958258721256755157250120365903146325724887301053716657319844623891958345366029433817184897613931474177460603044403556533601888000325127937117041215782382826361970644839641156430340278038685427488475887495492935157898368103133768240537991926463082934276952976223568315823052014396837798882235466584595882677093092214004408141910264377592873257455288852512924202638144234472386028673122099004291898101863806320327662425630615471571740956491699669664064401696731109648711090707187953211408325012062031833216516595460315663873466996440844950235365174623787437821119674163451946119554704353728821391153094181664176601265660721209070509342238116384334923854608452913379170372443565060972314160061779469736360052661285847077000747360025703685202292219187188437244378495147621651713582546593037167274265968349546323471692199060046557244887822253747880220856498826474300898752725616426436697310956507102665933880256097053973133085473547076553678926291763397494186942748518640926005497922269370710878725406440048419612988315236252117641546227009907842322800202130794388618160266839098115597057548038408135434409665919062712868459075994394160286315443911699059453924264756298841820045146221002360069136504530229319382418860662177371824269890362362324319005280278926236606014690582106745609306078709219644475520219876816116844710986494648567737056474060078713463199406055199187580591177009815221830569456685277186006367854414420851737918278048730383086498564991332803890574681601072972119324237764916964529448471809287967699595075957609778693927012397358606771091587311058066788169998379315566611004133977290845737365015104774602355927296833296611936907000888522491557566331015433042939183068079671466551722112427733026790591250558561676128270264500124522050919197547075263655989827502923123078014298514716622581144820432145357995032270907353891392839394893634291293790470234713209047804488002829728167947293656799880702470763070366298173901986012033375513969302026742773482032821999091420213716646429605738300400806059054641510076118430274103980672612991705643127179945060619621108951511352034166080602229913117292883485511375715175543088663518204547902081117404185424753049328462364914753138374011294789577089667350790701807981401837360793375489336047489414986194739663801822433862906550055428701389100858427238125947488671029992058735806906006631575238181406497091863055720122018719067366318439895150648423069565681775951317245289662091776835882025693379944755348539251200669953802338381449032826961104748872666417210857221113507567535696921888830120658905426706925602356392457530709671066378310163206422265947980157388075110496164476221683255933963600528758301041370131417092337717122201425070491067857513046501837988363747258806277097104142096015526912348562946157607969672213669811170989864412282447667683720523672730533071770866504587648746909142609151735979343041810077621855349978333291103706875024794938044785081819420373471407228855178496823699213845488373368831182254077109718340118769571699545638518310637935955828283827532611198009451087000978969045662620786255596131812101344732146330531079053673985556503643945987730872217491952456748426231032084102098769167133695695176438924748266752189114801231758905612611659744388497846929422071591316167265680173557838683947078028439563778482677882124443321332452171943555194599956723158893829816902680110102692267415608013768975808520629014999879496257421552587119441021663343677049988052597941187735266644517583809900159108933147836957657533505495288478673668355263893386783644537099604778710597203935580148029868493480552957676356054532351039400486942740828270246411921558549978338554137388750301452724644598941628998453930601185803327071945411244010946732855558692774454553143240356046868184260615730105277972163192554904612155184601050316234474989106604211864041638033369054552066673937016252753633570990679293408065016195888503898335404624905760431851585164250763486012226321580080715737277952137301091120880257509785890773797206240290303045496801375240793183006379539852574885936815300729780164792289169164525597053460406742912732061071085594141137436885521215053955836989917527194925413350569783966056709336784383084912406234008142717773933554043039381909680789651639679266248651822828445150335133710638340841805996478698063452665162218860523187343217472968501140145760354795029326261069264867204033693362243219911405559216841006932266467390707848726331862071819277099504664615501683677800622013884614327495322430576288225701420829277975637907361320228854273781336874475762259088564018364880484147172473361163910941819587118734655962294601184107246434364283147574962637402360580107031883825343772778112497566218158320481794224776866348578702888946743777071137839183445078550676040730341413136442622060425428307053440551854110142135726920924354850066619080744128238431281840946408782817370428309081426866122398432014719942513791644473652128172496677470022193468521626339005858463196555389525339564857498394119516922165973487127058651981151050931357196452948491227535949230098546322361619012939876587859316003630026560485418403916894622689880348813172941221261685807870267518823426444016726065854353038039198335438386712967928750346751555686027479851966574622137383262361383374512622079475595030702545234117368902161415931170271408681376456556492134074287120515932153665378730933636784759104176915577561343737592747552986723343758411248044197801250573742173578686487079785892533452017011125049980297779261413874693855885477981547598028597439822262483324535250293736365793827263900307245476887405348242079391932333595884818128884438191452771031400345472246974435272788335034919142237564374770892680472032984588281677778879771981996446565065461347855428887530267179683223430594867167625818722042276158864126906449665783719124309901610600691566976347476713858342708831255574214621557685020837278685129419713311036450764908568927922925627672974715501580881349225968644067385637762223852494288176705997420047527187536676784659330933717954121164439321773447377147141924432650665408953521932590679570635766543128214913920958681369956277876386025618345421415129030127853379698902213028717304385084087955999069993030998792536100372070760240979033890822401512401962107002454096805628761435667387756928982340771798424806649195689125332795374601041323796266156700540663031096142579341731666824606767246500611641263744236723633484524556333026082887568375216663485947645536882055013789650226117596872051462163562842411374955907067601406063494260782506373438509651698470035690553674758454995159397159666881213248433751884253698664810956618276367694685883737557723269011419134413923154134188216871661793351544203904326637903659589446588839479223943352375354678433551134595252217079565906832788634916447646213761099213984542002318031100560695078990593128627478644266535738993867159808647513468126812930241801281573662007047320298292653352051042128157061117361456498074101693158965369673691794070915482781307458158185331511239561253483583639019568411955236489467219098361980361431890332118031478652220829226849654646739220756556528914792984370345005368840745468771978567695115735299917417516304841561288928291662685738629611955842623149528980610365419107659583583730517360096151852341288955134076893146357958474324788237157431621286188664344095413933573669023815961296735599367580803655061062566855162900330339733004089311306914664534166596306715575956637086161157708638934290578411437212652078000563287225687788757436494572829422605025522452937301897565191644693434771410849748072516281718919632557695148456793192850656804076055161082872684063105108659087429427798200505350803753871047325186308500142475215935507996616524157085314855269569373899227738642748854952823965599203923194959261860845713296785614870348001990252040680542620503843795550681452427347005879379753292859617822173815255219936591117983035283890137115814010827068986926628820505651170673927054951132893336630578985494754352122429942093694139634626894203072625326150455007790697798918321656387245353032165759156757395312185381166716209235343977902361388865473241351094476350422802037031237841172200486868405244715271448418152574059989874701860893268679924081283174077424572254183282719594225140706594879965410243952842434925610422794543411996265477008744807068759275758740457218931321754800662920579352522772649005486771193067304206823655801643762363209216444255498843300494945939326658191037938368952871688828267288608098587147381991924839134965353416564849996103345716036980818130133070260815345890228613106556444441254638066932724031549153110248414375252892139724166727229420310720676161151231409848592449373789698492986088195394630080851749100539519272552809732211364021869627410005036253783660938407893499373804608407993071597503613193506501298458606390680753509788780493523732583088641226615347539617060001651597985415146159114696481240754805163611286477684578891780548478156133176431224485702690730168959877582960767489632861581779762310798569423455524225690073827335920598487218719347054467084474922224876243392534787760660831595598750420113006386523458563553903041116790534711868660910605106601572271703847225773517566071935258747334178438403085837555034471049663477644880576297471804398740830725007056139883902722155061205421175296718924012050617241175961532916401274514351188166798489438897522602081019032864047277071101344265526850256652463730773109266857677780492395462993919567994314084700494404420219771530379277848008148205233765737353826717658710554389217598853545783332980513165850911388047405820752815152468262546219107359530440041492516315581380218871340851313169947046397943726383473520088767167665738225910071509684367225279407583110557766427997682252759064020165061692849081399689641722506013171012673668145457343016584440027255011842754486906212544685251553176338499605920595855131385249786823001291515398027260371827643065758422748298656719750657957539956972386941797128543388557518328327509498379771186983771679711205247258567336328857120110978073625522899401165180804762747205303237789293172105466385737754509079689750280134426655957204568088843254997809327675689271709575821459881937971883035942921313717280886271555787990165760912065815389104655534695432527211997033030491310767272135549107507305244175497604133867509691077379853684063361552192391103197253916149760457754165150123443366005528567021451212800379657493059752476652916382575232606963144903406193035601903624021308938795746322298676012485122708082880191283523769139552919194703606768291763078919516924530056548675482228687750679987157433707143285560568355316734538653690442526853153576686212990666602468371240773779563692100420663140083531831518921006381204430311244755238710180063061525972283772855313392626441233710217781155473504532749620764112987518269968160919653096405349974216410058242229784260525837261877109101917704854133992857381700469083544961377589879766852838036830712069557708017891054388067385728087101858257609812011498072083826194127729236657592507399375192643088118838488288542610289643970781548218931340032439422670786986070433856243873370316226629106999154880341091250436138877688532420534565672207196378748021986744270859189549424047076048656143913468915929093815903200486256214078934902818349381054907238698204508264005889948545036836566727732777662759096242138254212270664548293906219243486797617725736089595526385029528232517584455820279022691717098893436963937925430885264301559957692574604422610135868954580777682299505867371556121273182733859634888344311625057188171984650813996113029853010557840432928215277243525609125277854942667086619014327840556184128633451764761037395933538138632119663261024730754373558080840464569226348061205797844147638111111919301098033409349505357567010838452603303896114571417879511538436861216125149372943972309614439197148935283248480489099479883047196090122630991295972348392218819598528322881279320379920016196326254728206259835854073439485359407412370800214095033288316911839626886922340062893750440080101793087321769054547128406095439247937262183276856495108913686294818705199709911593722447817955703607163475105551769745169372093984908424321826198176364260961127464053709163902572955755675407366654903133398372879281031383071731986621236815937360874977184891215889107006332896670934599733266130110099474943557929577771137050343305720341364651676935627539071955518470794242612750347995760555704009498620346702028965950189954503550272969762513496375379465386678092527541261500624027121574581359627326463446199215531131014931412258205162515483477787744400028830688840909541515609137238298099851743658062730082176062079982549602090298366363738944730838411776275331462603591512972205945471426993592060342153682165826381790804894860500296931521365372263446169218078325907918970891230128827604107467128628084646700797823615638934455728445979527367433604955923197643634981892861927415403782931581080596296808411767227844965802817952789120509198887842525118583360996386099238602132405763166032658215348981640519818920266639995492476290277078179355607864835064732218282436938815171779908870261764233693567099379773397238835411075911666433994062177268647745553026750901679215184179418786069390612047130275907167024480080418144958488715342642687523625191579698717120648471303191145459646805259845146672917854837580652528915570576489329001101766915532498048024863864663055600440463416984794279912504263516886494572964548271895443803541249098921115488189289072347708866565389553487065506193011063234580364800913741364412097717197040382583626215645553271189639038388546538951398573140307061416489962286932994896500831330964762057859410412874839061097137340391436375511109651943456947930498632972734555551025365156259229579799071092730090480309993718429497977206552749232775886184404355372227982022217094953544666715421543773921135626766930839247214335180499443591219114334927405819624588913077984601605468318321463866508095028161039643431306331287855346889279646710433715165165219029224341317303689436278535894415442681009823032581027213475287361168821970379271289519465689882536751595825179080591523978603617848830576450739582448741268822910711936939887076581933134103703417702249130121561059852000642249668329667722620458808688489147536630755518127876719221081288596705915396209834479031113120810911359293404808331487918263933933801872016141321198622449869859511505116075912961823652229907041366450185898137055073076411709333761241304447830119845811311862835629369679625589307447411365270831192218218391724382611711297215744056160360840223323989192960655909560853033886185457598451270633292750284671311369932228200484521813236582425984286999873726723270392583578471734930205814062204320450210759604456411862621543126593614769987234047604618421977716946757383821815222299849370413509400759069660424920402116622388545478286262518240563279124517411988722371577169222259512895171307764157982398239791159410729521715545145805610538651636376857137588409878288246896517078733920662567449736276024820225037076667251272773104316230600434521428956599972618079404965207481636882771625247158861008150874542107140645357172100493011124381732085100463565047884457799763728331691834577824667718676797027025264058374924530666686782139178838535745216869054259341847370077246399712927431299895378319026299966625440146025562980412608058806961635398499317924188314740480288934782827043240296355533328029044697787253318153608191076196424923077775236824497098619991212930316087909397564041833111315789986769790066769312267035279924801543964792663862696950185980489480784755929528906708644571095158558236282449211133922653798740705224127377631326551551931772458553078211193774267746126432099216525363229367292298424850520110570820896013245202291158547870563991027379137797799642353705670755703503787669096911293014873287665994949184576381771592930479754430718231732251865376521990560700273570945263322515223176033489675967393556544797314477501978755635899565104876733031263724336863990049152406101002123185344115351421759413704449582393697778253051319265330307434578910546087279496793298913414227305374712180354908504599474295878206921237140837187775343016013298684274045328368346074548620386060664334548235922582928159947425678100215761531396567665615445579094123708891524871202875629062251282995736679321723452831597266561062051710209422812170999776996264188467048538469847134418876665355047195571493496816572561065738452524610537282740146314408232445087599497714201424798716652533771497340776825002564675506579457381165604491701207826209832645366359336365950665396945818446777145688564333783827414770153720567206178467874914403513648385653642334482280948738557330830463945133419088768082536613874085335725950535000233769933453994908226977024008378037254846886483489099521954907683475777776992127330653293550561339355021959897071016091301741104694236766072382385731741626999123110697493797735082290630465046779826261876592997976564832574366079666290965860017225848800196804980168692091813263835965133774116103943526144494943087916005523132930851562391941302570396326615311412333734688493107052171513116097234812053982227937073502775299735920097271159069606093913908034125398235616936694008276149569101398651834868741873713893463815129358642040702662421217866819912617012846243280368088458571878795079797091447515361979438447319300255320899467769139190975191148245473152579168081379205805328356063537803190534502749894125170300177256509275607211040798399612376207470375326844117588492322370528818250806716257113307432813237899752148712715925669123784160611487424221742791975276716455342042066627759935811394069937271923925285812198631437318798485492093864371788697732665592023713941294040424807418122018369853174044615028074294044999876988615369808602042758652178880644852098052880214084423708018458188830713917055337287993413494466971798168143895085032163228827274089892428563653877406843732129655979415844355151553816236977925996945864845830629342977339243647961385553320529267601211851431769165356477538993457444943600774925791728922890869610239660220550652058307924551155253874322642586684965802146177723194918655180062015021723916952855109773535430860273444268836834706434941258989681850222859511459085706743984884919575520336116673271390835524061548291949200238129713069692834891517706421526309154329225665856543712587365275685994972306342564938219732723480407084736594971196568938369037178455290854370859184630110992885954775431244039540291879113931173736879048871235461532763929106517708028275635930448709799894471591361853399955051805310361796597397814395216679965543961875339426311235526278125664026885761015130413958798612771121540101584711117030338838614179847686512803322562801572858485485345326750432345805036692300070288293178973741652960560374766905527457302110716824572243222901046187834742531699998000229077897535714987240406985042327640470705571622963527284768179062747369811614241048445165338813657120600718664119281351033928583653769240674195888979403673231535913920205255571920474040318972452001269218456099693237978917856034709293931009083979984425891641508530043867963949356036045272193552868409276951194376637096882582675659159294320425494905835112468967609086570340208794336280455287888749072906403034061267359552468704522516025818255668617578252016494913389303549528663267647809873558239127983139585269827484412524412667946120495112828872074005872691012533140528302793474622952927516418383278165955472938730244350447861061638572723597989387292308926876295635954186319077181580035824413427226501825211584852234522701686827364450391724796876080902296865528381343548485952143834272782514708959920259014100114360513952545448691385295154425378840066705437328964183834146779993190934393258010245040092456471884341338433027540278432385670691043685614837096017656325176484239757619663554827393764861244981955024013280697312204591821360198611861538467262779633639955870202311758262996055071275166045285387298500148073697281517316332427178474354480191276504948388793245184984113777892765607494368993432322136694000430960317686105581500966427327119202264577456036356603296419157844247389580642903532995235012903346004506238732453370632514019343853853958449154103206443488968697773670968209300878745578420318356458076851021665711510334573799487286644440177148812890315824419817316185368835136800317743776423425773458183004921609358196066873188159108394848214385043294416585407408920412823491935249033029420583542481142596743599339203526934260964214656269698073012449976202519142941875366841967923137203393769976646054103803686089240972406385266792325192644251797082762958827783324367967591928014532445946345426378413440004259444254641132461856506853190729395838380619126730731467245700775875742235230414511824636196096316198682511696914922306062913464124693973816508269476854909997130893461079169035689896681185688575646625681076727286734706516696435758704328212123661236024131471269391691490253525971596880474125989348892286587985735539405669496386263270136686076396762690930688345040027280030389968262733309100985808885270962848972278508269517511486610866266285270335825806365011962186247808460720073746541152733995367742650681891433052612511074212544711777850937242027422949993571532115086465446382243685954068993636172048349074339255896281376345378232877612555834068804891797157039527325239094320044556701088111909812105341972339579408126116564927715954827794040625850391825863830728897080223118177835292164352073360087110744738768177981201483726114437420547492181796203460354008620458771940130996494805269852127535121403896868629586877228527838530954387752272765227897147238163143612181682091544132448937848360960526835929898331302841598986624256727767463255900029628183795255528462834905310141098621183389079479342637046635350149851418678683177324761107375598727240197009280878419736416163414247238331378527200949258621792756085270146641662384123204437420041227770921401764761117411837512502740508869455438551235440745041754940775396444955836778873631052341860210782137265917168038734115533673129822192476276338761926033246384642681892269703022923168105806981343279380513572456376751991113222217951748903577153595262594444922851702475460861614064974507459932986547982244217794033444470007062237595709141236435208691557741750800959704400162715132069071979433242719659170798139310854488128163366202911318423778870900690511720595356369078161445228962452155022525754243628785401995428909408041154596139656507039598295327334369699547076284987988929775252066676769963316926176198768376173680960258161937200902469518169237500167895652894614177755861275081143883063024317084327884653594983985639193115686399909397290117730540824673972497122347845081695247637170816074102079999904592151633940988507844067628650064823482509502244606139036854498845893519904475691086200511247863842647051205208474911377147397857572563733729182915489710481926646910983144037665608059429623454354540329622585310633046925812253711102045854915072564031872421984435735618449244938223276942673080972709666417771791395478443262984187860170560333431457194414623385056307798468384114775222078698705369423087044486820700025905276178747890400060645226027077305229016569948803634357566313026351473626904224655952752180715405412364239848322461248288298283089795749696754139018657546339188971877716310213500059555608861620662503615857230000553243629475122997133533077339442072517010544489967075995099561157708139741966743144850042279003101699141590979632927384016228534479631945215663614024571719867579003739482436191668691068092110954923656870622015531868822927620031605496228469676963279966529045774766277472411498068632052190179580851763889376702576163559702065429066116354586513185224874068725697574301594249550662054283651652908117274835640626865053539753883627408199245909684263280758272557717702267765627948296519725574450972005166833101892639563472214377661351214302700502962107743606839319112336335093974836123910210810115202203458568016744071922255045065776851090901012543678317940023764769977439542355665541167526625807813271586954623625585169749206505996481411149124604392040459660754675657300140136014069740474640931174536900709855883307222584730450734184686431303734544819902390100302702791758433022029737523630060507924596316150658213486914787285924307202135397416457385355662276128741599765163770357035523723436408379756574236116083274634696877386048744776713267047727708861397825954279643710504520491125670744408864144116913029230206551399757738001799291467477654214650428820421983049529522139954034492977317882362561817201830388949304022820968270265181204331705570679291119618659143784863912408644297159455014964951518401414982796227011496113692004175329408588931888733731054276873758979326125130580278457198041139588382338879570012229412004038259127649493129816385959203212706836475386946194876685853967122097467429343019311414121623888464444976647463329910548443221549835094896843900549025652650399406392824031072196717693670080151442925192043010059647253614950670548695067282526592913293624149317311978579026596545541412139930798596585853269932503766917851138247880748003548392415682785796392560879772514590030116544875595380960900074554930159477164318921178352058269610936819519549156182839260414449159317496562017830825740702353269564862134078873214075788524645891281679760292829376014158482226013573935176962492750861322906461168774238604294284187797329420483179216433782266866533405389277623637422893719588166064457546747217991994267736316886866975196041931959243693987727964797893292475781568158652726589108655437372026283006367182646447857912914164127614587904382819085094857912314690212515116521424894830252003765747344272799412057114190841046937753077896022503047410974989929129328820526201498121988172179126516843665600832448623502647215446027511887558646157660807490475961821164672932041621257986318071876279983518979455702913782686302915655444647464579372036676162397808428495867981851181254811513790969979293228606092803892012606880982546833301094937267205172814031923018777158220939889627402749809991085787802649266386082411997199393369010321918876818308663280825935835545597999034172504449387454211137259592188849443719187236210096601572589263974401673570702005704893187177823671903421668849054769790086319963991059018972095468501660133349336959733671340576782528617109514976121005302485500072280169129669225038690171665745601881368338915024418111918121019781397707315880959931431480629261811811579611794851935149481258839402032970977562477905406711705216323877063252873836867748767058428201340752301961480749761238927927725831556869188282668283246479716935371586253702529893629868255132102033371045976372436271907803051526480693462916421732540836229250307459894007346133242834405035057161493114686981318585128596141179940976724805035467395097717230959171633623341615882011004699348683313793278694643676357809650647031910088598553454703556439077727669614082811398190537231247094790458786666787254705788437682576892644387049580268064479767085430571051786563178094614132551346242619282757821418288773119650792421316988050014869305642915206195952458826374389114338873071034510870935224896382939741722725697259487901722780151710092937029934432076644634544787866058533824765394531379995519623098883433968929840123591885225756139967016875082604787751800490385986926826825156407265429795674018239197408732763086422962812011145727319950862197277843192869626940182776941161594567147783485812902303439446680593261272570405766392889129104012829562779894214048972548426182554842216174430964105608616660361090169350620852069327915728910669350864905644717142349945156453805068760602835892721905018951183469224034351862371207467222105419988846311278273989976026045388700978413486925813203991049401047394545587030955093967719316819266055306175594543264129450990582868013724122414854502681831448945650423993406832549851756874542510134939654754867109301519198243451741240325420580108847913638125594437226068264370984830971147143892679052765913931986583737014882592402102014528115512286177365233556358831741085733087934172226234901128062903463899046854635454846356077650451202593667669682039323681045368187408133716876520425492632132794982325759168189227278240131331487948255617259092120937678173295389931550303280951211684889063368550338356031703272495095223460557168042570828954365675561007237209103880282344072541827031328808085359027933694738706262797368799568886550635923787307934739020754966509231723870820261925332380838257820769295503600399649895406928691646032980918506759479302017081163518972693421431502540943615287392353275361258958753959228003549701105096387203189852066258881982226040243176831449482424251290101536499475219232465446212975887169968193192095037901195272227468971217966404678171743630964784829097215691576690931293447433646377921016889326823060803540996042287565350503072794036418896435242471787385722310459424583833630601491864659980954364064023393456979796546525472594586513599334275297459942969467208368229301268001683070362495933758560291029535143475720429849534275265970755063244664192870148315211613390291792504089054739095988408879445996716217806787421297505511742506110229929145257743215740791636604675520950580251625517371365036866655378117796668167500194632804718245824461533026452867826616218473403169795426900420443437453365664856890754575512857435623258988852984952397118762724201380429646026396191982784043793755894464950538592319749964080347738951182331911111990988812938349359810281768405208777693893590491508082224169527005714070844955235945703581576933981695108806296284087551446972072527293342561058008529282495683089719652758009570116741992657350841223875164469905710951701286781322965559770642367474564266868461430313064275804357421203753216041011708884104204160795464970379850849684087179553028422327174227460386015021497381376977371684784584933224721476777829033580758604459685282143277095324298561629627591266017644634282221284537815292478362686848302078751663159842208117998213538647349143515518286082439020472436219866495952736187721461553622892081380034396342049433347702669778047062134621272215069173962657050357072642474209582519556915034286537194388327111647990617941232259473547173106197508165545693005416603629075372221730122135569486060999669084852876657404322608656489450397542554634784395021175552467120692072668919643278835880060541426397631870294769998378690291349218063951613628280703204278383386881984551449025002625677403290084523031677559745275757243173000515721317860157634646978147734434325629787560501619529384828839339098885991229650453187225003944801212368532889748212433718756078597509461481252840655294194499057373988706472635832880949804383306202148360800117380628564603697494102500622942253611100760810549609125365952668930853570146632059791474379113481119010294356762069342072889449635959117183922190779381989659850275520303712217851941981585711467717218767138482728885026498980989292333931016654825696441114016263193454927240296000680813472445149527454459207284118608176508214180721727961011725392588803437168072869853730450287260725204386042847901615652956769115344671365769251264095810163352631670522860435141758111433973386962901288889001333063361979099310603852717488052000281429669825302358421670971656750414303534167861379895333813650495938514094858574940887423244613789114763047656165973831957033501757606107762074080459157535277854305938528757102513615680500579578323659424532014483028415726946090976632525506748225563667109451548960486389377966157410026162414634007705631651538292205429567455293823109861146644815330010352573524244664350752992425379801368278479364717603683551146390243635369013555500099374185832538841605431058086811464218050974029837449618546299157503001170209568009244806801964335953998937977159991683489364604298674494787325384715080891723153000642317895631202040674317653519342262226022868977558467063682104133391334138755127914424068711032030344418879330332203587829462199765815813876384611495418015321219354490366778979608583758630981724571258559917047247544016552550386896606224954199709733687657739053564721048824247355183691786128673636429886520343105901904485062749914034944308565795568958338173856298419579527528758941765237785082208839012473379750242007086069676157802339672050048008182224549281353867523949770691855717394061024663203637491617029489734234068615770298963560491378188338268980839442091881165194736142605136733727464976032144130737242898589954101000657920425026302183135862706796415559879003416962903739610709207819425197717292462533830422827277775037921581184670139173126509142043364529836008541736919825430631161624666320886393513678677421461245737754670304426711642737051133951801191605520452519203892831298845463599706810688787826546924411158142257231697851204804793668971933348040064155007535451305825437554468041156761455574275327364856064513279549589535563703934683836028781219462749113446863566198051472277322594961699138028798459226147852028612441115103021189193969040393538005208267773049877084086490827065860612012142847451350288995735714420895242850362757052640470489102527092157517103007945297204696766918512338706225467280941461027110359503904314084079239024013493303671720617238989553385664860479036282340197777644901490391231256233944649250211493468295311009808140453199412998764178333237028682464926722679892993585497751326226176663241653249234717413636255312427321353327023189061876381637740290140238071520349532512613996147601544026738916284836447872656884829784431483250678640343972790435212041811079347322198889828229105556877473272136433350765282595786782207664833741643820691170578115385635636065515882572095701930480256729084561142366869665105262897632116740941438195114868463075017838125589950072306227127002261991231886778248823385503478294179517993125993653529451799711618819168986684672237496963754613646132171009357451842128258794803658498835390687630416032232560532359787608740501217016153242234570437376727505508767025554119574294339027040928812575925597571088405890153011383476752184622491326577963796575232237271144846357421029234741424064383816459930314555633993141421066394050779223502381878442524905415844409841160123920484695140974726932357565747809666016989125657768927209737454997096732196256224244641310156705403809898812721714136817236332923860264201259922760039238669749319668776528015140470926294809206239677264102144660451584854030850527899320334702602749912204332010266345408485851466504454511331241945473595634254262866836333688051102613430801607039672109134065607484775379709148148711246714223058257288846555427892438366208383582851246795726727822964821432542042167161547348118247654292070021284346420438174540016402237694328923263780531200085696689603425323989261352656641126862898208843872311412336797858701241687230186878401600629816797880995349763851111481986382902585730748009465294579025098061002566512751427267032229777199179108343750793658689333626498276578011105041413744295159076051266841942359779335663776856275066818642403112957524415590563501596313023376817209128367518861211256756647262317220037917516235284441728261493085103224552335410032535131336611116003583823140570752990256197133650303035322935479541853920890233671483358822043898275166986687948159560104793763633181455223683540028440389256936292026594825772679499331556200789548730067121863650771937366872406679745016841949595765892202624856672755981642651918941666674487351034300796406168338983427980010027098559631187883107902321952914653940021106280894305173096600314815883395833561819486538272397795425719375499925517614986694425893286617978566048138066508312627188073368362869250778567106642324854143977611775491686071316511291918556007499107413498373621224920545906867782500805698205363494168540252428121532143336210269613452169634860589002144493331844570858650425832741076532405556213991674142871441189046138387906463409003399759473361548851387470155560882448109568806733961718905426438716758179817596896207041331015991553393358628560464609469544342930129269159423874365019114450755995470624063322761486672896610149883593034343983317967695394385911030670477168365124062027279834542695002693830491142023461388731970747355976672778480053317146008766592546931862979499471152419250103866566967955150391063863855231371453943657397552146468036999577010770350589492168006441075527738219083844600497419709831587345448766556386837747343936398314165369821772003391874061576993492980089325645176361044282949778032500995083275227552726281589338757419686655571277822248280914156076863722442188398720324314228697467692038096676422503523794934108448715191250121757719275001468956486921575718352757282300922422216333256291925484457674477408009361309696628170168748360519265251184215620562110790922804715645584400746319017648472591480857505787198358014860621476483880912508039990197206605234332136612108372196222164662004387054062319154910282480443992937671811560537323404020822427190483378654153082730331981221039294774721551274110814400855526166438600251647252410136719643796519734151837066305407942778778676004173303266544651070019231526072360118410167726823401393901016765645543608984072125874083143971947296632709478953011562097354987964805411127202702110794979248554156369000030525023530482812725731460844601168803768224847383247253010729135361192237823170525672375617047666475998239502820222317629389694617041808463253787912757787633942971109173522834857607848914052709412774850767446888435629752277702638095280461836348005168282387938360981277438408261953282078770531452406162848102972886827296213115937697640178228522389255186299138248620532379725568543771092998747243370267200120320882098352124259021396361210254038884230796005523085884493258373119147997955925404367617220903255375188520193443403356046729883054619948633387047796944821326305633379223064668932683558445991085696271209986640321186859212515377784563011909392681329980994436301306208170727120818449851596903718918600602894974038137338010613815194136817036719820260366908414219298017434230823535231321198361950477995651602705213933525164274926481590331609030335384671506049640741433130451413841620971433645082248161591092817874232432905672227784229588627806311630093022278169576524705253984292839916980432515255440249513911939096209764056669113381297407254511091573531830018523989948796505709451845551845242705061032686903047652930157246594211579088644270324901302464573042630933577409967156282982224987822697967503570960751034960019340432571640155269460632438447147191304275353373099041643145770230804596625658336789540121148387057563911214241044260438754696355231145469772268426308775976099847675930307662175311532918041486257238010009348241634751084595931858078066356782057805613801287376706658965050569060095519423119032188829969894455319835385942471250461103951246693833898146284654274808171749732833844962484293286901997026484792429322938471084964014763583885636184103515136109447499011455225547959768501892185056367434799606862826018121620221452904368840141525114389338227314379186392266035736466244667279313715227684902214110331956587573358534775684734837624143757035696422820335445750097603550250805651191038119819025392922805290912155118663656439298339919548892506841738202239138781944482890294615789646215856944105222626315435541171617099492921206421636324128673636009859885214496039439091665602174496124277409251981577226566962269357958859080590383510809359732626318863517205513936001092180638834981089026394572154040727443350859809610726649577424675126635364137079070591165830816854368714943265848197844477948558839505787175051871547638165241575440915882659172986757577320277750912328768980742006554859974584329097152613432867386704822481078552071241268131157209736267316774505682605807743570427143642050347887057917621427378531551988622331377896856298932050012664024334745950630179127938001758242128227430251412002064113383018884306797813344014166956476605739756404238587002179645133676823692187378929456066276257435962057257685647765904722534100901336438321976651234976694589124732975562451160165980864191645908528054740359755825931673981384587053311050051093265760782883406560179175127291454871994290853310162904027980407777274146156386995447217067113937261972325347370410205700843179484826511252883309383297603494580873865725302003985930889213591592734134685909437088940788168213590959431211598112120966057959643693537910969215925163517982230443585882924442059262608413630100151860402644764288901807305688963540321091599502680959952585038039512948364314477906616006525376771125931454437386199690667067871541876918757703318571041900909113923773478025236034201960907275813014469536521630084450271957722812311459654623811437883123036400031166531928420083596879611120841678568380178373664054762361650746225633033690954078163758802365708905238238135275740875987620336056127464062451406698189095840814371721959104781993964242181151251703970994371711549988532625799958093190786420447853895262623114988814756762945582233831821250866896284605460780354361224246695565794374801990238737490482768088668462603972949276553110167093226227635584024885691722885942079945193651360146540658859056197486032753296646996611221677358334359444063057099708732011325296308128590127842640141008061757155152557516516882754005991200219589452520929198548058252263372962739571441492403623234023437423069706718836654429345977501779519864324703254554132791870213851967139420064695332210476998853385129857286652513367970244607244903396521958749946602961744280519671418502623574737057480514224897658407949181149670646060779902688968843890118214017015355828781707101707758717511450420905469050583718949087846813523561290745586672998623615993028552971610513210293491987171603922779787047015096415986356313925541751822757843415421510991116110791200389957431861819152217760518965388100127392436103627805580997294830483512313604182551682736142161001434366173896644219478291071639470877670101737289530428931366648536924216206237067185241172911878392401325729826472657724420088017619651474753846840819966284696114232245363801227065315488319275344751226809877235644427942533828648936442210520328782166201079578143137918274506969533043245186790332102933137747436323696870471249815567438098134205328607321487000872095934930202179101531301185880950885132864785129568063883066660730163172947181498755204985915465917146494219842261215417961648234578438364387276464425027687114764243200205575309777324719408755759251263544379521188497069273060124320036132112430670389581229148358167121963064105136040858748689570165470992671268615803205280251136875266497492112295159091303395519409482250521448608224554603182372694165904022124126473078108471323498452525415282181426528909887615468855869384587753437700033876539171347759936636857335351906705028946166758409399282838196614228169793093473409146694308859892235789678793301729272418518454675764901362420012818295341777823899346110691052716867161360143523166564715758667115712920254783168552186676254631478141426652801410020797749320902298342223543990752324783208665767694810892617850295943601589160422699046473604143173126052056760430959815063614409878229292896470198027078670000373154287570618089881670003317016041323775634775281212991678833171879557443968839615621892218324366105687767431516749700576793385556237581270045297153040629076739680026429884223083753251115362116087595228839586828281679028749838889889003842130520016501578788945735868028506980420207416785128314574464803190149753971132145659735577942005682564602759524488306237794867700637628667973777359680486978496100991880639095128970552495928866104504268416110627378180170354495409937886063379660458443560384367431373793701659228619869500853701607635287736751108112693471404976980077219912471121980206366781428380358148445122333513032011706448670875116238288903118449039969070453826203565568227133775282432970322816203180512998477748424568349179145873640651877277383770443186723168181970754413002635290482153935260126577902912176176103060444412882176303748582877191837205411420566190795717077942117341442684313543657501202036654254450922935659052970620173534658351679092564073724454803845973025219484660612094291940181467841700634212990759017361833922165486867113124123558359726471727586699307177021794152254404302700926302329361151152375863693986693400677008914486183935490173439657614968635727442244232439788912265684980540504176359263260198771123452825400572308455603126153525629078327874875126580797846734001043178388772768457069338497276423916542404336863945342441332589329723191372632646349443530047555263940681927815348228751717466133933040082379705907292257943786862483002002649217504386871156084393893811170228960077166037642011454966496934695862698895650460907409586371781704395117475175981148721897571725440876811375633515555060966599231084760210761350779205594516375884729657848778731902275120809448437461403589697102240604757988786986014882003727678063434446488104048996213535422893608091518267648334909752946247761336936960174814916106183210320125917086975720023984833410150475512394973183814814445892558017074937637960374490434345681301023749175206668192496581622550374811774411376862144742908400488141391036307666327638376777103012909166465194247092369802578685464349356725470998957802604611901497913794874709224886880932784911752457630350413390948394701244945590563851845966129769877768688945330411225983286183816759334413257609193660078570957816790221116530024435909608483118432368789593416359938439132148420580020113153275218313887665970482580838291072874285887381212639790753142778994629579846154818449217937575551162511708098793601060417663397963362835401348016411763509536548153484187103835445015669348747015584640603843804381164529011656889507622142420873899723917213250901507126591173783774062275777798801978182253629075615986375425701930407996888313361507320659461801232713510330799528156330129831530213887850950029438554115424371850160392310660110927271084247063055080226102250263457227306814216738908663323017345255772384843045888074683333106762578722636729859209744025349397839274170604200697676983086445742491230843435795232723898258312358471911593497639147461276168259350609272151806649434233038518716915208746682336166010833721742474977518743219198734332959837680863794830936828992946924663077409851522065252102285422241141201236111896016724756666738211929258538887896675161052104660695810919442331434673380206289189726430144094112916395469997318214535139821255147416318040117292593462343281824143100767180762075361099447105658640875477068780356798512643723429333519853506785519171463350203241065739015809525081005286684425466760110226809366815296819523053061667057122596888871712515199192719711206439385341922716534652601443754117714304358340074785772143386074026693313391961349670145235841060557192703731967514611517049581979316986825573639038965447135887109022603365827122835257687201721789950817828448827669676281281376068324049868934333629251042865500784649018489486538977082517902444231073686002293649101405912986966706792003113627168859693939246542122953145702899534457710351242964718132162636463109263664299041783695639312296002106397661587744230845623130635553752888298166159896180065218467615193161429146942678971605657928836618747088380460820622136029735148738915654406196825575650347582048219469307749600119537383867653798245525151048618917147077178992875950679128211090945847779890829564575690218055409306154339684677400421020911330407935855200607932246574985322044412059253666502822637563935468553231251806552938867411927767911290868912785014968822882527790746836068566987604457473237548481348086955130020688029516260482330887357359500353401141355997988255561505513363880805113004561309140118026917702139603824344132688330484331603921590743702687540753207137138088088988907698592273323839486005061512891251328736749881829335655642783322620346884247742912616170814802687432834495340520521412704915374340012124917359171974897542689733017400606515560231588671551249960531315169864646334735029717953302282351003350555085603366970668401172178467793850880878997558535188879438285095941705937447280260601535760982434247482760946417189487535938807499431655100324791926123773411301703233047371456645904737283787436952848585082450467022414558654084532255219563262612950922997644861031345413517878602948220182778304303342749377349181075001434526006842894259370712216365065808833331712606833611842571042058051847355230261120227636074011076665861154121689437104936255530325616887417968824827759729181252259782457528481956488396659096230230522404046998403001993066307547439530401195871856263975761465794575731828282877425729795549044975371744814127127535298641479656854301178000035634479358791408616075232356484373471125023765331823750684007448709822621078457254299659586465906396551207174698368716222070623773058478134042306098260399805974116694672701744009408378982985563123465212545834260410907616956048783391834672816554503257030756751264874308860288610560430189456197496266573878030935330484892690043567835679060485142284408796195492765047988264842207847547045546496341989063626639655052200544865481057896160694703622901272074839958589663056339093891520626087162760885843951945400748515279287775135602408249642436721039936540041385686832438685035481474917922257351762199750552326659615907095050742221250747939108360776899635024656055964651974276027166650189049562256808123345172091865858576989662958999556228542470491962136034112143447936423450429540877067232791818806981402155805495641738218205641443490124171309488634539717649652715193977779597226982110054075430153210077666650237987191815964901377321323858607068484284815914732160601169390686726864419957697800256125268602775084634277174472619905412813905045272867075198177297690501951984238433431943404911943845982685619779050423358119453863630440417160416399330200260446393882358406855820762215410700927518108525708005747803236569086779036466584456487408501700619502400874109940929151432738163930917330862867349343120605957067741527737928381041546479062462211038645259223434992197848992568398960820986431783322374346023935246838129025730225883282560120074660068456471593989057620697851754903473138518980701052109297914715032939789846664668848005269075130157819152511391845215824595494426002465527849724521476277216506176668147880712054476097511239861929593687097433821460963513222399019702101445300893781241445495742351821840955798612170848739973357561921646988838218368104395657049662403095914250806740588207735279871254822377972316854802556663146115323480407383621251812293237193009809378741537589120637434132542784193336483562300718255723160672968832155922658746814897190036761169019547843503452594599544454715462297195061117694735949584046189336049162231415821324065490078236865096016290916619402374401730000931672194289266687169261966817554760789483780001017101053550805197088621862425580997403285963943311857056056412820965205212557420219935479723945131855354276507084682815456501638482911600987821061831609679875515962365118426521475648279884256686211347961727409142278464089280255086875994931137923459415214138571590251816420569497429564833539214161396208712338199534931372255510540216813400091313688602439515382936053097023084378404017723070343692735298669220434427961966236198477002073456928284226926980334628420495815210325671774138716079133900716240736621370356836820723379674366835346457653565286279859971949347117635759485894822370918818003752940765714507330622581068211431403515925231661080244266525448700181929317248516072028563448974953647788148156399401976744440834588458452261824388581429602205788137874280143138421738470823466251033150713548266673767087572699547864540863429273356759865503424948187637157495791226344532528711695764973998996424646865779486826690653857680086523340581389385134072704059160427999727978760141655855363541729744149932367646281924263594891443821952683882671252156255200378583250374540317403765119353785902398794382154865601837771751545217511090730834022151441443607630435916675073543048926351905173529543090530023951945345681221971921223080515881209454501998255017778951505137350201916009517079713176815493257440787525249225460840884583182876923901180298840857056293254500840229737872447258484038237378962609878264423857277445264671027557471391504135772071100504440174417303581812524896941887826332851327099256052398028661323593336114617142203353661555459728571928406049790087296654833479425695817408501501966766337097966030256396157905640244933263428264752610247247441388502958372275129521178782268658593589666394355592585008833362215979268440013950779738245462044104844397562354909295812226173412772134400072222179234902687963225465091381154927390666369853032480048250498925070056066963907264140865787840381388284639993829264891663838507143335373309572092483145880474566188338084585562357163754656613877294887759550020960356548000298684689923560331128771517722965702497390452293970878951665508705785959807827718617845904893589700388899743616780591536604268099152908387960623569280765934993382692299836067303849514777119173410425910472627350902445045287919959661510786948411569304665656738007023152449949266055329835118289802368045272792483968787541060789364672338004746664222887062615703757021790791639695292452007981895600477318196660867254115640472190472873558794178830878333117470668408828860816644423135221723794987682557256371272245500566969831594117594900228250685193468176346509715603692658226767767964410346107779960115132436962712155267784887248772848607547202718966371012717036847869619146980300556294399920624602421115604567673273718847762127961314753357945192463052608101559320905016797374536250372976592771830161348746272960327185158620466131160688520145182672494141044123939950848007168077985935663235256626075819996698740527897517283378743753603080367206493698942256521817706104459555323972303961311174038808910873911532466183158823116231259406657445736048376563831521508944804940568184553376932944894542129457829207165483273389356011012990386422093645548884888355878774237443814513665706362539760253018979349938042065319139384949828355563549668241842382770527279271492684075727002458737346272431519266848953632088644964149136040254867774491803222913952272093189402231405151032843608121276107202016093377367938531124993237518536346302978765521249295936511230428313472619491181210016968414160729970286177903911886537279810044301633666473528052463878593446439333760861191092327447880263802984184337759257562545413346367241774331597247952892096298362381625847730447166549751394292556870685463990822455533689049064355918513598329064930895431615451741933114527733006114612427878665250501133057148136245655656238613344732508761612009273639212922909166688380933214734601630391731073215619261302084728805670098044444514612071660262301089282446867279332183346586147301120678940246211922180290218483813121766415251921848886941057933216117241940514347606205756976178226384206502583542935445852707813915949525717697450113408312271187968200552224734700219994221981424156037230390086065327807229219719694768117688207851112092813237182432718316203091664701653055198220818008244777917416558463912802423022017452629479411899226974136080341842315864813018734241367126986238121240822176093095183105395543995818142697996998015662197847709253035652806011517788802278583737417271268720449767788977451087885436062316463765749696807506294125642599473460719529764399765997016285707416770389860364602416120771038423209138183657896721693702168477222030705128638112394308538773192021741369426904548426332905756090316802774561034578830040250043662940090943755088519175522079035917066000732101519368448831705698656565181717483030797276960242614807920405173117277807606814316417304006123425003289254789673657724009195656834600898102636982083400387062895422635262709889164209220921067994532225296290427329868010824523203217073818572730512832384824863799674177032750042460567943154106441790572055067389521705625993357294360673962314962664871177439926734854792383838938695194245650068852004248749734506795279046796572540037968308597559390348137290584048221593723798765401243075463518745596426963081610283443098579445713208381154339323620189057290909034115042170523135243249373838065047087960398310699200649801742507306262695474826069763390252443896413443961590106980495143359931782001765498699493957894906078368676933396085573256850088312054756412730109662407115291700737082932835955035662843297465820899883756922807597837823483676945055684338426293403679343462777210054407172289217532539579874804043335283590167615260358110229050425111656580067351104407195416073787566038751894317502156400289900630381491078021592380188847959722756278562576314309666709047454953864554663653090132218862930101379642359725622977559690117580908661763244122880189041499065092611385472587247599499735804819070907894877483699654977103269665369230694928940321411532406305485565442781738757047853898316531287231189895070581179267184744255843922560252426460999071549186536630049756149822528321326778953995048394789746196114975628552600620192246607565128191524196108989603322697773513872804098466025093728331697678486269113025245107079139391240635669896771370660451809003105049574299581582534950257272348839423157099364011424058580689223585252391645916241701597224812516670095837381004829324108936393879247448248348336697714577813782672361935626784445348330028685470271508152249340578927619478785887158797593499828025589492124267261056088054512810702599509665741906876396622536969513706252806070600424216591633586206586071706709147402827030337912107444744016400589736081550703533139995314133568890288953862678922811911485145543515637520389633450390273832084524432493817557190878806913298605677862635684068594305281345060684159953203953528975085536656149882541351122672666374323159710787170450989776430675996188507906778074275066660134338486351672882146243899186767263103650179579758044647001146143962153221645950636021966627984163050697601127710646710983707861603002393066939300155024769361237049694088375360556298416831734316307363486543555285433228954161120524908201130117579203734151195933230631757033553446983283626394179160113651994935946713901145590549839933176123546408456027437187210362672861535614698837628884788537931232320597388323926880929881409899039194916779506346234150758017805494009855180429708911573279337947562807017617149865761810734061504656019507442281989168812181404144087525899480138533376481691733292024359188563815675017364599525947302922146718194702860086429862965487967204084761903149714296357197999692349610480949541490199412740890762484801070601450576850586721654409710836550515307306551907013975419241120423413209510354853646376801496678169082739288085608844241729842424421050208691236199433112039127793065768079835127661753764074845451047559015069720239611573102496094811374591174224750745939653674827809879999061079478861760647112475053956253737062083827260656320641879968450274670370090267744077150161446501611771164432095233046329062248509134256453856174358824078281571782047181304390856760415691267909268978002367030366635845390377324239252321501530000857620454464304953172910514226747505616204207118467550324770868814137855356468645264462558369498549470881330975894038806010092057768695862065585917114384754259350069567392222985868791206372334168941356795345173488243571442658783438531782695175722792642123772895695808183426310472906605416019003258869177742893492191569847442960685559156057253858437475574569508655935255043293868130432056052393886610476654592766654068096559037236415080072030233754069299825389365858081925590952357582125824162762651606995780295081075613763269540781542897023235324296655310744267436216081027704379204161059305041851211894785830970774221404860900925609777605850772525731858562119609865843436740674792749882566799185112812291616184881365962733876363848100657663293475866579946599971517887606082938956376085913196797348725437409987474484068124681056951778709099077105918772130783455398220488983031986215272270979050814577609598648058896681504736519629542597627235447976267371603523176352326834084662049724426523369222179586952882492184484112027990563844186661373170564627601786609779728903695279362829698726562146653785618615928225442113951665745542846801117945255405290786600282998465869329064391690518995800579981403806230352518270573027506536394690906470406433449802865339787560169361758205058276510950281899242136370511520081639760532696895857487243301455605339122732399561529044242390100799219495027751703340324484731752376660300474620404752611314606809043858082003544272708399602532642540514468267302383084288931572968784052695183005820490633969486196128066035280243592798161801199748838304739367499254492202043501993877733296381989500809398614814639942034062657907183357851016582928805064743063739633681907566781334678927772566592967101315678369027348752679030979661607120306918270706018691596403302342476364717111058835545130250595157710093539336335246637081474027334720631963601978913528629290484799029240910175273312946583178388564350165447902683624322964409664915343867082669390836244070116752761113664207512083793779051037998777908274818776242827536974047168632032038527865838502666962485770685771894051111137799062023236595398676420646686094126470934426596688553402981576781106478486147038916851863038784424807842622439554260430797274504193293722256580042542189977850753967131644790037372207956717474843279121342299441624536528922276268750304338756273453033340215850246975366481074670173955984841060758829432267415961912704325197221979269844175437339527250940619984848923621189911063910372782929556996831997855065686463960370187822078116909164271569094444162308573700577208793796674953166877885320234751509080416632465910143051262971611268960293956659482680504847532109519196915423808043142382387044480618350280351613420527580278337976328115002011299789028941313737176644287997202145553243477053248305331013066531736040412327512394008311479413163617471427792855056730210628139550522458481760804166648492706937312984416275923515044034037136296340403602678586624851598218438650019053437632110118630230669162324296993235847145890101869519817486538034917868416485167108311948562115383334208326628959134845990003856391098234898942535587904728580216977744189587133860337814389623832603475969327115606215078530977423847484735161792341204031904805835710236308078719683349628841962126966272776869908139774810647575922199968696221620219943292604605205422411821535432355589668301298351110585531465592351402439307926941521120300191522021101979746248154246138924010524694584381341249680179832823567709763466192736893450518068220609762284133250534478395503827754552631863278500993708865744869597295124253245753927231814079710820970757117749906066811599357114219880500794224058007771754763979646511172598259648545809244422432472083671168119363932055502531512056469004533093325896012910052237093243627574815327340172572324613880334392341784727025179691650467641703764523603735254248735063507081339107184764110091908224321158787350807528953947706171233994548819160249938096010658194904049155803987558143180420065666267906240660355609930939935521717922609892309655602343822905490004060401851665120769522806574519453528056779269651788226243003506602542504236103059298088335988868800158789629134233979161756874573075783112244389242964368589059917811984787854427781885815644875220351417681643590764185653235251064416792830364441704618054505923115778331658833828137436584529479884242093324000467447657729417499942481157985069211532150897466247191441188292546441783871085536365733312982013883475209964408078503176963883126045964722566732664182113195377509553970270882028614824144027470203134159174126672592648575354753217408801740909902893144909232437988504241539616529876775759812924316367375162830081073290106633919361883804420043229453483952369529477581824919430305590871368053482495696924152362561039633791923958269660170778011587026907158980684300816722521002349882317677381363188719237764288158806398138431170599484945634016682447241701906331878989248513841360913131714102756184873292207493082253504117099606875308297265493535755734975599850420853332157012321575881439696872543473770904039390120513349896306397924498409276427553007222061446097189459812462154418518611904389666025319914327139489823194703968480596722459864472367874618360349657598044540819591353150227971675423646169902814653859968718299730827973768011872664267714188976846924368865072475021389544079853518447980722683171341468003337525754631157613907825432217228526140831741084539907864605708755754034403636824192123097950713176357463006847784956782953476283266885789887587499597724127834567514841615615068296651472221845410559815617683550866008871888818998387222547420544532673968223218101568439406310134192790692526878881304472326564410765742474894715539769113795461745232716476934874632583820935225023988048356384258652230583425581838076522104413584489618215924987574563540973261010897507450836895675017634354944001459174682056152103875194347161598947073775623083128549568832860226422629126667993674946285483503276914677853542943827728964864088720887828776901115751676679573615929155681983719357920927155170081459011278371781969947689726445743889129146821922582138271965151941654338088183630625780269663485598960317965440255481797103092465874799627450150140193238052567191263026396129450076442386658315410551711135012254117992994758919972407465234652667109371108905378012322512094422190321122520460466071350760089572950557191501053583700852766150052886377352877243077015219765523451831752861373253588133870787651299954780080867779269656218163526349156523673107088733040976567364777826596295491491568871074785686338433328455156868315827298069423719160354931636793414578499106810393136631833862537226497468470817853211054830181302784151414117927701550305871524497404697519737185715282596296791776249232845336821452602733101949654314512905671054264443768681785712804240987056013301193620914666219219335270294563884518095417576593505591093400597049840966085188255420694631691320773119557837336524043363013558328026847441269246430040716471795316668229662511136221082309696779008820036760445244398221207759962648445875838895045998150987350632442690127807611198564989337978384821547313558880366877617033560503176174799700893226992993706908827881107093279870127380929687002996791895079697546671646649395546132245969521903526932409988360413704198519764973242771139994071264134047932454680165221909276135590667511641327916937544158812592133262347125155903654673099406954515865943894332975344003818306632819090484650637330961004056708370565980462723733710340972762886253997760254349434009068132134490861712381430846543647391828006874548088402707365204294440853782098706440120389315755339545515670358532830212448940435629173696786519225896744005424903410955918224227626426607288320187932992855263257836544636383389528944568882073636033560062300155655777376567639666266898825755266714579501567789318577850045988021226381075625466988410927356544307535518758657586723497415413777030275506058160707548326536870074103315224601057363790579358893326482780292666601634946146966275773172981292021028953149247263582603851952062949466397477896018652439866146397900448841689298912099104940509390458445104025212297764025408003433555348953700501894292290632806367397156583618381829554628649928351637586447789575422973048189262852984626272865839627345276790802377630682054396386792251566760336303006433838241438325359856302357118219318841053771347330757046906598899436527849110819309511762319522874392563301426127080807623835804629544733325477277455558241519167523226630096953154543146697582973486350235304304368887797874159224073887108973477402280680254797779991040825561475778999828512894234957416238460507803093624962207993524606198248842937311183675779770085409808036343826109632502466976717504351084097244175246701735762058884363692060104092356236594393499798367613116227074592531760436914159593205110760718742237332340874049522757115381065284784193143783649047556584837097731064044967401257385296253036194650046996017975704968125697026625421765034294350309744874458843390059441327475041965859353008107188922013667885704222173522187250902230110794379032329061711430692394021558389182813820993768535421521650676560480183050570066163447029753731103395380462423673099847067117511998717369292528289471040025527522677164380889878161728313301488391084766733974164815209994680848630912716729388891428126404911147292933833929112538070536093920954999646133239513165084065646189829620062944245909645410782570564805237214985143431080333320333327791370812380077711377141564844940906861292517622387332893443306265638003164143500495260058578290173253012681438891897243011333227898455387661950541125865398035519323700368052978488918436964729957045970544447561818410707234923177223187016753015617633884741535614910923743221947112601500941022609212909788896787136500987985171704931179601467026229274646843881364277544464745191857431392999732849170635501994857111657596094137205496677292674915857239472855577331331134677080283432319122036851215649169808773705771183899666004185378141348210491465330848921115431579175183298979709051088910051982182193890758013451489122472051388995134950600822105256819807507775166997674389505206143943107642082409012747717248010903661580420230834544376110619148163007766209957628865362290166260904065334661241344816372649193385786686960865255624745871680825780924170570996291083054563939873245377377147540426670586463187930446397277585418643826056727279382863937840131513216917595997784613917536036623116031783224465805564357963971166565113504982526296988187711620566158149403276537487652722027494668448569289002681225324923551598028724849501118078960224665763646152713248233743609672965879555302964438927333055997665893490110607444560160576522615438559942826211602133937304368414021716929675405971122293557251213568515434619120436221536575150381216028700156281031908485580807569170458585204804284449088580681931432062045230874708931376309215102381320211991183412610124570606634753976072952092770845681670629139989970437977784996902022067071187040677670641257508684086830254268539127656212630331698058042327751356021636909665595571708005172369171006072406134794571873209930298250147231231678750419145932483064283526254552468554077018994765452123343371537828593991516073825321937705809343587428045529382710467514108049490402612000327610610800828251493116741572978462600773950370289486781117671532287381790760476102399854982488640322572485088045533010649947751095554222085724863868371397965520671501053189910095672446322636456694761368210500383113408555269632074778780305330802515895844332682064562471885182439703362354997618208949324341216547086935862179618884597844912069709962867245084146424831102061097209973144403675339710821356908723586859396148248676835586338072430779092084290774313388557400190578233669523971109026989924596914938487314430171775211197478123605988308156943471982120387733497059317059658414337813987941366503402137178630879181976916032222139204275244503187225978162805926192201427277480174154372907325351463200244795553607002611075651191525483797771162913403456183577840909088849056601799925353196956159563577804804869791327234204589902067260658505960863308499904485140974785262463096727258190476362444809184019659265640214997054441608647086223342517794125332831263464682382914246516125238222998002535759136896044039121380349668384090349566871687269319235062148110760561470388890908376029804558980018113692263660906425260930379660475073214637314277288372809962399477017447930209479546558732676689719600172450108434234629056143581454008819709631564119466936290206107561043588494614184600456224445560364610258686477904545012246437891551864837471673217987555939620360166109037320526521649193108017500538174428955357362598097089746902011091400193594266392418494211500520836898707671226759539624280838512014490364025359231031697352071781733743157238343435169803042363672692781675900981671525256437788444334971028525885394480523164948017387239479137471279767109746557486359373740160427828355055830000877277083895172903431753740260602051303481832711766264386385402237200602699126677788862934302979009008077726311292812464661555053456569475740861892710977287128960844380788551030105846787450383458025268783493340424916457360984929640958359069206405828147938808297075594074763306390513430600861233365494474407519839753010109677358901066003850633108564781419879821732874642230236724435656905382387086828366081102885409766615143097943588332015339742144054132849839222585054387469588355138186293945704221407246354646553003144748001039766986466598922104027906361963145121988825337175556373633145690448266695310849740551846403324654076002795031449062673475242123137151715753731840423489657048216860106472696119748660577146480511915476206947474372658608416662469900370193011958995265635140237768973822340263934140775979919450260886029501079302788023775802790850168462500242700480705157177059533560586231781274138284840628035414893767672223632165589631833749629021837897514873621164425452967972975993400270161911785418246202545499195135882526846430446448921841944137600773355022933346185186269847741667283941545944385437378872750130171789826357065699048920973075911067560731788685508690462779719440557505283830786844836920559474151785040546316060294241212359303215275661141897693543928136197569447639129647506452280026405915739669713236949206742132247695839635469752441280814151871850168485784272528896340365153671935852468604417122489287215799635200065385126646694264838076074397479837448319009503658331804401280824721102775753042790110528785199446032242015085539295586992977785086709164030596891434434690565299871349343894252165598486929289588936425732536199989252095950405620963453474698477564742882575080453160779562897764491965395246242048450610962525765998728153507389504965350627268225650630146529601210332333952394464299149449815582190549405969353240841346126885188256076048930003374397773050738885589372564215373589139374494647132875255230373656801741414994923647391241306556044100064233054151523026203479844447414106316653602268331559728542458704014238236056801086770686192191522631914621097155801557310542847046975695418625321558169178760647181305240517294602735642058201558404773700955493405462466268773430417495135201855071160590915256094226595566014039273448128494283502048736478320272536947156652138157910053638947592415776363837390475189002344910860189441662945780276454705710418502344877675058498924758694339606889959997089265029288779008654804628038045676867293499216004261565676083801724851664910210748319123657194735376426996146731007953563973738245354651680425876412051930945651710606297096386117928365512562815060650860191833962031894097933594434780233698191890455472923273629614569269240663113732790434162180446956954967885890514380997700929764584222494358604386476625162810065721275569055970117404527310862179849483686674752414126176377130301345094193549641052647220261133952093516311407961272650878698591573587386523338167537131822840396836238108354628755319119009348139210994076906741603937898403923525396756344806326707585761949205925865370739552486512537322614122136058428552093800734121784832501784653533531177329830738156141490012151607107349009904289064745339931636132588871416360024056987792523690636611629304429370926329697493873352925453857251579254906280143971559605193704052874368869727328783328759912968007963896573404081138028350089730864827051111032207177147566813202622720559353938508585501555757700619683435299087771160691161647877079094540096730724985197252868315673413607247070558768157453505100416637143611103987023394608481180970607584283185200218139799598871551487718579704778009337754236675482403753054213099957544205848913843274600736381631810129341966037090761781493179837453950481021570725051479397372597687970792616351401946224929412834183788025554428628847860181172700191284975283424568889312081062663688488351923301233837092071249993621316349258341269071246360351186823820232442763938563644274172593645751348063210005418792553212024912268739426115482237089277533206094948404979078846013126883582159436307793500348106848069765004700357720037347940902871713715319644302284611766380511567775213630331368072008804720692301239464537362717705073398724109214036439739961956759874946322557642084279622792828114353638699311917757958043756900885153106695468626871116746262090070686128080936928153703524896341908697956220726530005035386637343547396789658922182954894572208630365155179166024347968356709121509150667847761698845661108140800823665993175974137106442486218161570456288000257686682421493024914816713525298423957471127635979948290554661590198445931799235553905311121620416155240173702724643219608602899617064835047492224780120637266088046843937172386656701313147939535843468046800344297714643250222687320095078394500237569635092355954376274782604528302863880581222595125424185058302602752351057062143293022934183583210216257494845758988292949248957282297201134855677670871214001298972093499531347426791777549322553970525530774865786456750751944510675657520617722778854943039962646116667053756721553410047689963351440193612946824485038782980179793842219020187872149099669499535466522208670520273354906730005013578904050406696151414996091697978523664014397029863508798274861311973987375392134536711151992693223026417627150721316991159647705470597538437818139787553501906472046001796354604431648321624888797795932496162795566484123319193553129362078279917327169249578697809869508686306013484672031342161863019275561969731157474192418196054852854639050842917335459680334215885550503735032975349910177056608574847019042191580788634181227324815677045158198669048514388035263683975587943943895526621208798339855277872085479335412204975160682601782024637084117204844259836226036178348919408136731152239497389286308659218066113298768191977067287012766078862831238534247193084714336161880851749692780424976321479762243331189529472968845183139183455167651221319574809260571095837549328484930956776621446568950276450946489182005184564106808452660893763278003754579424020779976601167030713741939375735242151344407223855733705309307837529323582042784733153298009997300665361799992145291027716860427379294811043207961990653636673220036659899838747988371378475502894683917241479162957794609737941837665229992520743126162984530021416698509386203189417159510887759338286860943683632181573089416969347201772229498650115303006113286301876655633512719889702526583657037972478123455035937077853090768253270677709531446567614663709176166199434798599925072724038341476515184521559401651513162561732499467584689914415622712501674739741457350507653196175165389183828493564760573331499793274740097041898712957340303976681194491092238319978726104542684603575005321165709010785357124410887435681728632264694777321827596365154703521447777169841851853122394582050994660067273392447687476759598416634334779122776528060855254250920442385325643810358164459271363975935778542969524394421138023868867031382855008692973630063714960308168098730839214571637412295755017468134653902331502235785767474891093243057815076220355017579616128641323355049837621330173607048179913950368957797884712339983309142895141670668566896137988206218220515628094310264129068366382600315054626704550857295732753721651779005028746210908211892033310886768961761178056361679103078088743240480891146154957457736783406396343346302662972060665400806841165890701767503577075391235783276179093011201711816888673555862368289914933281834701490792560131237721397017618297946052650545505020152115181273714041108001643303149798899687506751437469399698559343300384222719509907602326122048070029734004518236229018243520197791691116714988767359532187767088269152051993776574670846543207551161464797139238934154009213655353314283668631720843122063550069865811370441544385908278168402774090254723323322197526554212089574880801457187132801979124966211494586626405916818614525029932029555102892090737383862771552424838299440123664485600712463302737332497818461054156660636415879634526627516971234479861044467110572298164466932466989789659229538308733591705066949112501861902700230392238728105834264776360862971164963466728050781381296558771324649040353549965483102601347900007736233577776863395486872902016904908076656955410626355416287414189901682033754586894192316634596223515066410882523382969208952347452969931155717718315221816320068637791910521692103819023396097369575128251459993301648961522032267670595519752736494739395492890293609562853178726800308953571463024345748956712738507735628493574907067471254146910725275198451799632514336542669852674986178552241582101378288963493761020355855090253953667848612259610115387792436709545497984439302061238805047265034424526870565394950004575932687264107843380571151747741131460602894810485308148318816179910309418551479412117968881683949945707792471777097872415465025949435851722259191869387556821810048965465857706744067027618559440286684738378010415214567569489852421609563679466615220300697288676099690218529733552485583486808841952024385146975024407111765292900495449309443746181208736977186787671947406746117516345010384306764574046745491569240153074707241937857214055033031657692819824443628002439177555175654088615079491415866796466505087644933896402169853454192578515444567466746146087546982896175678719271162139453534330791157296020686984639782207741664448157591573357188799699520490555008542347390055107355957230551048233121367185974367371574725133644564540941692458710028522805384489019326548019583483237027340843958126361066453205528322332817621554480263828949455396038839449536009651285396717813687577032017882184405335074294918719286328561371184807859547781290404200233753806100202391802709783828982925535356941158735495999166321197379661682994438924701154774211591353625486561892513154006484146089205130076164669345824625186868799526038885394469735885964425564324953730534783382728762541396799988222668749231567300500059096968846130200394740641632048723301729191573479737402425797557004076791399242158789374790939675570960262983509081696504340169406129330454246494810279404493808194685426302381607656651427378857149659834237677060589193969322063504933669193904936567946797219619153333342794598307275808340567827883761483977027801790422464276211427450052637704068015156355259952782453830089634069747344924355894583241370765616499427618178727396430789000833017810384337110379376307545199821570045604878250834570811792729201483499812024941680403264403231773494800298302716392578511152197198789973679667719830717397066499038378820143068463713691329890619254123717980359657525610940727034017869736651163859520689748912331640450524343037967605699408221794134720172132668423140533463096199244604320767468005817751432239002763642460571776350887240285175250116704865026223706706359060415714548486808004656581999107967222705773478264972886241515736177784165328148509254261648401810618517572668723678680025166059977604508955537823920851407002646451514793050831390535105097415922696685650835975188632603101259024375375899010136067285676276174610311869247741279909365255953606879051501889441575302145260409572864239638955631429071017453694518766932787414719541630429985888674908163766184886588527739352279987746826870753444854134546194849301797051195734727411171656184589651619184141511808336634947491282791069092927040728049333305972615099240856524371197569593839098431840259619235084779354684506698095066892054223569390442536254506238762373163104292115619634980925656384293549177960088755032707213287047292496254133898799772753040483905652718561090951822746491529480141657161415061916463288830488733658050672216127674459667817197466569769237903789091102584533038377309026358882395309428133297572416915674806436809401793556282762779541850417721884897266392571869104846568612724791554480206868065564854478838771516888509910075055737940867621278732878007529415536841750989674071513561018570411764695468480150834651969924721001875550345737905837201287630888720126029838813110340848289633816061096039038124699025154628874389983998663624648695659386465954000810300206814091912874219716882417114984913545180295203515450639104196796368134132493250626496672911351344514654030393004239856711114967931173510241947206119108996647904735526246707986566503549481156248372434156008054275231674834792916861155899981250884683241069866081341694056087513912384919456976788850716463154454363400810221659405737434820420690415133177012100106210779164514024461343083723166261274821886341586260462211298899621208509897798701971654184049018377658203761944688228570080089369006503154415619535185567160064939046600230297467854397133394132953205790002524469729523586642095923390776022840136894092208302566537271122314193608690682045824952526515730028394842041335514783127425811875717455958993206079835155356836441618477759177030135953023867077454617567038251904473093996338577511923841454407074305888392918738674029481699330686253294171552096697691582398003740868355007693782761663755426221770219631432278915629301403922961145880836210316341477018074855752664287521490290350713581800837151223572233733594073211306020443508018865917750681671614656114261151455725506400152092083191887185296411222240999709178658470840294198224926369919840171674367842666496582182280334504145233639806452179112232102920702886932495642002645928806403856796373486403510995144910651215512416779065741681469414404879590614161225035118550511257961476443206111841514664449390849561141268569374962205682669907466947557718849432387488717995341782294576290308597641367478237509411731916451928859169236882259756508113535796915741111057231104018956968628747103833750833995357515408949010445968761350382024359305807709567391081871974483443635837935118486317036087552175997606740499226282708580880556352201982092596851445393780924490922247286143918423997553835054467104303164219878956154740876143035488837158159045340222733164404390380868170697373878160686178213502200572162739439614045015669606487941757865522834262514847398593010796525391635379413923785228641282083137315373443634960774695206428814721992555124013635758299690799037846253770301785774412898818475482479451244865963478660236960995544368818243272942022561543976258831627586034789602080986718523924162056656465538710744517248210984837913898256878576443270685065282195135471803901382926821516384702950318331636680602294521081235770645018400730913343068525155020956774290053409092432959323510425107124335170309401040858136301403386246475559642750355662209899873972391123091209598639492223573611425986488573514778144617213387603653949301468747084035637259266042026200130024158347684242072122083285608424215665604516090224252905290431758286384605914252448989036504794611294039036693499822009026502017948042579528967663559758771764971931461543446519413625658861295845513829256455985583387166762732053989878096069322273462961563553048449997587898405037254848797278277436294076849120670750389910303517283580367844575143681224410753905964113464961925762844898198321903764303992156804200234551535011876914377577742807412248139635614821703763922180658219993600248278907276198635803751039109982089845455891716547879054867918089864775867849494711123247230055690140371673186358511308660822363917138314658367390707824887249266200418790318910513569178211521607815948264332723183585123548454388750625714017936849621682046956089930566696860712194255640392756615412942403499460366019041039573140882065454475878049872840532106332467808810332529937362724895106294438404273625442242125092723695829639567558634676490126216027313781078831884865589984671907357664859607391467036947511913393477121937853807418344723876670261488933490906421750908029965588819723586091735727707010329719901384574554249884716777530835097049696172359642527080765943064123008283900527292831065019081372511603812970851928482832451276229729755005529507970748173300158840326726503158155537764149488168335130836540256627856354558390584701326833195730265749234188598192726559319919437737901752095172699098076926834971152198593944176672123613726114372559432630939904947344482968450271704464682917275622116287227191138958776118272257761807393554172680312914691913165381397872028238490345090229147395718393382643381395553299483391179784137517301538265917138851845792009933819906541702128849244768959852226588934054970514124571208205171285527271141360855023511085647507799790541208635451421321079449210348270566568910849211974475594825697670698976727124863116282118160208387814091603041442152044105773974000713588969977504568386764997517542630260351430288089111226778940974348323393517777155955447055870792129307062401788940451599471574439072660510113346441991652667128250748686117790887012457748117804155471316062308249743396637097748407141124510497752135607683860943201120185566574129658592312977311689870547346754075257225265971917399241225580919528939602933635265791550286135342815258569331794303682038169247122916345118558250083730735205329564512630232080403955557070584735984246168268332864807283681035368818806553042697646128853108256578460476806285706795414971662384412125626079193543232487683862747038645464286046351045504420735394677144072383706520694084559566576044627240856737748863945130633704687010764475053557162679948260164325284753467888188621085843429140043299945987710025477765633217077235805924055218722897897667195088784796538729271117118207842602955094608346114797026465975068090167591154940589872299553859919429533588647102538440322915607935046873441162947601549200726298983054464440519170473788770362735030727697388882972782637968352360069725334414469867048869783458375873666780003250288787476553200945286041485719857115961463342897764426409360918511719692555001098032459565853427650404572428846795528853137100702096620900109006313439826269476831714322369719598047047688758298093497734924927731862761517728022011325538866550973056178066770290896998520388478462299448279903011737484953211164233317890981511341246674712991206191170642679827711296675593055756041678203645841828271412214148704405902634486600352647191746644292411776994820103847070016242620612032426077324119183887592011496042529454555413576783085979254118831080298731827139423604461794147863330931428929919358092454622828454612361611671400516707137285252973701028632659728107345340998129923224362449073915646538336711491642068427585315045840826627061346026640072490992708841753044698494729793693056650670147120253553920072009903425147042477012810801483660387956076163274387322693696077904711524340810065443116452968938723737487932237968812439615570551726155546745848912163602602805057535859684503958399047301387505589153813172316512459195265337548663721609204039165021671100951474472004295096583873734487756377537670067565123555683167831561315118401398865033611461496773319545484427790077825717159863641644256088323200526174955746470534226181119769160041279541456665915855524180802410837095801459164431730464790018673949883811213445896456777300793164250672686901892929053622122667003973762291365924199624659591284530272370753446445099523736534961903003481473368342256317092815873253584429161243860538315872603598611586333392663966969838067416177409579757952661588321155441964941578192407073290463959710211106571383288768699607156132689377292524644096031305128723288228574497084577376208217177158387568952542645953973929076161203272007981124396573134168493970936183999746777969317519298680475382811896598379280945686263092976065125654610995826542105950026889897244714384913330531055010737706791647950634408900684797555598784519141949860779981334408804514167317096329084975556927367343328955232234151839995230793900996312742171739781010607006558026310668417821292838634805384681131224425686850321463971314974454175690097637017850891908695494617310195745865910560571496659221415996397832179716502830739451935128703325175286005467327759315146205352757286063999543808953570679919412515397834785930899726175719367378059581190688641493982567197648011816595497157797824619493803455332192715830512154244094288593366095043040512425418446871302983457277211125990439267323366385316270945867222131065480897157611815981584120324085453391124305987811340444677031823603011846863748874676557599072265388980917107347219104009877821794317565158248716550866298512472013414785949917707259605349576748788677316187975952295729500501196992063736808762575855003277867974046483884950644812186107371192541692823466874399368110891933594775526723778556187200563269372195962211038266088622141097003581773197018646750130692720677591905428728622708234854266378825413266091785453212530748953414865275039137141186959745196618155191759333822327907185778352164359965652149414155549134155364596951868230978118883797065719909692606829089430827515067438994025072950108156354900897339297198235264077901350577918189831206420449699503327995325340367415967037894492635323872030107771024144633046687434813518009613908665586962043118635105483241766214971916028197333870710799968791972682661627433282834400532092931813103199498882445916929788972500526117052640815066415231159933312668127940907697843469787580111664035158124156204327170679814022310461211847577689270610080143937441795546335511870914902142686641247470979760710280274038103338674358084574104511063280205277252832282950271473845919298414944644570956054918190774278820398651116329620943756341492520479561834556096284112235773709390018564425296720017686567819524654425484881279888650139911337257169873651133641170207661363843171406408877040428989413690603843296273729398149617002121055864533341461369584532649692295767958881161222637639875149796777057278017370678415081219714642709899709404351988426084344988353115636611925491881477522872988042251004978405157613517563107066308771293789987286892044875078751695938667447747127049753625454948061127713449733611785297804502068659955369494764121218610819886265819494090584468476515830023670953755707323086175691640518013329928817656713894606931910787834025760642620738575094913464347271534052505320949577092366313921229227033959080796053400652204986372977080311129192952142734840838206068122082099815343108205774886900348824339584045237315829399302386121074986035038897441767297745377644390923736642062738905773204872183265907554074015990435877090327868449888109284701282817993210696718066442071203221557612763396857190617766102491666828516949949807994776475883984242607898176642169720420783784079280786946774029600277812776330819174552813698991739032842499612521792761878469673551400382161514571044004797174470801847078924898845672408025673002452593432911606960824364510354837565148049390521320188490882620641934586739353325104140491987896180997769830462880515240970510016815883088829505865936126719202260884944462765008806931441253584072914500165250180894951045770305149183966733660568443866133191073957768257410224353050855421597008345244025441142927671880222981876553629425963264099998222704411945112163698259376218799879080469138951497682874231351232365800748928411632310636298200475874131317760918003135256883265873919916010979344581634046637536780126475132227161817970849534932668020327965845961649581893926225854766828806225350922208357253621017032676311081298795981586122611174924634399541526662875757124518310297254588387131985756385844854505660025337670884428166225093595042551431786646515058603794086241930438768541853251192734785539181904174284745368222255632780350620948338429324066607133717630499689005192872035821340334125736147720595838835998749929199162057444338942653221547761152735122675448163995556581237791271547185213101350760671074564597593434626443274883858978237817350882389296006390495987579714951023844866792654967058387296239678927025455599188436951889251010302758932753763554418988675318476085737114614662996098209624029796690672855219187029377561691745776959800432471268388535433786029512404479025110309198569731566220752754616782830836226982783906670863167659298022085189393732380747739429125560954116559012813188268692062762690471554689791981078925513366217743137756676728855354469730681476245406896590570204274658781270588514847011388280349613911894534331152512510650030374763881833479641876960399027338196135118961562811883207159101406540308510373483751372419238067939618746532117903063605505917824524421975899703819489962667355615601888085166046453217853948670886846404547148033602106704581710773941849909024833253608614609019464456226835283931668152267813435931552878343415249149012425298483506856804537495008197378544619445896936435588510819658438442768682038502666958631410357547510646792452566548749863710371356279912715825916824343850178028027880394172620241332609514328256349954176299151959872130735185792959931691912715219213979018345435708055718246823783454283559607615888570247485734184495962056159267216742180874572591164896298774842549935889154786011704446485080604027708836921998446392900936047159225112148058998519423594003421942278960304178995994045338529286954843430276486868106969154811245101063811433362984621567686822792159068310367165431240957459979203379940702130782086680747283175311947140213938751787151470154618343581522156732367051522656223839910897902063437311582360196789763884948484593788090143772564224973235601227342808369231278643801908994282293072620766486575468674495163885428995336359756973067924323423789819339809775254412333111598223487969433001287485131027466227772719504802240802677302956441965831402230633328892605041457086532148565240709686577629736145506636962200803640171017707106032565870367484616225391014547449788454571996567841223649727429109144128649576681485019384311092586282130933595501879750953106114278912210709817972623680393669553466215866449474655551714434753028367674325191524532186247896854302204326111216638750827157216555892746402692984277799104450465204394877385607481885720029426715111295599141410616612539796761745910802475806990014034568537707300985805355140060338989801280065241862130300664962601869235014593417337025436269771777203087762296702253041027156875852485368726911306413812756695426019803003914340258987870221810389901107087344453232982976589224484812239250053604903949053037463783224669064453379665877199038895481497697539933108328685725827809987563070322838013163752583837030059567386395122657358004802575653509433506292652947814237980854925571265140962853381816537224470857152185003088096516404002422654898969175572803862046462627905060516349022550420877269382598465171378241957974199031937303468858302589644851186685996221804514858573019923136736400773482649239205697428418407436394966319891962899669044668814244375908124102201745919491994486452951198657126202532247015424658165967842275295033316270849650532430191496526848079310861956320910753098817983288607764802462821028823664978643252206495385204733521106627415477215906924225124670333433443787036468854409614242014367358825829645635960159270249743011267931782240174564011018893365905348713952891207639981000992249058366917926041923041319974768051718139734721467236586197057546728626687531632766540713480542725780194636138005062497285561007808193476751084715181631873972961641481456320737743985080067131268346495478102045380729933543488296559589711798896532802983766059072122732644683844892867533080181892112996262530319809132744554325518709297612426279588373370666313667905166830825217211032099004363285546764413428428028010013026385639806846300682028822836686319179471142706724897710583896212995454551987337238427575328756796316820706871149006417262714246576460195001061218180614866973540985506585596860957063387015184021879431857510258224290073222472795818443858521288745273806267769082969908198377069654801092508882722379828787553013912772956510359473531701479107725247609814022573542915565284450019998619514620007196869819416444558191949581684642499957620966326170056752212141424350409957317603571611980207394133947721082511334099227528599134337562113090074425756504247185469170024822665355675388344740224638811167249864982485962034010377480291566731233773712944639666659609161790972547667589949288652673231292789602067549867371572089649378353274458047839917640535629435054167651296205362460011974223066827691375802492439844388709501647096560017481795696895364355379075208464830008261116719379974701827328579639748829537618594920078056959820759683967900152238615760747136599368492810347728642027722289876233647089144251095721523647998114768944689921341848950288668116104442624926491218562080703582731296134934746640534777357314409340521553737327114217701276400781956207262986959099125317269568249538645911065025363192939636994258301395627377603401293382831502234247671665912614168496455350850020989434289195119681890744719520977959558664550362030346204475432846682633403704872521493484549034063791547361547121669390278466334124053828574018776376428866731588257828319758147073475788020419106562774022412620345708436642663672030329077254335356540475837997664079942826124386497018617840014493617295773138770780136259304020501954319711366637863341844236624275722165850972950584488917427507870887574560264233668937692547098376107188157229031434442453333162398015147869702434949376061992314783820772948048859438599944750399637043744498139476397295406254931392178398660489730649719298736763814262438156589843962869467292735911150915073378890389458314803723484075440022669879005524535812552821690888689418823470589221234649926705930010891024142196206518067508570787474558634837814231446744475121871258724146178010721102316982618636046622757627523475469868758883363445959553990560253740161113286694381353526001235811188248855432214399997673807487475221450837312305858350462729642695456831599008682475521738940390912612284263206312748488969962137405841067299034989538447551953062771565327117166521743675961534779198871009550214119428761723526556909134350069437239429798127318284266290189231003081476050615422207219892449243383603538092512403347667615634575637216775615536191567540226697525312683509518250782705416636408903115453439943470788295700787676003237147587920771530792931780810520478272409273043372272439258912483667908128493216888081539499746705230547685931641366743169332689995761083004623863498246911897026728201426903113460177304156221178010250028031031094606182716148697209264964316259487824943622125554010437179030754566291688305361706347234065344661322489777673823065624300235327123843622985486536248858382798431410199876433500318100779813138695027736110783181394324460077592395396254421234099989845484517201387623656877474400439321800658226811735749565689345559763096170235630819475398952630372891282443372442470221338943804817800263029385733032796229270396267691316012287156679198827014400082486579285710356882546073820485363114542907593577155095293383106133347581236710931318161336267792621738576923689497992475086330571620647115767065594595508750337854485283275886284639954383755764180619846322735121324373053702815589464840469141958155823650162966098868530645303268383611929473619883078305218673857963202410465427754988195893091145307275381689538572647745360595718208315225597173518001605125848576227863438679496993487902004188449804247461949532144714205863582457113222986799887370571647160156018311926103989759727909218991389892928947858415651529467878515832729538038775831500885013571561589677186599224323528959738274994588085082275865539247446784593211586151775343372049649000551154761192962298701505814180100948817204898035385111047285175303276372860989404129246754969027138206825037463556256744586991100311320153726588796162523300281071648970724859428094911718559451216523511628734884170183578815219187036203478985923039160705090871938710005815123926407249706654284702009817483154846003307785698253293116277123925308508668804939913571838341405011756150828628832911342888772794728060272912365284636294271918883682070810968343016760066355245813100325207040549853287539277893053321052075511035691706962184938879652305087867806611792640198663351428416161395331897503982726814012670447262537890311668133815782867715934335981375882787519609729080296108379642223595414160625869678351031580514026704704591799006759369190783826751288181999807704584397554705950550000336088938699768607951574445039647304982089948191288471061074178755745618000240148016276932200212631433218716091211936121582608173894758862941538538314864312071615902773563867662050425079209602334187117883983141269647047480592670380547080161786372909326631779890607673473472714213283929464482161388066410421307763510560138125261538746548161437799955225881624820143346749067463257592049291968271095391700992387187780018207982007806636028651306203007656716675593920144172872708092867754202089639331269091493539616890602783858207956240628770076922285128980138233674413529370325014380401650794884044862182137494923381882709346585628582952777469708855259181702305477513750945779724341453667622394567805509693902179877810781934474324962512189391708218263934277987659343762805465197334042561983043800856073369697046872110312793892895311037701464708620253220744652456500949961446449345564194198165262935902854297238726307524280029101267770120134226847116562847190492594489051319841219207241692212648290630449709422841658731187656894594418624333486912082533706962217420279075609446694387624119504871833880121794378647878179521384216625998024714709810247305403824380007296473002536130932894913240478478587987084073461127880198625074218032267451851038535867814674107232941863222424044440675397776220721917470855927443972868241464338519880673221072948768722333416520230843297092652609767811945118623640270586398415148119746597123931311305417113865823317535330925460680215777397431704371967899567987334508485725561164885125560257813213687398244886407577894054222398714103757100305822954401479861304178824689824777990145577393873213342656907843343135211758711297401219623872631984863213731222671565131782317341010065694868008746902044424425423323938552230170110972665311364562927070875622353398846986240206783165786921210079534056243670419726501233342575912285773321035104240349822302616057407040561391590994662677307869099164662411300224709565307551791809919614831723592685908119099773579764359798810219906877936832594637699465735081692076727610323423834476120645002500155491137362587384420200472673277501264514426391346800710332730492180138991975985077781489113908091525030421643335118574235727168499641372397647382033358776786680499668337486818207536241568950988112539722644610090600006469661982872121419959938160210336805043123863911214794686794135982062531700452034114184953878950016318294355699723814067032831169033841963266341314417381992429916122222190674880568779265760082136406172722695269409496994693977953344237527659915157748322965655145370831675419467934787913403763646041215835780421813338571358144709619363664654637852974138090195904151837196441300671700487584547579438843102951681986423614986385638894680131530001143076384839767340620328162486789371575432421985217168602516307960145214492992323262221651273998018711839794492193490438356828036627598108017408745511143006560083987934248605421383301612689453312809069469365294821103540802481343164062439344703698070017037589591454107516310579128121350329835311544002578057525596769852524158261694758591677613632736603772248741293125406154573298599498756471586961054191372441777641483154935726266775817848127640743969675202977746444982911591279069234781390885957250261117476493645545454871550386904608408346709525435546353371159929276322269144586133508659456154983850553820951157849810934548688236501804619755512766335257291546557114342146897350640714046676981245494675467784141724436051571669379976439240435541557039090255890032637758148555057503804656158749695537921466866253653870126423911112436325232718327653898739766807967307715739546551166316236776561066402365184390452152019639137485955313164305542377721910783096808999500802990394875250993106724232025068482580411959301067354431995947651472576274170720929893065801795937134881447856985594488837866686552121280085221494378227444679440263750454065918572661085363355290455614303977912353363489358213496574280015900823375893012265773477255168725772826743055842893385047061546697795403657359651911177469416812317188648795721969960826394887695824710001010791937639504832181307213800074587266779554811188068325595131192929412587380257434416447013731678934979997668671134971038241439149479080875024640065939967049339292549348500479354809192280952181247157952867502202742432232940256559868564159937681635091243355074253624037554735903964807793272305801363019450803973366625207943442721185598475157052580435831930849304964796681971372488326014618017827683721377563978798866551192446251291718529827951450185338432341515576918458454786095120941564367699698533341034097983657928527651706577911699555212246002392606710868200810845620124699862475582532503878742504505778565642480352474957725678107406904172781416957165402299602687902018721394095600522553588859592493078089579457777052620429473396342075949282695270119374931551415806050094258027545145339683959870658634308894112883782586981798587730922644068102736492422478740386628040963514918325026120997982320381348360348741356476172379887395055976720601306313539067721159258830645650745734598797009815537523875972355692040124920681644579904427199678466530159641237307903618390324152057389937147411510069958195196390196049789358307745195892043490380730418645162777690310940913747823282813257907616302993831864010315162856288253809693098618529472111189336399373768108225484899984979011823919167216372840257353062203331061281387027866195841668831294905101380569294122791807760348090129463367721418133406835474215701087556323472260639848936412792400172779700902230600125736437742261714368212893504695305683344393770761781955553782589998637997067056433973342530486448763573304348179628472479679256048608591322000854308801875617578992531183935606715439411037540813240518278079248587904015854940799781384507621778322219508622870390115798234910832398498704249673780494026407236249105373014416829250215328938334321327696832902347209656616357938190601376589805028527154238299975919974772574663352350671570919946621897422607692934690099811091716763943782456121954684480835091576317155346211287683660076123058471200900269416991765429200450719499868111395583903098403278035337966166957922045397980064648034610933028095652693370277622480368535042833543850687017836626054325178549697535620762538208397032158025127157580179590621234617982064991646063251157783248474539032976825403698276454141518329655155688651396720593978319296574049749877714045571903175083961941690478710956471300464394625121592978363499277666719408543407165883452949043954804282057446938524901359071220843897460656098770923411354040043418232710752605669704683592743080842845544978885673355597149699571944500466639125510247183769607482681599639868663143129808353476853590562318432406135399453954531629333389780048197789332885139630585666752147817969782709277768343094695727465683470816602610450602902676371704884900453635952595202934329318185327582174470098564324222125163290423385247343944006424717673767208115087669976566163370835796356154562465733100494733962886517815446061140095743385096607550925711276136178831553822390986334869943999156700192501507412991853024376090410572257034185739546461191999243722743281258045563760352727487259027644114690507353294189856102116955385854411468739183684184059623996186265552916013829669640689770261543709077243523019861325188724607773341277026400848467465684837467155548095468476215629612498511796377219070912706919540513364962240630721594959456232378025810252950466099856074232578007932010716710760022459456684861081964678164727568427997011721838536270180295192051567716877190699943877227065373577011656300295894334434572694291308285114849367087749510798354335020472625632686132368416913098890230688041467937668750331190857752282369887732488243694153021108031425460563684047130872335572654791908085577827220609155060490867031326611065401286871745175044445667516638720088580211212478419062337397855011609770267067141787533594192622605037134469787691231891279674236577848865768607921059622969074834388780974722381680594101066394236975611752923494316391252564196122612404617989749195771383591927731600780493878667745303981252511570843337368133235982397964099461922055765937517351995079004133617872704668365885930926997551411360319999588147202597747166237968839090144241514336320980537178052918379928036191071260142244237957895179430236484264570877456605097573258540448846158841486113424304103321754398700089557843459498276307615567756959981433409286177563087687487981758327549615116296413182379984531567837826626498264094926134923956477759058860326568334747498838238900197590611817668785899735330466955377349297001096153225100354871237541135491247845911917233327775344505911972815002526209978190675827285983507215574506615739188285054221280062796420185498487349887686316264004820195918540710291859482638558744730950409409660719345372020447617559904286201238571550050352889376919122645358931905549859368393310221501502251187416500063617405985673733499061017122184692590008611879112909576188639842069061132585489969322134269883966520480278300145594850133008445670720303867439478262610615242983497347244761648891434970398652224166059355653811948108720873512385284099831692662687312028468843006843711544991166073112981787785036491587789066865746888374192375267632593462805089865005382499370711456988263859296861080991450714441166479375097910859733743933867880943677424882028915474638182172604444668143799770468481018909147611701621842349638052356450198527691729557971214213905193076296531484030722006304097218175440154039292292313989249041801263256605516226052031512333927802707638104247975170553261851060067546460862064922897534100717315949204779430916496399975977001922496111625010419112035298282603926777185554696243120992690663850942157848146638361229839776771190848748813896249635713650120100171519230967313171256706566785470564916177872889464305304378432392745476115283528258200048865686491842741385984987680364967590312783838071085631543714041211129991175164542344767904503253808202812590997401371209824388745482852182495512303450467972086605045090705686937300677449716715746314407806043261107674177047156871151077422217102583403102586330218923939397835772436525806964254626595306970134293440776269181504738623315418305954287725156763712585519619469901520293125982246766005291923094865075984130498499536231368318406875439323793677704425554230816377377991450415408244977814589742721706569439153718527265580075506411686759178353644995103473695096714556938884856349972045050818784306416582367604784621424847278967058151834392860353196153586220467130946913241999824464276924669767210384451494653366463569028342258774924395560819151040754133583907107200594580442665830900378887909737809443329373951786380009130955179600298467847189284043318659991931513457601711813702327024060476150146544876221388785321090078739300538738222137447568052907826380076141782531140154316092825477567555404389580263148478208645924675535337516160766161295337983347077400564742304610148322215147459217353853103032463837759875061194508474967811439083247712157692973198803484654005887980487287838915682417336721672355423267190497129839918423943203369647617575671466696304257147820304594555993020199002496755536382128249782520585856354786202410869932068351900531341034426440334782284062098637677984933629464594005517137964577904092720074437313210988233807270826181512186039458569123849234008876144541805832337017882961598415163131487848441489705225191600193095028703227169633416395833195842419760238512844570121615302159259754752688683719224749572053452595743108568216262195406258027322410025854195070631735422924227549846021263960758481357709550390731867143739834109921948943658575244299282895352457453972193941067006095791257838359380864628882749682046859458602031485180866344846365227978179639772404416586487128689204437649157538615978483768867677527089063228572423699091305571159986187137097448932609056082981784257408056937697092880172973405357822254977577922354099780506291195709083044592928991824518182338718917285656004919892384194369769939162165854209255884410092284124029868760930512753957340989025878707210936092644420806843715672049190572766328936052371801152128033293274664166652969772802950188095154552907531788648089904498483837523023886401350597110115987881167718149722092937326652224905357660677533548828429100396799905770509387021245875146860543216490770097852175018899070933480169965576702992177848540756599730671836986677208100958502307437321054978288852022814641670983646887688693234794506599957066435014207236221261685731171180522138341860784931034717389159614719057734863322271459643034391145597652215801331245433379231301873659240192867192037976931698282338561966123129376746348528706882733915495146233448116530628977387566808276266030623392802575804710833934978471511712294256967920993975515001454389708709572494811382891611024720657703220216363329853370665679352425352507052291129742149450875333379653531927479378611388900520117530564079137367421002153219052928976049412235596114357847481552375824114575461246401577327822350245541236111185895912374469887749428828556418653222530588882421937642049100330893733159510585453185196520064517951898930323799904372022949644076505109036318244054814040495355046396265401251512519985254098282809060105505142467678615431123282523211891073395136359571499665208553031273279095322604676822573886796322880520686012142666540221953018709522656333474924659116252089345175684428020695026913924146038635927188739280946173502630100770751500994462250115052509531212244087474931972327554897501158023511941819583799074689717792507003548404911199525924061744124410637488851223754819781766756909393165164667391754404417794888872407997661090508531338365557596239925309120070116194637292562848627795910467237966447516822247222816601840224645986292312378252750406321421610839217211071772003663554305951408556382530185539814419071957414588880203605261192408557143189639171740451160807281857193216773579863457030887885116278019827351471684604129310759338900594628608032140385357266489446171887732661197125626327998631952873477292272226195617267264281686648253292919573484278708062481565510615696748562045565540934317156644370216851295262410656013161738126515383182023712940294883963215771053033718517650239044809200692332858826325034841018689673547171754672513895008097280992269666900881888855840425877830221830125351009137308971201759827386372925963630083991528972995823614762279509670726384248085395836253671062730924530010782970577819121181771989247792635758150404148437165982502381132063665744765261401679844762099788652328255403848060008041942369465118766042685146362396485315587819126929031103574001831893358492446501150466616557979483612664823187938730962470299932951062180062541669214442309472724986710747305269873846511977875751227520981316369025837123439252015273089592808515266485875054125148209432529474611431936640575273335856190922417482654198351091917871657718264567636157918985707045517031644386745238617740754979173583333920934653227034457918722465718899673912341466149534071461817224241644234241386110139865446851648354005870773809280598890307687030866543570067705461764231603115911140122717783327053873794645133471883356894273279151862200754934001325855140337171973800303556663897549867575022968640637445716414159134642070664633040119323217741424488654466263025834639789900228529766146788439388749378742138205696315586536132700878074762041646707319789304312753718913860905438259644317085311345798456727018625581113444642660163674424420606723469444279959192821954259304721769691649154692788573699736774539945245302233876644927012100479035823360990974170344128007629250863269246209351898791642800554810717697361242739053084695192948159342840740821367084321267634905569326327245688989016402441367604280655203540407274437838306949540112919865961484835881457615970682837282522458128605989624931835037008476389806794257220425026419858001164513029188414716036205754654322206811987797492485172137182416301063181598501175818287064705317580406906558331323402132572734460812458051663546957261090503676214998979552601151323922408778924819667624668695004887047867641635119213004890954526682596430330897030291847732206383658727078531025522788607328972531795093665366647113216407814440575109296573890015167569311547014532493312446442350513298824755164235405334117344900381417467315513577064907995626534183402203612440872910146680931767809051576899237493824652562876449085219383317870704451229380738718117482513998486594848288477517556065507765172370994447744627666961002002074106153716756984589675919850145186871726248062643684410565878974509315004896285416182208339003845224753774857859197410219019710653629061516337221918842701321845628508574022820927626084881122588966723636874174128979227283823031756817080468279939963404667117303584159344379246283422152785270881792398404376201912940947017756602404232895309471042975025329970229585438325070477261189260800646470866436305827858868209562104290293658691024415938505336652917788332395966937197764470322093645002570256754158050435310937191167768558958770367060767243387083450032273034436837596538072789364583516825976389389107400725929421663816451973946784652007945975587237535118767209589403614141662502116889934035867568952055684055067864810066943734682522014215061683364587418182111980890043214871458946197080100049450368691990830504821896241056851615076438619621013334647711746232479737228471525481247687410956662461623945945794004334802981992686768996554084339201832740576388440520294386970091523016933970133528974568418760297815762476225368552022248032678455377253829810600491244229218239832702818731987122278033896361558599343671914899774549005244248370131715488349194004779577386102863731173637281824470047395430080443706723356899622221199208335478149574471709752528400142022218340998407269178577887103308507515938717717420524712300123342716394663520435315183912031271218654066688793168868053556810997206971306761248213870013536224726182957108225907103020025269651524292346220503687893886289558787089767689838849519878549693686166368650520401219632213650734403611297854528697801656791265864348586913097524300725930677600246128478900308026676988850676311206364512850801346418049097695157440307602717059554594210775371104029143100409641994965886743347689981647383035681693689311089813961071470059122747504384382217786081165067356736924361863418520897224563189997431833219616768383545768290054205483443144039378588814625685416367956842768460044492887245417906062675929101663628135340412986457902777032353410999361475684683016568200009821993408850751918007625612830915717825131864329486643861470939040490890768705674800534294599218891931042192668696067562810189101764525145140092795149861522337729904577701224243721969053365476336112117538252201593608008210661916582423606742780968953504714294082805173887763784690655703390848268859374630850554700606573834474293261472010154179989648591401265243706787899353362729488861098313243949652618312955203704083496579501469117766597848869677552180964149383463037294392066165916699043662145499435998920507265807248058999642391397757529929483190405200608517965900976035053924213191110886586825463091978445620369998057570276982572007752236261863516064295912703858099435817703571429033430686116777863333588361580570122964134069345928358846263557115388160294935215404349489601545953607092873540157376008543767319496680240900829305750777398371416689582273401947046372765855104517045157213945283460386079936313465035005863392461156288108588462492090937441634526961134410982716498507658887012187702872332284878153972452232020012467726214803404906511285670164536658408582131257711892440276782821387403768272378783424356538059839251772828488675413381058576633818191049168325114219517379975414874494600714658584706696208247780503352835337926565783912321585215651251649262825673293807278511604177364286242287057403576472553246503369934407309685165146261518134804503635982025508875565013128711603674755084927244134844403936085616995472130832548869263641089516441374180703389185600321707997891253150109076769797064810659302755096025559538694601002569428098674524343766324104144649938168245738826959071117790590071344654912161267306278481855833488932955679574239412511772740610610891467677284352359045844287083258861004454559733754944559984888143969022357699908088960132368058082420670480180697716123389385763265510241357908230912443654540995952393118567299339434064117665978010805279848232760364553765847970030966577812801803575137929160320897136336821354948475069192589114323954950081018913227643467312110962316683080602991637157101635832457616224895488267820662050706737925908865038272904432550327218039070905699296931256248750335365814768032680861100474006518529619975300922124074502197374089160591482374970139117384126011398363531454173217962058214184717548124934954614026390796257294668022467439202127270498909087488427483535100398457190668439145797026425649056468268057727264837840147759894607760650130328078768662071072034666964862977793638104791142196015801664282051867205010845163869387945981039392606603840055524776491708948974510709167071699135326018668892487920735720569624819337198196659068783061051535624568604130461934659081073897777567130677079579526542988249698162067059998509760765364421450071732348280429362808096873627663165029373680587216329988421410840718187083278411170123400739118647854706556722064800609017242239033994540598461822620329318269335672721681867061127609900155765090658946889713287468392661416291792646408698764446181510601525388861754564983318880931999627899850200305363749592489059979508811633331530983733962745196201558896367503859561999244844626648436009230403002895903834099062691077156537118715689159111782698785269663461038026601245295715891277354986079582327743309091670037162110775205980331164375418218463821311156521096749611080265782584527389889807584828969397048853566632025885812732207720051756544213416657350385608201578827809199646587843841477977513445281918798211028962645756342863301210362027145018477596362825028307631446050139858710209013074402348841920969035421184011468831828160713882358980113515691567245858763371848612106097388981350079505706374337785517400619612622031686603457444953220397348426088265563903697646342464854983928505372066125188946975767897471695303855276538785772466623979086389873625410107021969378055415524807200414587587475903013919271473699994074770519219008845166804696223533746043377831644138746179439662808454316752318072629431866727300136949921855743885189220034053412243976016434819188686799156562371020042012663443987664772993516542915173551193105602692074861478232908674703600786274339402899362479442986879988339038371539508162051239599519034239709007877198072004377162132949259328033513398140047492811338169093282245100213711093723630321682537785527173012565098725337827224596389567283607235182921659348908483174646651258142312491144104713290476144526835847259231807821691408793440217603531315657207815796659272111448242225612212651274875081180801195301317579530549175151352260756347798841671411416968326876784780274671300060380383469109925949861392622883099136708504988181207885786585332332574260778062901038181780749781042026235769470867470273871961182199876002366679543724886503355978531333915678576757578857587824712908695766567517347522194209713015734217488972008339557936054099687386875863878962105113661014972873912149057079589976887131628567782975456639250227114173186840796976467079368133477877032299012015425531518374216786624169570016769942557932744055589729957703923813108743658608446948864785939381160842309909423429725200782714845142018208222201912864896973961020804940785990889997997678673501231626208718934366236772836707570887051064180207282931819965302432933913988598085322297345076926529908975602013956819879421120603689472593639484260832408391647241562950244786073334232975484214942389281458829670826708822734226348183601336400458373468691084694992000152051164230733767803383060889902618745988539157611193865596475543279318047916027258302293877182387913993884858242743369683813018421030957989299413882833781350753495183436469174728058575099900750246768244971204076071752188499690119511459867254367390121106689998047690979289089560618997195971198833116051633474918306989593082750262603519516124368143598410639306894987128325023338543440210945743078448732881537118836200560170758264915832087883090493190391489740376591718635644794795665700430337149573206132653385477140884131336489518019030114715362228409876394634251261128066368640894942299707251505719179721872863900632005006748485435059504566399485996768559095220785895947717384308924189867628269740236155063637096314752350977349353599877101418772762306467642219360562673293588378993942695643450968342167733304893444400073364165120945251817468205897838925412142952368575489604751145480023369747019415480561267448973522160331934636518485021492581236065121701258451945431447863205448036050334413424445869696032565300049617580748705371955351033247219595616327790573909847678803793121334450106674162971629800464624363569541278868100515979826067381137553323244888068457332484470238432945967834153079278543554972078377668684267640103978515987159254226263336346188197205652360207642896957379584266747205573166804917164009069207163250809263934266841153248072966602731898975036287966991067565287413558026000163807413254469988752388989870638605993126219101739450840282670687202545259768614015172714543131044438936768317027194328870084655206742895828301252147904194119787423508996139973118000736364875951528379359536216131118023939840274237051904944906764611078059518561402118176607229032435404488944159228489139133958251096354227260069909413074168272481742624188374730217606940111854688625334439332859130149185832184123657223349443564074941732458125347674141177272220083594634287415854486775025189656181602605563952476744715864890690367438995107240971159771169665399740859747927953050063825397973076577011666244753105033407729363023558387720198982583244289594607045800510863813384154982644639279900776967606250511159398751076174636652409717752042529559708635633464293341922468613664431661899910037108500439802811401643546191182667454190257125390891222165879388336042113764567389464990137097638597372739748585602341097273202448715477113956253245033088613142542664444011727141263858351099566402510293699111368920764881468025050199069817705342519817788383140421836745613450733792883134142360841702340226359279477432568802053515568434783091106565067381067076161317171062190153815439491223167574959440429372933468361064859620285643092285534670835923865894979583052607635869735478969861334333319659718217576142977466299474991537516940075939377380539408113244905236967710038114678205446053476519736351065724195656841158388258360893269893512546799233387906837621116997800465936809297823798021882930978411739443087937719899245034894698110016659110016980872100170405349468067172226624523051202361435729441803280494953147097210658675247250521003402080645586623663141787959223315984764878130534604145159675377249196762716063449542565361843883559976636759643589983149048323266222652745363578395333268785529848127924712015037202842627874386871467717237415715370522237919036703327758046335657277361507858555080021336499900119474604952025747482324913910841396912099077671798261293529880458487205594837709008467556414167311631618608656894704555491085047471614330437901337349518084393650505461065521583082876944094605224662246624237922247601552716206036568523636183320391250755621773041392901896761356250912981953682843611236901405145982182915797023600055237847537849333536676081117193120225588941161258370833446835740212910316235953162458220761023012302939791015007654695713355912892300062716615154522584928332861430745744105380744623571447085065840400205482671902368585570500060647639580151496202452235566903479625919661485493760360757895675685500914323075604167509802510740817892234776656896075399024330366208160598295671855523695694187970331823284268260454612294071152806218706562214349353129577040900155402594037240756542208065566345281535141525873406297265934616710095272477716865400624281075337399755610040114036352847523077994570872307123493798817202775663723568195595277595951225632183293470933753659468216159003858494228661469951177620532376823577416820779024447371154432791664140695828528995218022218147502918724470620151760696798479200072119977627096067862698486910409797192503598046926692053381269293148497590621449361579488323294918122923253356417411271417618100114478258196867230611091373334789071675975905283397918922111734086577252966816339181050543415996683088430634348262405480642291164670834146096402536617727468771942454894343154194357537996695803053503314803576084099023519797441180078498165256815901967656375679052361980808954523081680502154693365988141058376558608062341258402780984780488772925941369097893219386123639828591211902436672341654643965957666087657861416911582732539440459816396535301731485202570413212193522720759130656600744738909464577441006230807081001279164131810154584074545269119158056644596846409244544121290778221184136691413487800237178223155330872117768700761440990134503896112644493451391647186581058549441835142622995635835297752870677086879332236544173509345300369771803372374208977221618741576302059989567666517864244407674880194812450744499088954669616686158104582271088276374869673900977047623999251355703014246536468249892344167597168843489856418414870744183062328198886834910698268704620502761942671751872422939592994579642826201083900498472282408239793968356517510209967921747531049268130906356610663993275473939353477703714992730225165052818773805437120425492729222704853915100151033970276055292477883782418850075934825350927948761148645342956195631133618169348054605852096870383528522621545760135390344473941109083363925069648006128092978168671412841247777667443162050170124467738162915535064346938353533985540290180028937615479357435994156639747639084071768668100833175209814554599012450896013935048594761763016487633264125539300176933374887375211237294715452059507559235505062450021117921046108752801146946839324981655510857111588414815296001896471044662075839481174632659844690383874049480212896292603767645699465336567770336882668773392853087428782338009203933734887479212221602374776864502175142253195680406094224342585785139818028900988565238589607165117142417110572298728976881044125100504645258173820798326562458444150662837739652064822771674142455773865179921975479043175555672789541201790289973083186113127229126942595662209113109910536736690763480901515185222264920758458073401745706557138847685070470972994002537781298930825761470921879146023621502701022441787155720219239721174479927811279644410280595492475490787202909636311844598004927499931297088632071740113358113732528341769078113836611709318618635864468779521457060397831885815782753924794061797290407541707923861529814354928870168724449360588618853427414341953324679283837836598916892414322960991543782539426025692685412542573752780093809761275126753674331168098203762012615778574933727604720913894411930521580183024085609854319532841284509581066212194866202411460009038917039519525092919485272559857115819580461428604769840235921679413609843366109652565022906124357240884629210649740462424178789134516447246455501713159655541672079821690624528722310859806424025310279659101506724752317932286607286555158088618346869367362445047262501483633069921129033981784225726238503378026084202006114668029836422149718638191942853217528180744734136620693770907822621788818877007561494450127947854416816718352900032974950562018928443193348886298831703972202005504590010760667478676028126019025303890413969270380935267460990029152914349440384047464853570677325718688617993576193625871028448749410797354002749668444218640826169068474684575422164472388935590448416157249725650424541079488972276833619886414541159858056238905790433678363598739658248672677360569545527612950399454983203820618255263974758615701627175336313846236059097846353927689998477954825223703301639731097269777419503733026378926982007632123862754149580458558676887078326813872045114555389633000951442539992424279636950587695225527000042667576261177810725083114701990615911886050160587651549218002481583514557742435678759075647390625580506054083056447746942589492675160331763131930380449039836013598739415474944909375177826836734590954774062875625097454311009458532345078611163181099756429528003890187894640212730147240519704292774444337552833596328841462597541708977740988199694486677095404987004841393458362483940471524631794543569085697089882274389290980492651925951480468508003658585341121383736398194715475467852275637956165272792090176235647760749767215307101154066678574930728314413270568060525771298338488766680001794942388137024836090144914087329913724571004197919397231733691774117853659844825525058702189210907559835272061672372941438035733923517178394094010978455669257196200643143352699168090447319488588243963345943225114189173227177613121332204313025750319148884759118813056673699236483390820892978848888851887570079779460932369322659324053525892485264608385655898206776510281137640583746553285016086196849210286379914774343353807114424195835703548859610902434260709865027966080199139331438223496333199598755717755545064463515999021078844633971699331400066291864471147748104733779125447684803329044006047373135966255656114495640769790017138985373401856132552229281162498782994840956652761572532961798542610275533269812562232474669307014825334870037109895171472282173634932874244844371770774504388863659609689302505603617016750697596792353895216106106497628178925704544167915490097287935570612360100674237092251134030170364676479073649411542754198336394457993825261009020587238662630576050850184676395097834222542372497119542345504848380845072546374120523952010002085123722530531604440664283034810772738253191440636775468764315026061128058282018210203402154084701154136125641490603356881892736061382898669012788514101642540495816165841630542011074153253803518462587511544275076118266772343248414087264549189551629162475757113960694760966134835740318431699759955021012156598268213196602374447107533082324537736380955059307473258118423381303782594226725851133185027047963199595708017427938765461337048255359593729835268266664691437973730652676340292618936744679160977968166453672127047852690850456759605913741121925102489094810551343553202522234882789639017567678432141082673394120154163550403418866503992769705262903503642950626618290005025505465118302820467073116215747923602871537357290094883611652153295952124214364319558566778063839774102279826885086522693461694006142664947797516458800829067878636976015567990189914790058254468542983714518985768964004918298835270920161451125439241547054961534084961558501389745720867228604051361129308321765318625758624982412304930412959356321532305515412766084551090707099495732811190551323837394901120839565565603314855227707453737041123643513395510015147372183491160382691561198969529423195479798545329010910219554974782009157483024168853607922436708328606179437934580868842963308664786947926095094763492273453333780837007153858830842964723822702893792431166740481422108358646573276960177659918494473217189353207004850061148175967658377940855356575579090766209894881931995625417343362958376982248698053308865519468017157060411049284658265031497025954439319552417720099048782052308265471625829450443803423017848796312078091139134810512510220659999043791765545197613461220769320118256482917042547636555191421784855521284690711888141371929465991542380933210600519341968778052428117935283160708373248745308165363179070224013577904213946160417326077632498969171538337335807953798855092008267634386785809140153984790917195669216609284310991623051995527191515631120765026278625846378727963302482511789673161090019087349674653002076802881195602762009687242745885061448150783027336021439803401325768767570397613936695949754928936100090271380957763520564922556875357530382629983055957018359822496302741975892579644127625087425348631570123652483690655624283795752048682667403180026744334166716814881230996994528354022669112597299759487320972797061593280645542975571284423428823659260451132689321710066680576103982115590046808856513072201949352700326752953893760048611283641941533271252471991902469840212022523580939675061878280985172451493547715530730572505412558094806221116340978947992817496171529723944043444379030137506410684043928410844185435704951445901723117387139732776115972265184694106611760641088361360204698221894510317684081340743121614724403338230211469227921878565359249341482874632999751254226913264146165606236341314035173311742705064238182092383476865751972601154994797625979928385746470414542288269369308222307770331285986763450153015046251922613874443369275651849419926663953111816799540417432458341758256048957861793434730932165312944331702465676894341628711875450145749862391884609867584368558484919393092010495120910651194815116334977226092048699283805758680372834433105576391793001779720654241625173009724364788124611736555873339491101345297419220456472368116422070654772415259227692477819414074538187962587285262118626732902541091384248957250035402417703472349822516922750136910083192508485705882687043763918153177521407778762950196198170145551329022600914252629573528190434881191833053569947575165850136735458967448531387766577921014426322029503598381458322673642898953688340775639114091160587606676687799478893992774298679327525633649958035668613517900293590068324399550722172783020928839314795004139230655676917959766235731689759702469657194844035710476803629422777420169746640052834074527907602136366307234258872597794245800324791011561049515648751556395818999542875323590134467660736916881434641663707591161353166714572052568229086329599827023468683577288143712438611408917758179855420665013480261442859540437774774595758883692717068521959020038719515895928233908913123031793496822778496313809723479811342761746058160116707014818914095378531321617443808066930780034282077866004325949283720853668099938387691183360652010056761187573669477151930658207008481120766184418267027797410485603856205491266106983859173415155195305213662196637937944301348809057753684409560683728779845608906157574693311247161905113277136802597796920672592128832777876634403804849928025624930441738498201808769940562445117090888520725372158017141297359422461492018607102158364354739745481299201705467360237372253478779667821306658740223814773953905494970668328357448339664439541405707404077795286969210266719318481068017432471412136072842326822340109036514358620667076371419325390479780545384354168560788085307851502356904216358504991269395399646995496972913829233143475448020040113423392754113442111698493036740997868721881254603786546606052640246120687692003142555656662452052383707922280414338042259848441564479125513308665865668914468045848681014952961200258066353397379576377193323871421375196328701819961107656789118887938923902717055554514772239428247553749578805757844812938056484796314502580494916374429826568851208949601213744265181292584392024090940063573929332983075232416213882208607431610171239565844076067331936833198062192635536603375522539316404343303124524275243355438295920065094980197941157668160067098044538784519985774641813491192753598813552091557026508379986946427233110959326226888335782411123577511993176306310441010939051618612531118614408251947672676268765321404717322639822435566659382204115475495908561387135620814358493343686751906276252411678143553267346226344579259419495216960952470403141915169883329370281593805416155433237893840191141222547515184111718324716258849407173711646302381022512697908568131194724499949085492211884223594235386271528818726639383946532282118146953598156528002117489219676737254218320665949557854408562622316833726617069639465250268558914661574306720805664642877103296428353147343026181985319488609575234793905244174727163380691969884863936050599758849437342706049666176342931738248163937922396923942101001318714213300972631039921026254726931102370005480800799281518209161239707326980887289684897266071105852180967956517701727229126758366095531907507471646623102894044938354971488399705256321813078112307788916234014263877632224275956986885505646666951746759299153401922281704284009823557260315012566523095409907475109694602750037836233435101749157748451550392361395757018778608787475104312668851417224984795836737562940276381701599079635034329942191767041812775793106923858829601724678224656209477811673826387813356329958367035869224121954129633548691076738186493154053913520408317641507105092075024667181765801287560956496867293528607574306458926052250011978700378064775519773328846330047668239881946677848549802484985294465838322642319766340691041241063656444395339528218496617118563772698317735533525637300058419185294779436361602136757980389770307005180953824252325607187782304032047518309044654529190468739802591529099964909508312671748316825692360476831860986371100491444660282092322814217547345308781600119420037908397176683204372003241282008355700209693332255671897814742167212550704957939354072988436373825021117472336234912445852859415796041390707918884671692496129199696831914244754301934522726010662394787974052059215335153632751311922182242823625964451494402482795563073267896028786034248794809059296181881632608296400206708447757146772280403231519686096796538324721760867661892607959336447499089974975843047472165615138545817997809382419618538311843935279512980647982544125515259648715601551855037556554547563792348382189629368661204745564876619427793953977372597807555346493269162914482311918446598584228617632576156751146615386242041341415912528224547422742833753387828736545048132493468507228845725613533707641465061859470045248957012218638866551042959287823707520492386568991397917197111900846241843962914775066318174348938866015506466945247888666551819450781899641147112601501397134903252814853328861018453368499542422014139182491356618840730064146492488511781659462262145137543386631504841293024506517310004173229719220409181207613896166513469970325188728587851488555777997567170446080012428056084077499723742047189598284277629504312971186525568785189457925588503886139303942920323189876866497374798681173491541307978702888628507431372290393355112673416166905511541123319254348863600977955779098674122665600084734744091117658238098028469405120691174969389977362797736920225843639825746301227537583932980876818023788226690489514561054902934687918162833662563319852978890611493914654429636745145899278784046130854447317787439321592881022154468438872980214102360961565817931048867953883512655857602734427570686910706020572315627378400741519960063841536333300026057682271468783743735870154769910854658751234402719057937119131352043410981312699979732254942095931819237051309051858663097584429889965851026118764152614891051416226548941894211893579000569352946861610663819374880644006241001135617704909350508599680999231629044234229120814960714126030421069605681956447842875364589268221835953929735174627497225813618177510792164529672417798845613113010653456298452347082278456287013328504985891656723368239262631900015320658561409441238969320340756996870237674739831671052514476746267806429812792806742689907892448127336898988289348442340364692117817506684321514177508855638760178895844463318346818576612972002912286536692850809610138192654120599943414622216847963259645885920445546692949433015406722852620579031797919902880336130818359825415310482956984109775848122043325419475557521928260106290486703121340072029302290171099785350949384663065711339041161996000424261219330369690717267566457628307825216005090367863421371380206815036949537429259070693224473726213179509877846422377998359794735585027501261558610058110279532546004039016146638428967900875702758872940419276459435020825776187682151629602902422898040839314359117871349192680962100638172361675476214627796368523823519502010955701435860158112802543281557572064209453401405227836075919915709194814625813691054530710646475712443444154581310594935757738452166526732501387781811001941421726369298681410481901438580054952673605299577822767900391014531079138332733411533629914457266327530108817126319817206393508303854657547072781706026908825511695230044399384410941282866600247418408043901389619378999318469661356933697627850673137874519667175684503700320535574831143053729827645525730178705894026044996520912582785006073201299674280496083250117093203316902250563831288737200423737426143309771082813570348665463450442679923821159106961744054682552539700731995435986557279693453300070751353796655821783672873785169449195879242907874551428927429950307774013721922261992444000853424779348938040874268721765408889203284489699970559792002557954232181805219544525072338578164984173675226895894400305209278089421770632686131478576823340806941718553324414972329879972528203161994494202035867017704908718283688958326024371957409730903396807710575016590872065720623409193376925063949368074344695420946442027516523198839445323264478655964833841078446374416178972395236655777899533343444764625754776514599313249411091427235897919700583987658222172926561555897650154908458753219023768124877751896049906388771242889157604742126315192908350277686702330289741718648079986153651437055920933126403301215493638865511450785524913514500294925767234317284441984121687419434232430974131913544754891553961885950788058304591265105443696477464593608900194481815519840432892646500364201560230928848484361258047328695264334488994128529858732668758126289489540041689205364716894810886019425016039385827642963955835473186715907030698996712521077031635620146244522917046176162940980137036482029750971331994741882569621899685509082270706411764039465991948130099106374348395920363980330303617588845036231112329712162934577115089041357796994112552863497591967245094242038091248922984308445699168857505143971311087148177106587560721373719992976248599414114591970137231261767829681430961460041171437590886228464476056688868855189736634108182036300513178960670211200550802359599741346450861180268627215318514274588882868683864864343388905693533388069226969891456707130171844952723173557177202176218729008157227716567248648147171964984670660021881568962503697719751530771375134493373236286971858320176535018860745647537980846422080092431072922120291898755931191206130159541320145061366797614778187062664611393818221864209706153457426191620355925220604536645202716549373077394604769682573161337831393410985978385295328465283031323979208532589235549755372324329948245903216361626635633618315962278998181276611637347979433138651456062386605209884262134358500712159537776780110477871498762697414952097658965808829035869402169821243323090821788444595661160276137184658836361632642989236244947144454290849143353938983103498888432960565900015788554443408421949930248874497431746807523217275077330727570507292070769828383161854860919321899449947594688586512410709163425508173394364183995280041118848251349609685054969317656415233446528641915349801779312841673483869201347485071452233309040052804892950499021108318731412156901092673164381467452295139643277536634308023677175697489406395853835471865066361919672705765686675583626473945866184643698542919038328763311530029326521465653118553198757080964334613998643343109396676129554558784503946118573293111101656510189880098674506491861940870064180816824791694880533107886307121216793124204316655406487515311365003145742750964887244527245457645408049414697922686613407627903165413681309627314480023010629926541580962283042666464764308246955120068347796917490922058323338904413098862168779022880250330337646437113108473877216136676808023019488117167515602923274585078422974098444892423669554795036380706589697545767799462411516750214533765728481097237818994112718272978059648147181083385179044582555046414113048210915996839673813230902113848695078926693986900685715460666347194303976985144467884879393942548351262678532841504092156728967357844222935714889820875613747502821578478451177157427605022496603669848956278097544355994397783157478202405392946400079984202258539154948484479433225834841042858917962423089604672519379436291100975249495692579504814493280739323897772799597984062218886838839141065189998827303898303554293306601602173068422241900339379977424327829480772061457422959828526909088699241823684869883526084280477717301853766344740552718789728108037505327321039615197233390372054589284722522190993866354852310622569682360528112761440027529572199015952963816492813062292074591246077584493936473557031473532576916760115504775442174239092709802799006347360645645861569386666042687038169090644561368102969848718444552311570971257843653528856191990067794201171087890187051391748689979675336093519021384533220684632431928779341944990240584481052401016783626948303034103038367368470393237571584283676876436479538491195635777129493057907931939841693314483704088072736796374157189017903605008338758512205752659261758163380462651312654162136386935367773138843323529041924463129123370392168215600295658892877244313300680299770113328798705663932004400119248635512058518690042851865976247785602780232595528038971537358174933617879569497727682195226085150896779458297876405953427790808475342630363264349935101498095060298436309309208366634968715011042400806967082095003475746976026591125696175515887226100041755071484192160759674779819125071943087169037061093697609654824098639216222345678662981973764244807811119636348196924273711223352185753955568845785227712856832545556352076150313539196211204174478342289194272368931423801952297415932102804139730583251733946531037938653471643049794410951497939549042534856782302554657837192574596385015412093558497521285939417196491479416696610083674130583054061193174798790544321645917383228104000230684913964342332784573603827835680890315878407474216473888451469479609908684223865813413007380023107833109662579532183119348216600399493309875660554789238307077269900666933599535866812104247910425086369430352936554570270285961510357582521909089269646995104074377483026068291780118578738553629371762898033338414482232889209432079320255921691732117442575290994635121742241563569320462062118699183542367978024942590988234808502573393956472478597354978256621472622490049190643999760989960102510101745278906367430218428857114406448844648471555944601640941533641748979215620158061801699011762420488038469962187856460473851164390830651560943556472693799892411083516759280857372516824971482872780545067029084930941741624214744327223659143139432616208874774690192378338675272657313403391416164430334727101762747043278581134094710715141526730724487016732071229162343661206616456260298358303898223143438788056425219361935220899136513246924691761353048776130205118444783502813809949158252307946165383000256450999906869562998131473734530897254295522949040910579745020170861912531582676425750940347919463730278781993007680537497826936015176016933160409655728452996862461375796389596674262775348402408381663491812566103427729818807490586889970361179217408352387113725288868068449295489252663592673114650125059693947412339955037124688892892968841277517587220582714819847916258395447825912322655127993468607856984303213412887913128866998305850312485593569780606724228196734380294095156931135966863195057566707241902482710231699814205202687502856470802204245364438496300639432214633509902087203708287536422863203335732244407066680727325458535483623482384784284876977222049876914131876543301320848137311340918125830943302486923474141642072280864336519793789800276858456537533756841165931103680414460329399989308010769440684139195452104606225547418879529975815748598307609195860424218192432708115304308924915444080497185669299222716235229448852646646818414845163425509959773791848700979258915730939778598369219241720892700641284718685947936428395351117786549625160369062837717351328570989421220931587073407248979382522125003739143495117112545256693658847407011316555849609955405692259719902528154210926046723424805333933769654556570320658125447242366036082379745837976981860203956840865286172544339452766093521861304496450063648697098127314258648267199647185675331347394369167767673264126413641209171869841139922421817245803533649611014727662924795249977653652812706192401265467082244449361431135823519142217705740509791923552675713575065387434627368010208036516857598610605816806199232686010016575348848039676046288776700680496054644191763539163757971617292124408570766069174104619823343582682628989074188283528164684667982582466660143630101046438181271990209388634603657358324753587414581018568431191602436497739000688013617488844540489041918882077280437246150264107853055448124044141345875656885864591531597899778831356771739302301403321812857352285496723036043545570606163106231767600650465243544627434904962446619122394289864237492229001067304869316335194562763521635946420400647656112724562903661977253107230689373258788400812688469899460779612585685404341426217114106522675450644435313688989031470656037178838626249440787828173513494124762045123745254404041035592686266469993997449083679152177737225994293518833561852680790526825274281683303210099419492606884472473748152352463757662772230202151990440112431231301995047467891017769551382567139030139140691557209879666660689783137760920064478082494725728609722804632634321230681572975920569221014409758694115071242295127629900426472240855355463952016164895111732777167556059981472169884980162709279609423412644155365517505155085604494564917205967579110346773429639981032430890959565568229917324325137130020488001627799326435929456988877947505510544282833863063352013004206701426666117259193609205376706185200261034780550179871444747818255683370443147837884646750868955179044595689466053533109990045744674429034714837985584640265758494515817959754720544342302823225020143717499275744793451898007044437945546259475978987899086494577977894159171095313285620375969413781446647702823025633437811637187932802382350627020958246782276967451783073444223556315322364346632385230005328733139515147280025446305898029652093946538509616234779612792563360474734158460611306089968073821567917170104232827283310795704661948513091408035402616774652966261169965136469732284887720037973994163085578780152103219787515711671651719477586205255852306528604973046317652236986378440397996250509529260172767707781662957322333892872334782678357678675894997777129562617209459348119850767565989161563799575880079482249120671338350768135922766249094949740603736286311011292133942244895908940888905218512632782979836125923915500464049811512682467568797302552059938571721751429257217784041679890843123359040730404067343455373177308587853257333690303340799044359708093984843024736435153231817418106022776442154268485564828435290750262723443720623330116356306137775852538085733318191328057733941827502908768770492326757091656974896991763778293657780280765215292622803179526484264991502265360807480982325289255124311880387406892684415101552145533939050571471583455018645615726920915513526564012916364914279542648152443870606899620579348038515725659022181291040659618208308415535115621504673969248475591239287693879304440048623280027092844631977402997592142920516584506853395336992992516405133085633675523031963611009894511020855859236739200895531167550460362801078061996384098912603120739332030065622619121084868976050450818439772933725223689995832924856851230191747278226007762461591132218423727307070261019686139383268088668508147173805364125126121853348647922472001155636259995286380965667537927460313091890778853994114174015044848381834886032685218580875976738638482906862329035226718145583166203488589110778797352386533148195612691623554329775222265549896414975550897777590027179455631830713481292644748000571812739931505403333845898387716179047949426291048413346818503525599220283772933364450923360140230852748879765172983927955341670256838226722151522102461301500881017156247815743962501571278097369327004396576688506088056202970216526999435835143601693435051760670192321464787348460527096390036476572774142693017175846568981737411296394824356156858885876801725110158891896768568902642684885741389663420877538533486482377811407424345830742606393240411163403337757111114568046763141589783319465884998465220479296518008420912928551177062833984043315236893970703049427136575515682525949655556598446009005213056691314461897600736925351210366684916259488647429272923792317574802060977343528931790090173232215075274000880715585180039345171958986462678270804286595297015013950171803783179554575683586339719631789620260507700619491290139739900213772157749991327144862179265389165083213580428350854777995748553545369068157050971759018189014423660618638364778222320057370036850066370205065295895873808731509187237178529735359022032938654362671853890582280380834058600308985056940315607514225341932544193200986692756333248653869645504774496664586341555486341880036972845150760202412799113400147955985589108913548961026911360618252234112362249156317634216329183195219174795148102725986032976672625967067484716840698677919938368627350900123891205276175472461554024437354861389643921088145567614542616638452969108531452951953986638575215391781824856945919336759813993171420103430288252822238408430267902353801531457103335459544721298415484454189711985600605149103183669114500539485875539113948788586383963759074868578855778141880686210680901094386415194203754507541070395348359796762571499216508960623870083562185177011903412066763668972563710051004112611169982042496520884442637771318307886804138508680957526468001429663040286628293951513173413600219043485997925844701218811934687205876810589392180078017792257152271455764233286178287367325861227765283037980407019529224173323687392423909273322673138619272041210524390990278638819365077582270503752159022810018975501372327865525830172531321985755575799221529589796244262571153992915257662681612320583320883982733941149201183313878488852051317900096012650735438517740986856028143384450105888509000433055087659126851251786216352938783535786896426752512116437426490944684943062477469692728588916377206348119537275641407987952577827845132666542314583293855628702435562655505906873527648081946511823395347199927624719689084047437539295697118767782050009210950510928523085330902962995339951048725269634102376228468110906109413654105466476406352411125773121800681696213038937625323596643157603759345088400421422173479777822171779988034294728333691600779190261179792691469995496946434400795336285738739445196194895006987110170127996345525625353048566052091057444356014021594397751411952830647792642056848512327927867168520343442851175633167609830668635670371209270494025394391028896564385209348112614563875373979851857242455115371117154156078468560235634592112338806345314595498938853866186098940838841525762066498810515828045639998179866544241566902902745351172717257946108571602763683507873555771967120058270767784001871628738979321861465571442294502175627912740386095859144045609160100630648383668167150063738255637434479412413771007873421056875006878408046134855265604688063926730374343179947714781620404379863005241138783337651098989831468478110265247892811789770344798391653849345490829441998072071980416996807052452883414573042922978876010106928188539079594437545501169203875518361459891182359619188111578883424651051414402454925882046741975800231573207010987371938597245273354335826089963383337792719133670258884137765931774086517527992952870042662128429223102407613664016235777592186421337895363714817053784195486811581045550694472682816884981609232663779671058599743941869045713367602006914466442427012079103978267488912960233183505801922700414742417425265931620180154719740730527962087965489376988873869895927656046087643339619169743292869891364800107721006237326120136101383508156211259934440482612709924409737241327707140036028596891402776134690608610431643890974640910190340447208863452605137422678593959352530054791848778346170187220926447927189653597795371207591036958160624011325462195345940071070371931810621874904570900469491459899583103467373612351806090763353431969617578609638480252270350350318965675160570004904433677604498990030961261784857411180016845049047016281620591830629307589993324392474858060762909469988141048298659882362451773570985260653897638068748319310108260091384533691303071543082587891392351468683689278976393635361864590916815906502212326684447143512396659413206132237308870618139015060999073474871027602846473580110969716091209792080954143684193551248681876391845916757434718471032473328216668086596996555068928419065115885949165274627846215441592757711374963685929796885379977897740302351670321094783793545893106863082158904890686449839260448302358988516412873754160234003679829307451819446354352090404205443366830694818012217289015771748927456055923836052676154477384488084520707700442628748024536348991013938442443484826330544604288717343462110279484046829970205613036146087834849687586233969664835849937248302495086236848965067832250714366942521785408433457839524462128136474697770622058658450128019945403215301983773254535055304140214754656967684815978049640792103875198964860940403896228779869299725644194801962585916845157473060370193359537518633136986988599285206559662473035721558979254535459053376523684839471807358733331557105190369415149024248261328819266486322676420161655266532592914946386430225483291410915343669990225866204531266885692735720662089683426358319094751856327105828642893917907435787919519892601602372353259944365752860344921143639146222270709024079078527983729985501622117922824226362834729138283678233795227210216964304237120432843831193833896061992648593362787296929798282732408945571527023881632970593562677698129146992549051334243322258572056976131102907965886351547582533346413950960247291081614366276746277590272653586217574086134790043643291988077864792449307115976052518675430780536608080344786107264861539224370391773864196704887681938653842583402465804918167842274444646736993786572210760047887749161220420461895429919622098555935220903284124248952592269388652432629131555847682406782695788869156140505401742684648273017381953731443577806128180672038884862760167848328688008492310965989774662541777841062295467527970600104692118874175357818257943288805739379399352344316253470013095892056996647339529045871638233053200235173829703601310883503194754009523845761622402874805203014310082742446340628097511169612395907752341148451369126291222543290152576290313837344373951488999139748651952632068835026801163582830903535263532716757912597805980063337817954317461417109343404088661063675610962687330920065256831600888918880973386089854120400881347804561987869166322777457998298494878233904402115185810238010741055281744500936151766573990502460932191787370228961175347784351025121974413111268706763203199136567351175453394396919591986317458616816439649585592952026543065568624665797622551868548973169975161094859934084061509345851230745235367786930030905564374836984064150365548825955745101996147150476477906026235680828203750294042462033765088038590153537642652862133983941749888256628883694693069626227568070885507326691212106398470346239273928185177718414671697471610286799061528166003944049361662188299124650804100130534268377091740588463812513915843150383222662904335080516548229127895869682799336729242418943396819452185305674493254426593449036748305797097836523395842517875944789556304430827815463904853422300947645046851044241106525193810939913683903956591931093362567302714192813204894801386948001746050877817092727555057325485641545309437656347359095121128680198171925208436377599311617541103753362152912872034299396852226480045082707833851954546156213313499949033242342117692987774269882892320074421236175948556256448606561679925746229820719618964924637036043305853044627265265859421287996077784653047270681833621083838290328174525352631113902492763141180875338051566781452780103165602229103362462552520363518083207617051106128910352622074913162820506808181607146549837691634421677854107974795220241417930819107824181298528539655788043355431117966037647533393463636216831847641870859547297492406050015019362519215899174568559454576804848091059542538951945846870381391135920275130166144136204932936964054757628068587378563308513645063466333613117018797805131331124516453159235727143750725296254710341080507989664134317284993004653867752257513412130543055281459138371161106203913863267834776978900514142953722631484583406563828467951713343211915355742320506394734981812999102139346872403216310122941284119882732204804104248277246454011655352437016090758667392960070960627717390649832069892350664078656866920845531468223566847851793524338396969143539794994187952934464471605466715608256909839924988827192906242506826139210929134895632499585739012389414724800744941400712625329854229577346814877414733510099740028419444583521350293573972041765123989416603750120403946635922011564110075001360512438536268147286562990386227623931692640356280508843715268489091229456553511627068397477008446666990487531206297733243878942428373856837581222133280043567750127921030415037586934141622074717651829746690518586821200905155337223874395763266394698928447075473516616749085614305442954856724146743065224020432963725895636268207205750839396325225603623809372382697106267110204128476738636073123842144905806605255065096624086603023647307555745156833257484462001901813265208435863763662439033924431816263327274608609467116043072362040027487192285647381308840542903676073872722558122044302628101917843882797343908262368257291153803524335280584768679973016942821585116488791318757583066625682539162930034093823001283929365960501395168349335348318028193903955923561385802754561018318300751793337022381023083786484334475158966287149873525417986044925206936553451190838342095356460652234604539591318620660594467983642012068377125962399442570183681915677572400310178417107235704765267095939852683261182844436636211037209904236569316580562143626617440151134606930938383835687524035156579424226750777292952604724432892791633903184045869174308081958342650612102461377433134890675433524985996703103094806393817478904197642979769064977796927560806423147036446088874905236427033641282661688530833976393131419833491127933323423900008104085130803641521993662000064512438226177786568920936249749966759305763418460864871003010849190766931470809567838285900351065314512899450343021234118245914213462682533067493802711314252876445093310406703631719464628717055665454010954157121287959327937910866515516820566287711589711326260745183272240016035465788680786798638067685405723682529257918525924445526016826155991786110613146950828327805809875880878629433508893294691642075751842766273371422894793905221772139659975811118062503669006449935384217922824009671018881890477917099370592277661683955448172288189482676483197291388389674499037774681344217930985136325372086118533930038728011203235800268211281501255791517311007242419449964666484852667610022491247792256232000518975262769132500612208530366099706225409307223909937500022510971387036780117164493673143671352724748927234079583989429871171503751204351739711499699012004427385523915900938003903257242779571917849560638230415712627686484139183469936384488078115281053444615980305470971978093385531852010775154342625823454085673025566079906886695496000497056319384293770711399303226905248553630607076758479914459702128982598598507232900554569617251735742974802416240489900406905477973905208989622407229746807362447454850734253524109041849583159400718687869959675429760561586397985790268949640433530847123896368120489651217743165953614927675672363777699762019138992186245788032964990513908244126378647572350400564725053503719949164725500101351827026674492694079086364982555868734645482337189285607133592329377831255951767647197399563630003882115972488670259778562242148765360730481528867152814421981666733583761122156717413203009629783439882194849462850792448962816907012446634141127728414847559731610650820513945950973621916978630825362366845810727681765304526829407205732795563078563870486833973105984684855727441664675218304085560034754566263814172624653358684172849305242986514342688259547969765296659693038054964165009676062380078861999653180069036019936851460226453587923551823311949251382449732400768622704040782084667841233887963300656057387712473067005052789508084248219069953046926708621817528129877349358218720993146539221515309393467753935304994392670578524824861247260578646522511307946060033965370518099230569319453256298274886405635637738601076958811418320439815007044469704341462808996961824974133259217093376952062087400727469689150893105669970813368005049281770318342669623552751315100797231821367708962706735515624372754214539908359318766288340473641418091003223555860486313834875761888945127331041274915815231950861987511892026936999528015806938360116575642803144132786468582510156538883962727712323097201515890938858279366309399582098359188024670739782099214129810890240040065003273119246106924041115069771282547565940226548361253179766318162800094547878373754014935800830994691572183354616667287905930675417692334152206236391808209525262794905865231459680192031988526343725745679623665440765668159538573752328660344212349420650983395991473966387583396548343643865443712230850195038610111884881743930943417773745222815430476062993517453739406773915277982656058534038979571682281502340428841778258666621369298704497220224303484681885372425867045597862142044638708768402452617287648217210946184301224461622949369062422866344970707646288186231773883783579926094122186982230932885653110294506268244129758365113897110332707079356267203672087963793922715761689187888647470775856012499310921341512062398677971846917896714158828363150423716837297529180251289842915315678946381956130792567685736195987044400477872802090663380324753760306626215465161945192203498893795713548999721914579046585226980859761355712854338186102189666526122422374363912893108029031661964890284287240495908062471965988981492074731253996595575031267056376633633059114824434196551417196992231331582416002163367056053088741473199715941993322593020709557306499823521769191041674202206959343417484528203017281913119121923376074524098812097228725923582378281959597733383971079279623568508607618557563364660378295997529349808048858463276339150456825806272488916182653285550009605197559574701831038211680536904092509775898904034396258214396449602216162440168954036266339002758015283741193254567636402758039378648593529876234677046338566536593133998987408839491980346402123698410934447340220905570260490399457150366922644813161302760941635156325491163323054819592803233708203059335030686000916690693358619725271052729191839023560022260096744394240788977025545137612174107169140187975907692937939043639912381022376970728409678007863507110637459197468966334458580634427312771575363132221485159471248136879014647419973880170840623595259591697315186815961347285076634741394083174606573024263600718624575784999141051940147735097239421706638939604823991505644380231984396419444782172062387325930828293602495231522832534505757895680195564504598517023812799129956243643216101323590980509735983675374488211908624247512482089825327947181369886935802045938901715502089292856700401140290921319769664941684908365745383703560116090562443624513069059316648274255037240667046803420650059600353570205526934178903840959154662042218839656323031027168278136034593398192277557895044405207412392460744872682634785286371831781694782775243007895536227403283206451031045393070859261239054893322623147596426267642307248024981224635582692659329969883346858486614506663846412653136157011359676676392296239571699351326922993615803454186692210558077610488408226383471551806134361436232880887141158049929971586371401552111344507826867281232189685212826139073317024802909217410271696954400711065266824488384175830049062619357022568368150408083168669089149769882003973981800857010458642437308655750619371981840574692172088525086377756480967704019990693999930338022866246296053973578827381151350292265286299588449421808458488335043753886937280779301293440984682279116608050060747272640985355494231363310241359097938784111556119307151316131590026951416203509821463363995958463259036822802410903199510297105776884786429169999640550508474315667050838233942615673311492762058913641737803246609954853724088884333195441588593888258258375672259395830451540533432841439683764135185801116624147123829286465336511339541248391472098960864127965002449282637061465414451785029586867579087535848070462147812853447902120005842888367346865630272967152866189478713025714983916298138233759431763982698039627183471356357218988696386742640587773252312633590346895434149769044000124210912758197859952420646393130914779365881953423834466190733992961425285378100194929580946090301801450317957908016384992166683779298386940273115966362000061711652831354796976279284844814645697576322085742507846159230885439810434516940333310062684172729189549272298267522202201907062453627762217860044716107682510514537627138104411348752033189809125952052695646298783391156174402709403336004331427517222279503143988013292416529768651604576191541643998823321358388440193854647000130341009381859635841426757730252447823128160844220400881245379136886775445107878794385998526954239246109584519272907453434465141228081369759782949429103755643579578687023543165161241936698874685785951345498676940065992423184449995100421680877584712681826352694749674993868416440722538480397854010909216114530721802260936183146709421606722119162900770961457791910496950333375593894916765127613372123887208758463638600094921723923902892889998101134010529211086385737170092312991215869699917474773182935151280047511831817682882116914561384085719555075245038054720463971632734999285175235842769973013763923815990965262751767758293499380385739694292645023261526677394512119717644484035681479114209856086219078607019559829526297667981106302583532371183218675825064765416760784032699112824538588546912344882992767511174157845973695162539947918688935633394172611637927452616686362300174849377695439969264154787149793862375396963747897802930711552088125107161164595869849619753321071926714428368593597541468160949455490749350804769907794980032803283390787916643330319873700025852391727061083216454466226228850277523333304543362455950177395313690193743262460074001271789390753724397526929009748881501576610029156158865937457917053201787561346425938978610559228325731638146211731000033890386127771296455865467934021707909016660079356224159707385155537261003003687349326297265271859146862531159949620868095005885093377843941792273468253544377950678563091377002511119604289091999206309942830085139492141430026747959666738401660454062804422910953692862990009746173997542208419101418109234171775918565432628460358206845520416709332165843679129692007747825064546019535145309503330975755967848342936607346511150523670024986871341155749654089710391827278820033709649561078129574498552521692680607060518581867170339900372000542844733385487808904022429949027098143503526548809106805504452384445722306782851813997782058031400212281760877688307830401997590960386579763686997193017330127667548116028157325356355825490824549169669482652812286117979353568950784446276203200349247857039703394347026318346234661709334646518510362521468510747241476206533849657979593002113087736580027474564006986617432940446885154583484235174623422551488790649861562689892611369765555812968981746185909240175185752402730410582381207758499181025468074027556760825092103960287098146019149690539793088743501593774080759612831792641242880855415628019129911659331516468174509295091581074584262020798619696978855610537293341670368698877468758243284994298243447189501123469111454411339426511758689470091424083535497667397476846436543139425295734343458468275997979783677642497254292395302022633887353698554671431607537080789686385174689200677027270226522213190312858197503468173590683204818765885539077058545374192574393046950994208086990419876403716810036275458434895534162875603442271305357323426196202647663979395791747880922971518692099223931257469148457201337100915154686357038190085297718234261631429945997548366384825772417571960678448730690370748821310331567686051239832384066360077045727087124540614700681562777276351793259781027978503200481280732988297936750257871402167978877238026356455410425068134482638886085656365426564697095077394471752330434935387676999761003276968993857907579042604430714956870791180538646977218362698147064806497588601028863773231173365177658801252761372067093248701792754086137443066649293995292285354209602118552416304589161602648193866846584803747159845494927092259167100322687529186091283700044922898005281247231050230658010666470185610799336611121142089573703537378076325147939373691213482899328992686730140659647097630634691356628824837202906520479423180222193883745707778992364087410851080277774901307592567964402327239916593594529187056346962698245314417830392545901654279130108272628243836846210645674329834879677309674236539759508102245066062257601635581254339438561507388845001170812939273279605956246653304869650297103068940405458872204824835258837088164840644173031913313991087166264428597391448842448222320585162180790488583795315110016545688896274038042002820173729822330624299654303092872191828688117204966942525880677893108140651736221972048693072428135593416348752110833079557232200294210188715993097128949350826053312736820454710514737205361940030520744265020170252536699287291325043596808309622957317647766628185851431801858412142229891115876552377317534610526788412701085956705763592604369597212552831703411354595051894320925105194376253801980596361170660466475715131455009738922845874923017438393451082536205415874786634507508552996304154274286598394252625728773091694529384348113382093749501171953204549099474509153120189982597259986884772763999309694228873767527448341165417152242050883533113116540784266847695086305985419506577585335837670873078451877494169862387593956423739025548988712003699174157661731459087765494150271916800933619197475360531159388883868980324923994920315694668882788688137247716763660780124431067554278568752013497091836064486970291488566191342341491676922756874259374194916011596654931975572591291944097954466853145925518050810553164352579400733160388228255127136480638920652650567026833824500550928976902984485743763039086549457359304102237723813429416855498820392146124213321359123609929862196886303189089117655560224479792648680632970415616490912062259579441078781295430684297569953367129486259135612697653286854084571845338085146284257047022156129335287761727119799219234211668625990439447728321375393533138097403699645139194703356389398036870236868209364440298718873455013062040784394703652172143801916514456833293607989418161940528144274333285320065150570169354442391313051850758295503724422918623841899486451464429796751958609571791281636514086016863230296006908740872917612421380767274307112860314183566607975949607130229386777817212042532295060771649831098058186414834106560148855450060028466665460950519207441993645776743692650693264011743007897980519814410517529839335101221391509832697351009640495543030829174429510025020501162616331424268628041234646139475446159950036720524380701081070905879219500342383069555350452249801719188945123342443922099105398477093344424933110822022144635932810112890232790097144851866701499974861384547825743057410274271139668762463056421116688756895781252921619952369277736127093420536859225610946797557004883059969830725397293852154828585013129832698293575000271559991175959625780451813173420575277394250110329806146443853944319278780012057723465707466334422190735180060862327827389905752628946997431579523165090564739035733385169118713370262260589336098908966355087975892387017190761376701475940430550211250796346224834868577056390079563463019456094538883895650383356733337421448725209591353081720790848696723609452182311782385850205238968647081640159972749915868107959307981615190656822951765648784095302314545958307098829918574488852916336993976248883186487179716106574770249662223303166289748365634615834131501460449836381026669614784518570893730074551171096192398553795982716998163495984736048802704234950954724871394957600387553682048660630845361470720872843822932461435666090042759420263570044084870990862536297531666921089067107707191496894487578807677715389916912531967883720202622540458361573725139896799302414273371243178393929159850223339513337340188009626912219347109166226768420665326676994266487189383198468405225093034282516776483861551508176174093806813841758415062343916187910987073354809524999125118962798463024438419389129510577902218953214367112786944063027396009271794658379360525885200068635884914931239639806457589659765110165396848127256137277280570968382223167666172638299323255943807331704312557726417837820421147637622203045502197728596011843725761506189878724746191553236432953664524743400886034469444279345629798634851204689789658669580270614484364399976736282662659588477635800428777592904500176183117502002117001475562675347217238855632362229214123632747030139282268834491853536208488778250598833720726410408169051557021415162938027911939327732871456683834953699141369590263788727971531784104705408553437490537427362569289128516395672501852692087273002147846832332948329517226037783395283198055829233477961270520807840474682396338529711211376114408681437396826570431938591171174222063916765499328515022922229912305745950071201984995464915453299460606354895907422200734955419443324377239977252136592095589563710838451421304769656239789373487811383795542861544891083566579021313971885376275222262665802768086150045392307919269217511807655910573850124378673378404896477964456757531113418115120006908958597500981777353131241413803356129904972130309458166364336369642461995098152299003669860300512185593301931969522141864697525082570753843853939816023510078557140430082233038439862986264097119201817625871220994661703963030776957583675001167865448053877459201594938624677635988265845394430360682533448862734196466804900068094481716792560010543279340299084709580616488059237923264579683798132251952285792231916281214860570234850029829563717755730023329062119972370974202220394846567981329192651959995131505898483646124123277173253193090770488967642273573706606013664306699608732060560629078904698385727846917925936442799198558061664299157606568637016644607085091919237991315977315190495011181560034052307027842870730623781009352212062024691053959905630585144416387320734917080667738452103600650019966460574145823050377708844098615130052780802506427658568452471355841862315797798141437858987136998806033570374256539120683491064851776501240595309676496162338964518095458628246824542591935031955561224485285435189557690142993854473409297664833346844793641726465179408997031893302664287626444957963477607682906613211371445577991307142444163309463363781007633602311780827578968088015076419912961349492909797206524121379447802287803116361661894003642253738950993294037422219647677302483339797097312224656370834782243465221226842726085335043682763413669890644285660654397003734995297650677982328771153841662048891256337612788743765867854913558125087750647682109031134890331553714210907831580142188430795757099516956547588620145917050767514771505203332663743533900984092836541131366782263767157156486797248332720617165878955556214703772227903578221329972510616616474916470997000765308276208997823844181324312996541537742162638670166134854650913747284292312355641187822532714115617669997742773961072946537495013377854580459286189024373479404885278552958401938484551394283044343389416709584201313812602674367657052260179025464186609627222804484676569249624734929913280125976412738095991297678036013768644261002246675867835077600925387590211921758549307885846743092903145419211212321420611577478368729236222540758645830815232746262730532895900799761563573894960301505255921192860403865319376699158650706686818143836066925379903301049668065992273764042634025432784770339991213509695524656808486175891119550634997444642777901276259874451217712116945855809455606366942667186444150268693102282250486785325911812978494833034668151297416536438823879325854284291720265341745919836668065195483471378554456563118109950097356275112256968101516229156251825267857859996276444306967040763804945141988427251390605184300919050587680882455288489964681964156672241576508053580454982289820164742728953075432173158191586228367122083270909547104562123422235807411862044510312570150381489827897156123239191663888929013551215300517842182258324547439860459647698572795998394990391823655326781148528820033787507647108862725246505286782287003401333471721845793927128079970677499508121684505376181060748295557505565388842167513527702674392300532106732102643491823754618440368400588558692776467160785203035152699040617978745937346705017920627863679707153739473828947964932175464785648549222480111009758179511181424515219338541613819457018359675143219452934089982797467147733704562078903949002793980008359429648108058652100298277797899463912536121312976430364542419339405117259572671705215875659079603464896275118077802658823339420325577030981570676583495516106943438601171265417861730091257961471283455480559907531948376544872434374633928382468728688215268950483316405611830018074299246113872884545587087380985336971831682229217598857222755802739191415934225398297003944104003955573058313943377296881078817424304576552905968240847782895740731877854660959661162516564702813905735131554102914142018993950532528775605388914275298040180078289155487269940259377428515991050096693822707753038193185446069689063636723746735754629843374221121609583614290503959140409112345179632413719134782377628495468298776299205098858912398220458638242437049650665185795838194437398906765279907839968604783897105476230431374574100220143132767665401386822144435808050311597511470121350787903947256588829904687605699012397750012090198759902625161616834395903648579702219654376520843774113209169759431355475147481439431925587641001417855709955090464908770767645012783800811457554318668416026870738783447379301107161059691763271302573350968166300699984369910299544142234237960980619019074914207649255918010239469721325589306517654087523576310827142071556706771819403671417113906647736001725794642926935004401677696198146676131699456158994769955122321236281574738557548384676429908843655030630717680642969906925022044913841452018447432024140308734393165562773423937324332754277386720154057621164757021069623443319160418335554866951765561718058272866804073428944196749937143151726003322549823386177173401579916822243239236360119226284044216157972009837272850384276093595485840849236986396758945887071757357795526083913317013725224485777084324032100505457407491301584441820026781128214602888885521429867718780116784475444132668017638321377551667732065738674943690986668893070272776636865307733454855281231031530356889395502319746847423393513158997934770115796068470528960024301799649745986049963400521593745713612246023407570062931373866169034055104815204621871033455241503592758922008286554028405960434550417638016911677474620144987551430150162171369256500293303747687657149258318168113127741023200661602399298544717390865573006352731255339693312769762282495342122981315529264805655600633300229824476940319291984968104020806861987027192922831495362228272702640965370695235635751182379358287093276321934696644220173274991157669891498911821344650028138556064531214500839444336881671575758245067350798172139384238111801428223827113563760392516556993405787896677898225250659591684139393163656222459479511101254494077089684407931017905779842045325054853044649068409823686726627399523282518503670793286177700232178061492859618251308610574849255823529097574779978105157144730646511354592091107974953923809103449617763317214426754263337935188164193874749796842850816050814640782610759292308888978673666834148055488309353827908312164686911737794472457834307144039306877820030070847014258185306325413841661641887829556598240689096653183394769682751776788141412484763299367247719500187862478354297820841490582396108259783356616140344269599366059673023816584296285634102213131001514757895994123858728795654804988145736567614122383423147901425267543277209074096994893144075274562193270872100806484235717935859389271131021848950522354328730971542070550513291764803139367852071104581232633139810921935858039237762765618810373339949239557199030540482948463387071841587275517524293658437095704891794611977650208341170292223133809852418514015567801579790942103803267853026264565566759156057069728068016943021076173512572848500897153203627972033136198762072222698537071286463470200533134130312344868731340316173061719849535854009836505580502225599250691760354421068351463473756794539436172572869958788356777493573793219839752824672418007283375058837028668673888980370632606129006448310097813967489380476848742773588122784402863318132393369536248758308433697915489916387097677216489279627670080399785053094399351735679905184400087114932488973763130265394251473054172461619664111831832333678836791562062828925676979272093080795451884897675976913046828519353971573914719480025052639913904872868398245682270741521021112671466583452348088749809967556551938320346577649237007783429185297070240799582565442898364554406701419670736437261342850680363265558349798716717081797477146386229766764986605296221086380162460598061156056285955731023176074515564568388870533322035868154195609298330821448440893245341590019160167421113261595034487689962312194343348099380896855240703344099365860830107678402071959380232238867602994142443591402372898929480780278838942037690065851137353715478173505354356590788866904315187513977356347600208776074069008437396692537729941915262382453464105510093038399860901602304059241809472421300302231845297144680324048757026748762324119185167637904624955973840709410622414495437495453995332507482319221171355157801673291399650745863173761260250749448756351977743506417216813887518747198340243933825033838893322174471635388956771462284842315807680302661772684554255499088653435152013679257419715385159123168174272461530375114011788330048040643503818369171821693750537101213450263350143289536537106785295770879987136752738930086092842992422774791825574216536539392850935446646364617808842988341532790559131301156543096230218094853492883548044292952540101502285783487519567028107692325174101186385919945321888097391340286646529890611536501672699956226933300175422923846770718007577021806521795960106263959198477283308438535862306939008615861178717763879026494728034273158957125506698195660894728628467384494129382466829759717571254454296189300481822069393238902063095193446877533965797647238044302995985921587689444780947597360244868393646859951377787148025761393227901257508019483790376385255702383592416473951841689015022285363066128814620839866575075849284715474614381783645368713350262283837357738801720857535265670688590342147492305363758980740034991296166455473667082924127669703526592907525332321932389353911805680758300733204539440166183179726937074278105172813421609246960498074892004522249786154416799013010755928283291040014975278481806680018696885490988339372646292596532745136793027886890951730579769882581682605928578926211970503427586855864799448050897084769311176591382262931300111296869966232192095191741329112918422982075622265345792451464142860507280446694488404193732270637517795041855441980417900776288802230565469079779706570777936013226111884745773646098740028976762095945685775380753686581626413538035234302081420021259080107641365446506023185542618150009002277482291929981428887251139536894872076005709575269778003735607186725460134783947440386338982085256366035931139789432428219459868245032782594310266979945066300629290091543667212635915455198513642053825763677742630742428840571613096637445096207622492621334753769463831871064380271758456498396246681729390577457080511668660265694565904200272624599113565840776975679257441669871512653491925205724869527844797342178163898079803765021689132800940115101790149723439122820665165429043533857443718839448210475399924524120269425263171338695866117427310418210173981199509416317910533345981696331438846399200385067810733538689127180050649489795646436993935170429316840846308944178528882483694758102010493015634419293702951460834911424296359060312005270411414898189233564327023391529581990107801927408537175413954087794460745362130160637087347260912339984203546952087634983704943302681193902311613185852047558908214047068838572483513049506502741851920361990503102863951583983548276115039003360290976884971972725817766496937676213112589056284604533702037350749511202847529880653591443594031750499775375758940579841685124618920167678256434885397085064048192232545969754738722044446536175996316590444775910158070795134584428885153141916088416180951810349592529019626517020676044671855045386364893941936845376436369121596654517255681581250387779412449677029998960560428649907966646952272578680852769290051170208561603814934165251376566524480248340786774725952535706177585297444722875694313027378413733971826140729477248812796435404669463048855648253994187660625769616435680870962145087339008047274406871762656687865559729902194315021804076195001474030681405409486864494280634347155773453376174660325556771267280368759168062743081758696674098246378597319776782935190521882761655925958489033818671680283034710653444876099268013862283805206419922297610127491746955511939982790934403570794716131370222054506161063763968669456070550124351200379244507187572957273626821349321540603704698024986328062294055596745951481116897784340079278965360812366180800576122210395480424954999709529324823731996411317397380759458067168284319951003966360019865022243618350572992547226081734162023320793473530622239833408126359558088667988610809946835854099217635304494197353423576841537793759020650853727318207773937258515096427912310784587634786320369452656559623586489434894732657158395869911094626833755540775317920210660646559651020962345181361139127978996739418350038445707515854053140837799764297608053058246841061889514128519314104532536671701265506325846740973939479991363130205582743558105187877812418573185110855829431036661109843962049553343122996214604579241032716355403104050566608479062402117827989367050246335648763830737408759921473497724789461640236685916839948852573445256769651787628091210158155299396709458769916029467082185940383599644174195281364405623132806779082343534251171094758487336889906940462278342193444704808672239892374632041149724889300634361882230523523564274603350872107884066821596381311478580907434570703568268508212277219756694150657578161813716379401055317307773308470044761064746039690485589645405153027906509684855506992630247550119618806884407356134087677255539833908269049827271608591173575049967433697309770854552428866863397676418553661276066504965730447950564370825021156676546905706985734956102146809396648859117088920169553065045456871550040770174639050110942303069362679467524216913871977712520404379219163918241253787459669574419603801606537143618391388287002390650098438243534560293002175047303009321080702123649739043329306764675928483122772061067787805914134902282052405325958341757608291552742899292716142737642830639543029957536831783946516561051736365834883684522584561461976338234163612341008527133773964835445699734611885625063777314291017995929654419503864023027354169340790564069858927825348844098550250694710611789262544030358186112328627232007386809922056053788246398268967725383858892503449958529676051801543938236384702062605577997964664592423742104856698894952813936941201072419228261980085031398042458421880675230100177611827704515063129335656547916792435025639230815982144635050577086397047131241943411747213752837642635038232755569810346323399025181132107483805865909431760470405806104812946580892155535125396694561095614123396307910777576870952262811855635890252775616689581419369966821337793050193746535127935375895826394970489495550554820578192897887122281326484143815301957263492419553965979007865169932718444830692360564534792954962566412706786996706189591522492226286511390521472207030914301041680890698320795354658973820165382904797609349056676281599268333388519419534846219882364971531281226678165134670952030492170603989731217099239984336030966750882758585355031477059737920435948539206299946011517115413148570869798044313479383748156113832337134314323031493300058876616397477940493851990080626420111619019567976573246901395728910351156823416434968378672653117425087030795854601500316244301848611496418640392039846807444230932390032254823196605068954320652707722780527711537690810231430983939758552416889327053491614086544527144988502207939112958902265463665987359098273305333503162763108256484925065398800640528538862916385895653597107140490644821578672661558116526799819701025906302824684248814135526946753738736778941591350434925406174614269453670003127511322934968158644084133083744119347746471457000348268297894310614572969346100394394478781212023281835774157747113575728194797429562217225893127591452517012563602477913270296097010638923104930693019596361229006404610523086640758172092898715759977820473988873210477637062505450784324291454375893173187824761062965194309917478856239001806603069947009445858822830592244373605273899450091283474467877387478579530453265405453695802213850033519645369957323016992793725610144611578359191752044552946318984928426787934783555463960182301507772230529455885774188821090030791093001228980577506258299075887895586495234667157590289751300947415225654488625575548476402303789350272396511934749682836698970121477614836269429039881407320161732277399972501443469388538428643041786052818524619861771218932698679612431374022374193823044941288238517740067077993507118674560707964680847047443640783517623906893588686458713525852585171024185831448010834624605495892603390313653663699020318972135318069617202463184686924035539662402214433803964900980798270301994002977503896996532164724677077681850699085431760428778230987874976812091258515236298701936569975966545957505769313420798763580314856630772466402462928888254288617655627475805505364391514793879321967129278490361322200715446907507700449466050319874905108243730934618393425723204258285258063245424074963071971773007945555890244472801087783540055647213459170382451702664289275199330708008908159716433831694686497318678467961686907866444614978254747235135104318000890650741381014992741269382935664357617014345853861062970452270514052951921234841636554365467504079138093929164491193024548605433436236082931951597985458757902011183034887918376159282279201469283271121758315450112413782569484846961175960074774763884535774759245014727667298030526421007036661935783046472182291501468658528629031815320463878616867555768112729863128447710924553542262591122671343193950725547294325225825555586011964216304348704828664913580993966788386017162822191816440836021250655538067246359561429359903351072856073246874357668472358715620946018832010295486720350004830727114535365774486820910277408773348572824510784687568826822201525091653684019460546271024332696418340120761846197926218142009015454681292038795862760191703097701699472274859359754898618560245328993033039187071093211977202066544436785252099983433306069960960695317040459855458572834363108142744400989657852529165323848595903849737855958614928031896648681899311019524320523513007315086494123189132374421905602104528121749210268878714454173850325701170978868239563062122427687992094544825316628686549815600522411922138429773644372456395702478335266903047733129306135347625699091813872070192755994079665873601831422322558289443565915625871919198200927392265212368054198998763629065534593316015930558616834178382527471396822548655744149667432844716226434532948175119410491003690285530021771278061818468859164205586129696701556261915326114137017758400226630246331919518888138728415475535214240130055777420518880117612722440765082406609909418615700827587194160511952040233324946738812041725042498562801321106943743382078688404564564976565581699366193535867912984188938733071649575073400330448249167270772379031816675037990960117917658162373681841366669033307902188833212822615037651519780170962740157629337145462080619037301239716528532950799611327068180999892155789760753902154324243850515808328176704840442800507440873019088365014756811883379033950707355020613443616935777067519692278642352862249684581978722048547909240426715161374120764323995342193904214078523266835117647998568655213795727696690714501652883827794819207365370948219545483261260210524513764891063925669709131665207138283451909606946103371732618015180855664865970155069707469153087261229787332582547595629932824050253170012702364908806542479336791424102483665122884804963876363997038883868128390227943371024799469302390796660446803408806762622353632717257077899361707209641579752322983427860199097677553334537199102086135819925377586657006451225719687434705097866402091764957261767272049105306338470480996043759256096449779421321392027922685553830972648950762563815118184873707877242071020889916424561014089531974656095194811123107310486513365455918888396618659972779234525439638810686583216706205935997429372027683324410611927239131501148647822090393020829957876964329512944309914896174007839733063429593857281812445582610546341019399315854007263753140216219398153127768195390254793397676696567037971336421818757023731214636027837371179786377255311999493665547695192869268194533889340926002932871382816104664508030279899490033736219462757455962137961429225228066114184096275575351007647660489416210393261170263146960002028691727565342311710022670556369702594680711832460671546215858563043909960523426707190148640378064631150501505002579967645682939897325007903109117478991000780385617019576929397683700851505166368566325979696475739450541017276494853739194446272249239812496667532585885408625749696090135531202482786267850355175428168221274603772022024268696817868623581648543454265314185740926269976380525605829136553052985981470046423776777766064487951253211748808219041761633037719367115168864171337859417844778612875820657634765293838501589441320133712295648405030176203128248697005489617412316177892749869603344924491315765779655067613864250022121033462264791139537321811255121803148090931346592368252585986482460211321763405849962903191234520270005093947181455468462165288842169981603397367035347385292621805497108628998012239841140565044027618985145116422619746135718127025374680033327070304597716511252814616786054840317849578691872574786301139383780670987036001419728151287506444518977922239412924116745444237225379937707149586288884787039006214543046108212567989840232015067092394340817921983299416078712514860322952758474960796051242048883540999185646344038151570463854412738982002590823846843558698005058711377830692029839966086402360571831468202191604187094182625684401175339666315380659954565365850377055529939184852813580287559394126174947614111814818979117005118539317419093372762774434258139188230459112503368898207315382064314975342677374807683616590722794083956120189273200739471603298908873554805064215912170553946782088568233109215073883214410572662091478816331286384758713334972485177498573548347432469977461839026391582290507861127925948422251352034441189429694554096447964456336838993866087602067836852668704158402109770145306932955959102994419413114357527082473318341846384682645645382903412399917755872004952731767425713777966582892713121577372494721098516078663846852054157258606024387913074425917739484220585569555557404380697820179656115882951092561257258234513047332832525979762094692615075436824436646119897447278857774521880555521571513479424400069207676458324961360808932419202708130565679564494185722592301867944056392611180982557292715165298084782335630123766256482105114227679846970623353929713695437367917077510684716680603114253642675409824343927325238829656363115316091397658871799514908383483504420089068787474998630720098240937280388447045109984852421855337522573123422778553640330737214934036409818376665526609797496694911111167824773611711340008356835841571853745109921394833888666918409911430657993864441783060197807454219724212699443838015415663779989883236260018801290858972206729840184160469617350453788857322649406346610784465791917572656745997729255940565114836261989827050867398216171484789882935541289054856731314861170254234209220911439365132189290335605642223810637645378539524255975983709628960017335183020838438729506979651852077400089677132614264333204828447997445161588526484303068993203010369814400947924666603203604390097131790267104754153597614765818931433907929688600380466609177253555450994204608534669972462128956694508602340609884727719162566901627248494468154594224675140935261941418572521781565093062779996955600299331499223970589066982679973649821876875392628532662249799829133105383092221166384054696036942895961178829133162675078705207152763700660006683748091256294997581017007222627947560885583492227621542434928716535745833383345720376616982789878808665421891137358892695099137029788291909690615178613439902854381356440617673757143771167046412919010598632731346896068380710959879301356980431046567303054953510073051565153185475624252043991761224296396105266842015825185910545777577968865979292661243934517555072487501993425161621826716259711360216722461926559002088063796786422653632814197777586544558967759577748279147993247001032386109179450912065680173372697083311752819908123061502493993554606509180516482955015672080205643435194766470471781026935932692980133380729343091446992012314779798629202088087969371458538932402599016275497511987767917329879067888600019432292153473172136773403431311306421400957397385597165450447353693918094824234419588575063066711267961445784811733900324491234894807208462763240400378651409670743287950665388065874425041427541967029539045621073037256870789461599387362542409464745459460082354080926231086880054617096581817816683614340794260317924969909401291169028888608752616089916788061945681429133049497214772967074112370470690353023554403000514848887102439258370345878476087510154165528563674277627443209219415419398879168598720515357726174678941850619774129127194519461243331291954774164658968990073638685067332477492297140571252325113556295075615363564372964410908864834713338082500208802813178613452324533312138076677161637512856914599979812348370909524046504885879379232594816368819543608285698795269499990571611429270024292572502920601025504060053243064189897032544804541638975394021040128649868543838578207984270687981488617153951782261561046049327097780660434019285950187144646467562122770584131872018971165346733723610038322091619173858987268987806407053180815246227109074679558398584705422382765890595157298461930982423918879829199122952971427523385932880751766363373498184615574141713783027172316036006531159412847334696919389117203635853745997469658585967849134863888664372858443241192882577414332882519444444926948891801153591827867122481532729548654317200639673135357847014482207174155790845379987305611751297441880631037637920155793562248120501107326600119528527002117414891642919002165417156168212275193117896772800870697174320852124571703218693170491359084422619097155129655020367075294572137927636909797316126863619996523338094063403393611172135593311611861932459479091660740270753228406086844457559102630319864787188239849463387811398320052760469346168015431622021863407867941353194058576001723501424819559995568589248469587354811345878639668123754084082422162628491450830127417048108476792850572167826024041218568610298137025822502377076374100031723382568027482537863439059400888186510134849302986750213209534614553716042487281538205701918942642884626865498067251895680825838180357798766754887499278660274246052459593983735185087206120009817789108891769640399484024904458896158688315216410701003733673307872548627886287503830414080416229985321885188694867418314842318069229892611148480772894810992840733347710352918198169717055370898237271490322504068765709440715679491587765608569507914430232342295644386220895841771073374451618544285218205370155774793778994371824434047241696144974398819441686648694282492875243095643547564357530217277107561755365655615921231254509865833663122651845490746609206745540763517947859893718006461441252430102537230946680371833166889375451659375401796880731696195388243190088424098268776468414713380500400689977439760405034069516383526448854487802048816699132869094915319640290109147725530403576655324507059042340279265001537478472083895020147442764853130607525266839966475247858488524763099368652818198560923893726213121724989717106687533166170202735458966894895776733644571428687008685387383445896882694092680823326145676631688858322860852890729844236803094194357048362090877304417221577941807115981864018124865637738632945974367848095172404707298970018407353458826990058076422899889603582284272291397001941346703493538917427185711032606232275288339740297763939748329140184401326545091920907823241721831549741812481968269873079969689860640881786903992981313514459792146219176097265982354320754451229643531591827808650218758337234214126645426196723417371882951315008306885885120056510606627185635783472760632541935525906763019373302404345200711228330700956158486807033436719968803694917448897548643296044774501982711847300205586959607976636216438322842301131845347407093777975637225678193767608992930830674859302552657897772398622217246020746542885803097602301388728540586077915790023280997902667503205374486877431586020509114301623656841406759781125101719564409138407545586729061758816698203953611018263331462782154228078816753509607521797991869821619907799264525771707567723620764689965747444987449364878094507593286426709324481962573774057224785518057111029730398060929726062500731519501239292897074886662459274995502716914759632215816659202746566728861716659019222387062125917394749871336007858549921298557420528081663588240021245157853720295209085052545234151610151274571864940801040143912359216318400442227962813874439165847448301690063314170097485452497664895452071421172028060654598825633304090877858800921881490205551097618141649204423813811814202421416541956598529752787869321666519031995769053675972062635458669804349688935093284509250045898004380177520325369460910138858927274161019897673828122687647020842313497741259540480997428094427545098397893008809671839857151481580071677768703140107960212599853653643161062484080856120234614087662862934578766818980058473673767286845861109078061355949084223394558029119191827055275808455879898009028615500087197144731885179681191450164598517799981138055966074880692397146850911605287543809176705723060272945061042965525786871411072665940084820522599656481645639920502699400407139320464616660583204893380695870057677330773126742612064714425687751948766508807415702500328179918510870489153864713722350796403668912340608150327586790135879905549548608456848718216033724718605428270064589191995780546010506073610288958116853282931901621701026283138207450180297089752946437662753963182011110175965057850333761959147865410068337424893655977206319262894689803857739576358877662994451977969316537402544913226479045532131812096751443324228851996686439956636723361896352111563837949987016776158975535089527518377823158449591272752214388176392062664589198562764148202451801793757773149464985935806680245750203689098104256005216170959896100191005390163316783346440076167502266895189349543841104434711114867436856564675659357016163477737213958587979420728486675138242289026173479406358039804188518210479707575320466592885261415277314843079572527023172351253377806577473837934885180551857151300516854981512658641095153193543777439786489678890227490741278017050859464926623620374604090717753455242979638027005909869403274137628190517472630734971906580247175940146592060499732231268879795163512725661200158141228731634614669439476500628737651344670407531838780093344620341647297366092071738859136618914609585061201773423398544293072644352819602725696575878717329928129468163762569401548609417939228008774656796969867646977141249838036923461246087331366275705483027127359148380638441133687800883677694576300146134725867860226321125347015431247640137753869405601936003688229478735420392883383334437799102035372984303636153013410107976628409401235336858380118788401257344541678419057956811390033672879165880885687576742632697643859664851408831784271146405446676396883506774344423336923222096503643654951308036854068055527532260294081792544830775438926293605580213741437591010810058667938898072319220963906437525594192576409088964603866806908136951854175058692209948508629641609194338049421156786927859103929715808147447762223521377938246092317701640831613146499380108520953972649754793500049160020828304713096472437808557351542841212908150740919382426415560231767934304239182843843079964433223175891662421376136127219884350219062562100193909527649767989840049276615536872994904577510419291454477683955898799915679250512667553341458104052900818718138248218593044811468971352590532033299309233388654866316920176008526101847185279078569901225208596549725630253900476138679910751974377412088856523540461573113837030750354767650720210757439172943763994222695640181103138159739419000725300824038370555549998316636918247029251229376366143926939406682290498494463707883948275216143135486753206223328462310185860410290708283172217491317035288166328667553992214131961660561148525307652546069281000060745015432758358079050107334464826546614696380370922587641881626451844666903934148668300439098658833334565099038055694654740341700630407429521347581242388583746999296978376912565959369351759860927184225174410895470676296333210293853778405681555420536670484023381922883006019011474371001668763359148917944870445068003181806396696124604197029088747636754139388650536521579871788704643447508397566897217938244032677960819487126787579499320366845077597988928753999055322775919026662643417119324793860508123241997317667516598641140221760513082372357427029951120407060507556681771551089517711838549948511539945579566566178816110350169979886542507746855084872780715635907029107093168703653967331914072362589699500930830024683957555625620963612216783156840992354151544188591115549702003026967592002681748256643556921930235577438955462143533418452201013872996823853258323755124282497605967283309742971245356719412600241449692330000827060994290088507148001673701142552095102307570102727327011876537787043907299865034445121938470206659448393387056912861213804291682707388974578594885836095128448486410774632257344777223668701892302814657900844108639685814324861506015169888045006362899960190616439794109038486140383594898189301436646836203782229623042588775803368250830142002176843855250879620328208863608686008741572377473495604964589823620760297953472525027321166960475551732653651492401689375734406806677857444231858562340825747090461693206198316180530279534592584117744437514310947878875646762655264947510399142950392545762145605595694689282559208597548156147662858478288999712496317487203672178665747241883124465430448150279810479573292814852566303391937006450121886654399191809806894557135672613687736436706613562305633590229907535294639341841221736590172809550778496377060902094693591070114753980107603570709258000106603304297114870790654715534456348083278138763738539070399271205947739706402809930442295066134786440072733971031795451594657427945903785464933755934870428775005746826897874302171325755025461851307007826075040452919371898826567548314027683722830332992532390906525094214594695315955322500329771291756288601029691487979905586522479681723457840859558254027823923816803729474089112714454501231751607769358969082199583441364350419216245272144067369883835490747586138439381516071204764431922918778302726262583291113156187604083548609484337349791317947244066418865676739428286148242921510640940645540139861834365177397390050483470981079085921638103560340269662180759577697676570377921105743857073972130074825475924401587405775771566536735478986971610913319141209893135065108143684746861724532203755807212444142886549365412142673216698152446607308117907506688003109810954161507362574895109890647214456015959218237478288077486433123732316727243340974218344470896126981922653530629570247765814956252376297331996418314684411273682674276574939498272640158808176325377512570219694256135372102486261658611594476285804580971680947445669513679758501226269210842406244545974905139304844555233420265409030216514427166341038455661154626210937517258594488733839889884581864771109700326060876093190006391004537806815209105107864271447449029136238968808546599847349759949419815393058199962548301376533100263682283582804448687404337061576075383695334021256155252957374269306819334319961231760226441294281822092484073441884551923263936578309432261222620386606005128855631001600580590929938258303439648237840124825714471009345646614826962378092605512556419896022804621143506230486463586214812766026597626110125012650915310211904851225468818411038291321199696917079371534514631094782894426680430689985431226917433415173002613813499478998111624121628877809225601665832726500723960811064765613461186503243713261470677971033895199384574449460348640265790488450273158849371590970654935442713522838826699431636031867910852196251980225991515085518791588715807764821748988440770173069815103064012340332737488240586469761805768493776808630037272210772964822367336227253318117567049852127682983996735248849273812395595900474623292602809035390419375750027623508060018111669208459182479130741435405248076160120673200399852764580738170214297727177489770662782628814220282305824497086782717742114181949551337941662815589799288749346655245428693140564323008217572361676051783322628959721210472647730889176213140439336637132110759861234673668885085439170885182485558135882675531741291921196658934205068615540707934542118446403817094116948063795004327401661296490225239092097539794542382411583900323903249737518809580755854037047293228902506338707248365315308788691429134605256736396249720331288395051782215001395007960002767327163343019410421423219029074073100447647090002106251276039741136089767121951241479659841686300795041158682192657415825044187592079335189715542069184715336604259980928962299272263344701822162181368006864917069854520475538354862809603643082417591380916890665585762729676092391665418380866978282762844195508611059171814244339140354595990980924992584908194299995398168203805118399850768070420148600344088705075216660795681724842345842712782533260167894359235637792264650972667043204873687451510763053347821584968113443093882502866931736206708895850576897037544555087843411489936656112325151236024035767157253652884770838977322198563865721266666697517548592824442034543209854009074979652905986390779077499487761100095887330171660631987826367934728049656695243795871985168078580597181027415949958536582131984648009859819475601949854073931599660795223056174310219464909033292650087309883296107238664460788710589798680582038369510510991334350131683470209645886905624758423902366728305524313818349750029019692819289986526522358113416067447194220175390824636986964978804544912637068827810774648491462039884502697972530721097774796170910865010043267589583169072430625339415290594601358200666011289531621993904308313449004141165942416168647232595559113384335796471433230343419913573181121396778420141592791070733118529002057898317941157497037642493680454446754708040594515330493159619804453788980817436297282581610887617034160674940647684533360140654087563635748646775004146182417012498353220339378190359491568398151409703159740765876040892747506953526376410353329997349915834270530728771969865482326253629949920629435503712926536012030537394105987623618534041169938526091536245318457994018084817148891863640058763462224873615114744570993781379305286101097534166298864762478073300786923266410985092954659776790897427247072694571341608395060425573290428756550332556569793429078169315648536674466289262213590784182113062412177817306272074741155713861210420115007935440450928397913104755963127121213596364733556711440932708445461954729804662689457581820707368853543818575222794417206605726186883294474780856106719004290111491029052266363753395707762624563724104280933573829851199733857714288510832897939286354942358664782403565625448002284359642251190231889950888710283092145967798852695838619497648192486322540686890086241686772270376407744406858990330573168128968783365336258586124154445595840124615767349275337062745792080173317903684382353577593825726531718459711623866038022948085463513964913903235213440736701988678862200038521935601741541827405486390868884504515473484869331068320349392261067666727449873192910057312016361929730172169314632181283781842073593539166104835571964545255817724384279717570627148115122866907078222871810555489034534054949787184215033700269182567942175978074134548963755362014463315894068956234854035932337516667323032953059022069316588278758427868568506306258157275725134661707756816092351059103597688640186971879816735807738744800523963799432905335518767493974775439029732702130305651704968869174431713180564011355986912610989330746273597560066101370631086550390631259276094924410979035961661926380671881342261681050228386436874975958491177475293108918438698868997004358523176185807516740036128687006761566113739042871470431257113480329493251628917660228304757499188289854066759776930273099526864249418309170503934637511444017738792834342347271435745117495305300522962354980735478227292794212349938684932850819665604576503349346538227550297344815143381386674272996647680146973521424191833458881270384851291624073711848982564573783860826175381091297232754968315300264890639720824539696647993874082844075731095876459198512615837453368544264729810834640230622787844463597148851846589891943654645253944008964075908461290131518125708818073962084197495882788605957793921248650236787694473729672687249760327510525491453855115595727495755006221267069041223014825277322303262913838510789433746301457303642845758382315895800824915812865421628769046592233304752766057756255152613212048154062604676969131148894339145128757056648118406564559842535473692467905582290403201595993754615955047669667194576174088841833882179450132375319339350740230857789027029797528235397381352334930491759438080391047258924933805430449155179825352597722310438022376073919625898745665053696706534399882782889980489138233148040061161860384759995248355921341700005817013516618423183708479891430503116860077926760969098969096183891656009664714694820421828095145391314264387813738674480784445406714032022906966660026263874410587806448875894688685948069451721478790820188979200198967236097908469863765717098720237239799693710775145763625177039177921259829514959814080009637254992448118442986930141704276990289524970306577112110732349315105922165304691739351965170297222462052800295961316672461561811413538184888270111929540590351158693508419488840622301300491026266957006081411807181875456112495299517368841937193595761450271980319778477120666597137556413137901877103977207455156201030983799888054938977574957170302885426358036158466319787679741854070628716674418853952337730826528441770189243917049646578019440700206815604051903904096615811567527825499445620175372552737269613475341429720062943885550053142756129928878871846214386022395229366653129239126512471233922076327675162038703872228935227993478902049945369278123741339967603886506851410746206158252812176626470369104964875566295739072221429989762134555821645255527030862646728583858045048490516037619414844940500663032562595857397721367455445366946799068946077061895622476379190621838677025208495307494095885819976118570935504971924584356901183548930656239611301300261152661304848135729518723557619079520480507266855051856794948241438377348752566804796599428880174535326902182808701175809846743099373652739993757977075630065176176102591614645849246969314051683603666167853619549191163887938979852368112190181681432216272919026322903914005653824366417050826574520105924286010379788224127060338970100478447610126691380203157059445724859397750076273216430185047000911606969648819503947445251195078609428769056698263803657152635569453200189494254643054447469903036601229692839419152902892007292306124131929777948919304890493870974873127459020560005295760052290145430251953436034399127026176919654470256130241785141978384367614363593718565368542902123112993919871253781311500252543805743342850650728585473519014333180686886754161852169557890916512306965405480325829382261707743845107508723196209899082199178610935555738192465615694259303588615556828785579705947621139834578520524937640528078139184228545297781956190001849174351562977308543179160439412665448460928207747333164018589722846813254849626739820031338473762550437959103438115167172326972130152615782117496572140880097231138777113321937065280562025260649856168085918258813246557229953876160562697719103052367511069707431151755720348935108111597983472510018968350800507168972161586495682996479118972476414426282164385133941743356482612636794447328948876050334083925324540438326438241999260221802562046839028915653296757458920033640378340030056927066239641244283101016376329723248614179714545671658388030764761908949198984007334591307341376683352321456426820205066636070499924187963388519026518720121662945908699801548890680966959467489069056096573828136830661485014482193707445150845242668777893738590120528474886662348976257056775007272348431677285328720374537772647285679332829943022987565992007062850038951866984108471166867252781360556746417879818940476845814464591978049515217832761975884723433461012784388278109852395851190944660225544020115656431843224081143448916971029039900840572421349549063049630585390497300273826789877278589618879442450786477746721285515073350141087188561736979915446400986922039980071921091008493054833717840131326320957462270581831222474227111999411409271242170512704226666900998831866895834189475609375859062003061269292467004420411998117630542020585118604812201391918603498544509324785122974248253648084359339507889974832990775729499735477410372603904807296680752605385756843286393761300972379125991416229749981496698017946562332097248567188455380745552873418863522216653805509238923754106471854196367357800685825210340467882672077258957062030614714699221845883405906890439872735956673717754642181815933556840137978631574395333048072337887011899639736986049084660462173657456651624368587702643728689092915502492180859173481560366329679095364854150690988707275052701080633853622066464873112674813863527196714235972170114355410060917822212896125302687229821628044508739650641354363821043273122380251432861093303804420167518051204454791877046556029693426385042040960963636382493258171274697133563120630193280090968910980938837964388230808075691587328478365948141328143577136235918782022782750737234932358400419923503044647537561260543499758306642634181029238496102462085883028399844320304080476479300881230868311417036714474217482464464699828847467476858426172862727503634368357863708324291818036059580617108625569129726229462211264614496770598848624611457998840876913014205498223434583070735475237769519148278248691469653152906010089707644782546093674073438538234617664109083841701438001469000917155380843196438028951113674720325306942493517456681883583270901571929913405329114572124764288421075377625538604734525121727510661353268709538054537930828531732409813029627848178435563452134521460728571977600870716382525652189740035703646912916114638548800975232770480393316627131343053177314768816028378513714978378006933465081004101161707488271137069348490411055221154520488545554998807905519953385914365096976932331478351070872668294999590767451666165048783974362720470526369102543336525897238588028639288035153905014564656242861208356574805499344444662889400495486044719893106544690988998344609519680944783750603918526041258744206504144833995731283360488047839287545835825214050542091465935944600440518851591614712362573957661822980173382427672355443460470675712602997154636356290840894967633970987349396148021783719173300900891453122212328355727307071067946371151795323819555092589559145314496645424937825573148848768747108746107690704282366332498964757949871465074676329904639422399063025111028376035063765876616087466909201475681615531170083793030827663113884890290143893052110105506453123705091950674265363826863240343011840035752225707150364303600813315465747873398431917063314831297555888281254305974710621314591619482819755858023333520574247360302096232302932597610371497034408834126352704390385247813648896704675526310891731716650287968178029166403945968306393165091321304338508224634168796424369021074769891226126051148279318285075280091766101167791729939835424390684905179359338021514190193670283350487106005912786245041522972955992125896036419989663777487601085786969390704585143225000320400022810382205262213542423579417113874032792302113668250702070363362944521889494911759389485598574415981299042583832191803383058685397670644093273654229315594168589339067781502958680942613595625755694229305023449027606053044450692405066204861492009086259297615736036762398835056143090745344941269268755028454543947617076133199552855659290370308142357612943112863010642642395132819685581327846754527874166448755705012009146496914613562347464426059686812158662661356270050773588424696216920687641932557184892972177965945176382222461099681806584770806191031874576552287606533615865376395436990444529878827556806574572816309572196431034656816788309808495998495698623536266341566230260488043689331974727229714872835654198458247943058353899462808871943699290320414181810345629893123193355394040942465065871267564179037675463764931626297023852225413410215163844023950642457494222931819314023070244408222747010608461028641515469622534438665687312788687050844591015407334518627379533544072336994412705480212714071351316205392825609685801853304515051454550697370016501939333370156217320734697267410140260515625618745498247301845643281763648669483421066198626430117785692033895414710527092901344062919633210023826668643829319766881138671383552347451154376573192860831070938577836159493293490860695199378311691968559586518824552190225306241860733386435656241432250081332432581169427531691853866484597607697746046451261120469585774703303860011285787383478848826898775153527316334069300741285614931716348170149658625799000698135629256185270490847535744084997078310596737971420671374099482618085390793672806395078428636219280107469687714027072671539617682817815312739684861499206277568876764964489721041525130780523059965045074649570812607582531762488262155984392487450080214921311749428627330500034094362000253433281977176388455366660087026409920409150076630355079101572558510935594508060038918778551911906084482076130265675556400424946857128045623875120687556753874564526508975611142065825927706093106741336039960978893374827802917277569166879409887823807817444403600751360799730660090347992465890927655894096813190951651134044492040117299907897477239577746028386809763494588649860387053935837455092411262414702281188676815277361714353961341351626773725552286542935877735808833961601011714797687390660924960315084385371571319567699895267922006157085319206847440708988312195824402211569687585266839072193292629846991676505235667286113254778278241873649173814999282859708322490653743719865621535234621435895393860735916454132821482862542641967801766154005973254569051466650848755358985111333609373111651753244703373223928412246784811644939538290653419762611361050178451258949054203828182879345311085020467480439346988267812943353849311135489273362678055595550692527879240868452665090227455036228227587964663080257711468072800313743398365601422912729199551206011960145536527203011320902331708221672126388466419476338207416816844401326702832267309241392936037137693047942964445036919889014402056533690597946912586616193748665365569400087875218549888972131670703069941298143396561198819938973999816740754841242606391388390610309546949706561560467204341250688542490869118840653641866731362279269206920446198230423559080996482774546193266184282798340307434499306570686024026755682423804746746934356443449511453526375663090734050294936322812909413136607194953480866244489708676555432737399082827049274875924891310547000936592529124552765423825445495651406892218693335915801265530364517843832213169219581936550461081583728550240091603075633952803389778851429885816601921972073350819151447099891696555264403353661437087515066761840587220496115526064847617966035922383890950864458197947580871627046762176902368939302282016038779716864672974716445126899460544605574623388807665378011906586978829065535675864181800123074291211235545328692229340494890445700767991947053212297379081128903124343656941901518661344365338479294749677245489111944779103601612023128382247220431435874260919848656461533819023465751251833014027204375607100888143083993361226683649914249063999930731470127341408625232302083328389250841572253771091240278197515277144938483643594358573322058263578946484253266157262683731305816712981344499517582317524291909052655106587329424107986403661576613669832369233308842068262736863549395384404904921855747402832044424523016461611028241921664247805265146714360593356147037125557678697834309612247441537905995894722595685089862546718115350583764707071007130930264136403560802324752278546860803824644036957631438002451454030213595502957045799829732191083691805162169444693858074131751940032567548127681478368742338360890864233729643500829907116613222864980876853953139634041705105227899508049804280832737409859681038317867889575381444478626035733046775420118850326885020821341175151672367193340649966196585792122022216516993232721838831286943129131806566783258564428139341788385771631115180852792333512051824370540973669818332060464505006948156660956515439326178369599331386518113329041510162837852866113285050372592351911323919456781354334981501479575050927248677327843768628735182880586958987091380265288911253225286960389614097592880132272183710784339748805078886470830386151385010702445960983596609706684958448106913369999931728066970033840068509010105979914830129792656686354289089111174090004093454756113339883245414859617117041655414405834030847287814381464863825474228695957551560146889874401357900265865212928945252961454174068464191368421543114001714595627088633543379205455268216411655881509195754627130694555808661286792797035774717324363758915587667001302744749556643205182860818349566299951413621230035354131819467054389978246504004875338841190469748167416372230607877227205468707466453744743952940148297830818002403332835239157943337537593515692022547874862948005278456566347571721738586045660362926904004923111334356048530622173243182417043295586889844927323993712306525119487137485672438994117931575454355013720773278306949109883108540746836448536107378612057227773096450057063317629118761913056899649621294698915214332824452241399654301531754906240082617451738859242557994534054259284267774572639489989207081495289953660114942955500779405077645353552412499977768293310692681384048386057033162068547254921932297781496691362897880700021495200027716121798118680797359131217959148900750263668774924861755270174932960079533934491166803565581935759374314832567817915064661411984106251566652704436047806761191820628744522601325179985596388340195238323622293458516697252199956657235634949987947360903578988920250646980043380219533142962804099032427004723461332677238936354966513383692337013847362561148034472503318951818348953143956554127724482738352579544481518292291988566420414410644962435820037875690140319367433908517252646478779722877912191519069396255044015384263646663005670595656235272659975478411830613188937612130487122907366403950404528132111715499393773523341791952883061723820994418518537723949676168544216736829228384919044721482179915297277384206683754781951601442516650714669210281621144432516678628351799545813662674013023951778579879482162799410468959703155898771309359583569357061366936672212714380739439290184677235923385687415423391432917634354556184366953594360308996960695791321056746652248063525349728619534590456692501800348441139003531980470595069928820200035643613752126383172299760965228030936878166448253927976433034336917655841182192733333241071669460994174541889050037303710534562515080914072552404439975712851706049771995975518037054136966161131957698746461777791589104538620510194657279341985548084647403271762053935929136641942656144969138191302085549126367788835950737252033773455404608796458168477016804735884162085820248078112900139566827501649915350590263776938248176049494611086259666517949277828870877494281375542731405088851225768892656223682751713739508264401344623614069687614582860500883271784558306162576253521021177588967191641330645987155669941578666073172694674114003377973064222622853477491306115103163063118486681850919258274364205229770628591796827122218093531299705678161761377681790251067414408073443247894043307790477880938821898930332390599203738256080077041507608023674839092131130714273363854933278681508001613511658656005541187364513470748224661689290634695925460367519308269000699107482603869083786963851082815683134217627291353141065704999413703679354265156589832123514206932485842810593458890030314382752446923634486746357526585147500192212413269316912200749687812615605672877652861823502732371311058463103641966095686392513897290281058082100115036989803963464789974759063357086537775277436222210460879090690793881572874979380398414387281254138195461467522238328172253687882870456682309294002107373567599614505746772172315037280517189759049150229510116022712776845036519651958694810038439781664233205099643527169150237387160724010590331211655088329184054721646284107382522520385481054892149837785150872022916568235512893897944239672470998073660057002665731634791978200648000147006314881211481958974113891066149734905935963148049106390884145616482554780833997666662963562450302461917189377805965168826992307622375231349756120561416899774179297921814085585403552494499996664120808139394144770800574761007529700814856133331685199018832427091270997279012243390634264665400954884324996753092323116837674846168169118397185843797094397005956584772993460883782836418809280250139121647914655118993516201167109330362640746370382286491899314710166745326531804292015819178886391207495820692415011078984624180589848779198398651791812606280500672189913440526125615110153425872089855234702853752041128373568765810421687417450890610144967639799241030768825716751711955681229218412763788570989952512197109094047718475803178536959107271135293829153000754484179803068546287160060867186180519420947223530757451599312458454920516089992882233378406255491499175144308436613719522511285435450775174101261749704820490601800271834050145618155929272188399885726592370838285238801133079197536740509563936234656644292756507195511868978461085356003362531316746323838041759405123517281448637483616856675617854150735260810212659402056616939096356834085142433448263808049306878430334425639313808578380241192122902100046441877242799026540258604154763121853772315232176982707137065376004672009255354254858885613434179287045547427790949016823877435048668154683291127417052194350392120952394494734369588475244663110818836158277367840948588354942504658006744246647724003564952908447498116446618286266324989354095582194432744171647977712277032907762403436085540637604623941264440275204783569861959310481167035132234999511359427242534031917822256342143867595329846223503131659261554767145636309442635251072880058187485945467954673130604896788307378379598339051050772522846621394853788759205956361047021746575441368572488512548691357711127858877908842070720511089389999440871374123343035860026497352100817832737203505429322555962588286442026643353822179067571816946539311930071874364064292839464473024472405348102911115127071625879425685154784964754899007136197055509952688762626177219344534715619214831481405350350019963647883233330386912121238490918252065240059479138196004563644407954398336203879458504124799968277502304238469714835692344269214428575689992840995529524093016078089407680121531967012363229652318896521002035161959044673938875942810057257339470840692414050393763468485120069718410801048541183125724821884620705468457342111724202344791521368268079173106935533206006649505553754725614040514620654153190267601090873048822615513875867638658761093973380928808111227916491079985655314652483882425129173347137646329870058982771505128609284933694632466753453868038178241513917068839965681245290806932098147128564447404088910156629832127275395603427384220949273562084575067787095992571607562363050665129354910421311059111965622776577087597918624552138878634130241294785312974508580488965179827759379339781018346936079449808181009715333876817909146557480746960214892783748509734111965752114464188452644242112175997546325475088130729418126529941873017845030757489492166184288421570044429028634638768320036714055422655556095364454206533333399911502112443919522766977167560458248877463307161809496088911034582603689481370276266960035922267440247977685407482117174343428079354061408598462243903219151881704131682812305931474005088832183665187596927792887629666694441695319045244331982551702028333349778653558921459497105191168185911494551224640627891272724752592449760692534746633393237332743179766088051460007099837818423910231567037140055132160363110295816491900690049268559657664380389633944556010276755167888723857864841184271959691331950910099439397288952457924631898857911413996322479265116522230342284227121318278920755645965665525902308910782197473353177909404275686455668362835571753600466672658050367188214652247000299314997289006893654482474936412717129055414740992738244837903658864277488459057230460609483214584433700922976637068637491694898491422279099353631694140281565285014460500098568562906552543134374001372792575356948992693699046381640259404370779365376415700056110174709839041351032174223807484852959575598436466276675393270524536561325907117684058595164751360576615649880607161292859251312291687471521531120525244591227788677740130475930684429958918677756607592243171009805692806812824971316166916417467324378000079492579194542133235168048942750691857566376644776797946521328140035499215019205518407525882071318793981227602655067712399813650288364635916733815620658894213257025758187064451518166699088027501932373550990887121577589086665799442315732604192775727858954427444784770202960523518457573287175419290404179191286903856928774184061090313566658449982544951763338604917753303459374330061190652014369639151893128962543935553757863217778947722236590289696788760511056904095524614009118629660592495055813798264334251336561954391213432643293066708955150476278467076831166367636526599346643080953929257285096833240524002178855983869804421043034328665311798337744008034441085202901760864862448088524378814010648941224597640812621618340862511767490862452034455342914323006693202693367775689125352624831783026384313937876466286371892551144524671002363534143697991073302625669737215268277386477006157768648795482537670565380206166754368996164627621822088824636514334473198228845984783072041740322329110863004726108901169342631797212121448620317630468597895230162200078528563655582720670858544948169048881648976539354273424997414402019630198889960385221587312616759466191810469160325429879826307698199993489873660503424478312671950728671385684579924068082523672371437079474572530931217287817265541925506761598846219965347926204560619356896859853431239626155784836603746711838330090912093261673470628381958775578593695171742942804632633340704412258661001524438808742028454331916633188207125360488080314126241886100726996952435816575738181105156048449670883718754998016529448825420996881549214314754208376897917295674689912957666200547415233964354826474659197316037657691336563762799148552991722930170491328000387025305846318693124368622713437385459150232886825540096203992691059305224336035480162440475874962104749929212234738197105312267463957165021205799331827083836275552160611381939749345388925197524605354794200996404773443111747751995116863010646006944084922816402917172816310262586425070804001403030591099683503011742788015138886935864508054974354183320571676952707644601891834437293037260272511020617248237266042292885027147794220920858022641966893410814921278327257654667935315683981692865167776981009299100835774823157025020513433924838309464657393939339065352779172632836807688757039582251650131017151988412918155792483145504441611531032642118500967925047280259715003772376514512414693328375904828783881666287081299003526238596540578149377480430449152023907163835135969714459712247719419211906810657317676429941039951087615262882999866617089370939766578154945904586554679126782471872385362335580064181720248947156831707993579192990757224108913462643388667694216928107763207207120989681789033610078227029218071619488337768250675417585312142280432252887047268804776385772549871018876081608495278733727977106702953947383467471293935524625127597027415541137450235869135309428260205964997720664676328272653119833942938902048119108598742241529168144266195272684673614755684984465540258605230638155143506409348840465272827985285284682339769034634302007526833015180225932333915498266355728714234184431165617552815752721033246991431927072144872997399747678112221818456211185055503021383222452724610504207043943761811052303243084667708068629947325231902407167798461354491042925006940369284373460379287975465034772889743597823819940812407962616548727537424142421363795608013194219815529550109090919934413845863290817751473378445168201046900179910709303624121849179237355728527326809344077354257321849310304129607068800413764711728954746195420254608941667141203078485671979659832633411285903589289128514704598336602715633713745458881397976030603575771162519722774763678091412563552320722106903210998106943953302432194218269238007690685709017873292916162344619685465615880385769296449014517637988505859498512222594203154550655270136734403693982695910054109234760822571684344924860541362500552034966207143123663199078521861394293327811163863784791759527860671164640502862799172419126785831353674135221881192339348281708021239948951557374516642198288425208250027031401290975019773877123737887739186152957606587724798038701814530042635202165913824010146155718121785800723160253023830310394393402487578321129526939521649900258389616411088400173671713126354713576451424339093739219535951427576991503532657161170484492893650414569961589188046807207519473817043792320311763081353454593403581461362829329368450485228112358063212855864965449300839032227745347443822254899477521386895301738872213774743199313168977312520819972531348981652341991959459007896110638013003230899672383406447343954053856839092385789110046969333825824717019852688598603603901845911517381238834935115061823016561760788126795089384726850775050892731660308970806262322059858591735682427916752931486137009666857329829130899554488329132860875865645448970940277328057527377173553812150500197278028501698014226035420765802860025749957160707327295314900558096248207075234085186810309255445590782697826992691280375565066096130247507164265243141418224914815934727028931785892593761798514930758648835612215443160645275771598502355087496920576690244662939031066936945127230500571588679972792028891613117427721010495873050900878800214396157759676973054995406456255740334965446935864628371421540157160621638841618591208737252329617605918209556426943332048207318706430008409886156354850094708732348108294773028191383703548420476244231335988561719099868193146274850956188229909453204950759390132362559342448089303482360580932209509232934747935302396900454864026381970627290433302644673017831254587693619377968080574832281192580664315534955094199296145036831022807442601146785903666179380054579951668983282098603171769105042811697639116671567907794827095614934232654464064438794744210563385632470287484706045518986853522057684731816459623638083927996823906167149294826929868225968786345541991711631491602138284403270837387796846540443485725378823172385230812601611384577156112864166027465595049465323961336995439701558556644278806787502962676479611191717489899771675540544870979248982465605859262478854958648917614958856391847867387774608328628800695601452575630669591984395218510286182032508537373808131735270868512368303340940028147622579776996291328444273997831449434274946565789499851858400499054710136877529307758567114560403505660850949986946631357944805182878213663645625899311381021183610230656045905208421994788945602125330552973415583284957315160173932757568414876664360607231803776325577864220834823369813818612705592711373024401359563432974324744552355211829738045464485232451392485139956109587748903174151707215537118965507484274227497104384398653956969511837565379379258586933193079284349723903641596875983882401981462943046635118117842992823406816902190526697888163506681866407785879412684608276520557841186011626148696235662274468036184602825427123655396362074477077801901345712087233322569904083105150133169922629221964987779714175889442587567365589726125597150114708414105294013982607893933637805698175248662085062812845698786641610011500364740669257003111799691848965357616559838628424574505844643362006045987415577254269920029882492480110558317907213027605001362866245534394465102719544955049692945399782582654783669557591249246129952062452995824363917484363986042525461653232934618792074989115871205190167292911071201105869835761237184417994299787044785957514222543814024438102169008910847856446589797518474065798991099235451303058243217541650907120859035803986820267475645978077727486232596810604494308991990297312927204828023712621289345051222401214765365499579023058356015480116058287599481449603772502986959875314055389681859229932151566478263451592143642644610794915976701667248242964839138331612995038628700852697351588840798230656126161762553644818366908602470261922556213473754334109569954420051699983315519130414320465319237734742866027558031030673881294579645722143358615936483153240022228805390894437147805088206886889112452329697150458854931567170532782897789216011533724083317134387776826454841978078430527752741074556402298557415076920694692177390036828462472349409697618775186541709500679888402564570716264536545777713273028106888127638111016278010551966881872410926109435622788705698854421406349245524400786799312634544880678801725740235538427452019412871691859251953419558218074474609137596221400062075016711604600150116510301161966491965503884932973011040656189142783028747028614901742812894117109368647087427848416612386142918911824622958929325849648340107550267600735724683056340091879819598416762635446661946012044561209170332760941713166241563689346334607544114976129340049303621615969381957989241145695684633052278438384464105418679267398714138293214325558326632223145759174768415732467032651767301427588717780793892343933640739584635967211388457312796235924796395023584663367332301637678443281465511824876136175933922874255637849668302695345542387299273216558157171910307879847540611729365349965736739483081498991954162668304405341333248307873234226707765049402104366193780089732007118151673244883637641456155971081878539487121038609807527370176481928332983967793524378488954208419665813301615018649948675710947328544539941309411940326200983116932914433561075872062770779777063949181584635395289808151199074492091949287814840162439249007041570004685389722041189845483870931882081740844063540771862130290555007593556690106473687732239341416386045902743816340505036876156458056810762628976164670813639934400836852566230817680063809103482732780056183904422052349514513863501333661554714703227703732895219621379091448878376636473065165525810115159193674018855526754058821846355771931407975472787594593925476746158431755182695754443097331552382518301498075403576313769229413395285632254842117310861204486000500487562490053298861451452482278075215188955815801297258511719310774611999504117595392298495680090829670260257000072136680487122157373021908420310240233889421887199659996528130581745772427803471847426940190525575976233033494612213237359348946295131199212844770738762751457266593931944368667282230961083015722207493449320075875279911216712726639091771430918194839389715975025531565051581206211337994940252438947790487176203527825139519599839912678429951754468224765428640995787373961931993080799568582587941104014192373333933605965646432864059110227233212442071058350516849658484508252174972700424999521634652077746827549308910433433318407490576644802661274561576362088673454947430014184467752092883442467378296466848488286736313363216886990867355571826969041622651613002873721097581156797830863263092181837290291405821149353442248545215989988846963371207941136932921570707973200587756087681119669775333022932236846070254665060586090708832008085847872564708511962683582678987765292741693865922163739617369363317125731442653235526877770495896945012674995024110066698226921039439968359115701904511409390706452705498814395325948193130430819806895550163600267234338010422232964527762829634395075538388791576791061826660013465668833993584626596605063566299867034317721360296119053298233821207547502544790255815767987922851537932987965655499503367064183716068532488896932801033903322835608679476050194764898117995207899337904014610334386308465313908011669263317855860951437100661316847828401407413684066847997118624186453958148189563750123631524797021474669596652711256820426612487310435032104635743869680088284132885581091369363566792898542474502828204853917065831852841860612875057464382753052042029681937382311104403804589998265844306242219615861058388529806479942412584398942139367368858959193642172518838580787199352521599333205833332114868639020448337366903256976314241395031008647949338831366952007388671553105765080190534327419757322435943016796526886919641508094685081289736531626829814768708292791512335926575143920720812459279875173644179503136143640142856080007219975607750229074147743362544780197357141451164723441745749372843650068754846491488560444484090058892702841568030652212136130053997554767440683573138187472502599706721867927456346875121209174794898295292594102776144845972293454265455383082029215365608990368423110805646578196747105089569662867815988335705419160453601381843309846329407113822260228276673679461855068774196809205476214546496978081853420820297770241158058544935316447889825533790585022799802767863552849461448846845804992713225065401924318052588544583140776663087400164857801100759592327622269442060048140215988096738398660029756433790473412928856685058410547613153218044212330536540699392941559589797028590340489076285886586769698463601224129101907094366232380574067628653562565768147128419246812786183218712370589094449110602502619653502551503908133650203184170636349373075994062894565953364782773538856543919042795576020629717784301389071123644730793148900882225643215757392225242745652519971234669870647383399629876199894456857142771628929935600931220130261084840092329830522925127204109788930574014270313073225203056255143844796263245840048866925379595341251218366359303661354709150830350958951349196936801801362191077313843215509713211424457945454648560020053533250084433196005725638772178237659416719457055160788987084625042268597246567000807346135906622481546329666252517420055460078751870433504924769800341586095768720644378736599021886037721595345238173117982661267314544587698466885960953279565224817050902093975085103852928377016022123263380327387884731117234901559696222941155395598468603533951259464210077979250044302224046732181665808631502095274821803816135948435398794748230287578090453626156876973997569821091536550364501247947357111423326254136316093481263334688563342990828880590114529085493934340304393522023323065588439059587039787502566424828434236496928620858627654896731716758622178623748053483738971536906719629213196494535456799660826216345521141581766103394354683784214799068279657501747810504133792166452393185377592355854341121037821919433332352063888027703593906684475586600474373183306876469681425897215419902280664847661200621827185844497394551417816614112613796100229920720124753692729413457506867778280562716442743780135109676827862998488515513851982229459543991283097265359460484780880144374341107531078449831337394967400731463322936419436372852320415841222173832747862507984421850948493027236532993827985046491213694782762527976454118541283152982733435863617613907244184917207579497873208431063299173354501871842836360702925786056412096191775673250008984226605349159149766262165203197810660553104878481188864746152425591688255835355420084032022119519944028896212567725601739296351068427244341848066785823921365705891306131501250996295588717886806194147388666549725417538107378949701774904585560589905854500985038955939716025501743308158579107931403079589249172182421249404287516146656833330161286501024569123905605159498376090204182037143026553628663733892319693925013973217792687275053159322738401010555013896716377433696242795992260398606823692271416793533083100548502696924924221216783915273031516827162987836197342127327299670650438198296490744431130152596146580726526865028560149679796927538168210135553427625269697224685187113460889687728618365033682638775462164968160362252736909059128926066896841886425102786272961289919545375465151515963066483370437416213838816021354287733004182389591356633217884572562350793748490374729103828878205056888108932965146381852633393981381165612450690353359402604844822167384682991551402016880336367595780446244636208345519419845121739088143604418207275214469540072595005155097033501626940766796439721893423031461658845725206545292585718666086345580180008830283028047040507311042597001595172505055403674013427908164283378521655855380832928853663171893109348993578566529403839779521957161882595546241085256598703241596266146744162969007130165739060961497816013964164334646614787407802547388002247921979847086797198582502780087805338686140933693719849613124942186301708947949618053901735555391451318233541582190407252992441303071265421051761984755356400990479332830142521358053295974807414210354137253898949665095837150325329418383087733514195860456038999127624604241309702739507731954276576440131003182467917368166483021082913325904036364773920899769646264240040897286814925460133571825313637049114990543343657112325779950447796264376323998772825618974073111290695194493595325005958760539757373240630608315273535115160159817530874687396177885312523698909298548899450626035376088020569313406853124891038386367826847568732949565198195328037073038030650876711169906807168795929906412860899536392293933201495772634098664457718412916368387263113493232549527825685385585420718793799331614312465819943289137850474844125228078316845063645578237268016732484697288349962566768019545212809919674078104373449612886016977184978213738337538628467884366284733255817090216758839560385527111799811378545830924476416675213739123318523456770605269486674848990707407615955666726815672994686648231931322583156272595642807190806005545474994128448003877625694685074808217511427176244392984377742998280007367045775633730180201619570938270372605987317583802536326577837906893788446192179101639712523937874490879975197443241895888611435468811292245219283675613561357641102805282646603405476733079099251162648323603506100181045724517703530036391347700454322103210539654483816607405457248212380594529512880698858959482003464715221489076877292484696874986138858399934887237974112084042940512526531810119478426296809185189763968760492401820539215399197518279570091428629468625378048676231253281478015052301643043866524089218892317522860100683124187013019975082029214594375863665092633655234201242467132142261175605555999701963458507031538608072357196216407104545256022499389205765495487838475301293342113820349067350547678720851978797256668701224663296557185498262475183783321850405730790752573305336552792655414691556437208097884449040247110233201803542784440783906232383926166384558824251283977224574173011538279817478740530872330510444146307557977170830855667277521198849409189832376530063634144399805803364126720158406938278546066578442896243732544625686115627309090760950975413129246190875734367116407332501470217831351113254761368582812405180106284370030163735370597026757629626843034054213988778743398276463231774345687102531567950493171892257548739746219473736072983498242866653755982278035246236339557670662988219857777065180249503741871383195925755390683263724606885041406843258972974160059883959188058915101788272674683225179839533944815306413664985685928306452899925173877977995620843201910167407756970151370815928751122085737036928978161601405035979434052709327604191808255803986479012612919062151443584436113046600379955724069338369968276445307386278168992328286502504774205877818840024723118905256420929621425862412079838662230851655939733180797773305242506457018283384734970106075121474495232343585713557673271849591065746525728958412208292025023334961749033906455229224424568520948460069346899532679555996849019888952923404372610588590996046463109188688288911338643046982213839364066902217091771505809509806461577785255326539993334892111851224042675173989608157811721835801073431194708708275143310459953853741054724585720643988087271309973408805113124207354826752010789570774557415899888328012524762720518056195566055442159332726824023023028438337493471080545330161586664220255384161525911739422849886317208522274910960346921919854960413398329293447094470066754220024133552840719819251512447528533127894319276660617898305605254400608318128416973034115628229774793731518953408752585009227750849908949614104079950113020860068884576567820833737686008838144143782576085187783434878094892596076575977093804444646805246740042015027999920140271357121137952862696885333550877994768973573112156777657450515296873425276762890886467851941583587793763490876011444285818556406485299011397786147512705794922182734537318555215556638759718299439273640738397818508180641038022539168562916094002183958949869330158237036504329518620033318420495369463718714064660487725312971460909498318662635373394578762178286559477701305636235329937222588058519569635422562878722307461847237293031097036546417168255824030009670699545758799955085032882884730332945735486817093022802200849381731284205385354366267331457402491324661576771178574838709121294429084651096447800953138736626370750152283586147708245181644256679906547677945136335606724481866216017077116883037808488913055852668937080333153948933798610853249748968474367857485602226860808759733477077809350465978594281805948859050462709328881595810394749688436395838771987059816764865382535221929029533570569495362921488469106313898053420997978379209764925276766563856408164956849094129225528805528150617719206047338742614053348051735844680697029580132010570755652862149329527249730083566040564861022323931884217500227761134194740313009067711246096107684405550283678416714402808951995521985322214624631371097740049465319129838689284766875961842130295711687705388788358538159954762212067557810267343202816093914195893161557216223716192874563463387974562988959208304878151940264684948359691631745751181961115800403217887065706634569708409364779813504885376156003282430957657066559324486146190496256296916676717659565524621344871310010789323454643068003012994306201902520692057577898787744253476578798800467263126243568142239749000018395411109074355845086242665101608387725612114760306029129355173928591017318170587762497880026795520092023448208156867609130712175402288280526920364842690730979735305072397222749458546726207400812804198789417242176308619905722333664164460918371982415440898727146122523653918152541384521005238267974358571153277238990635150869285126674860463855215472995163848661790990495412307131896858254706239676779424602640846547654691331826954209957423603270595204643102199314510012181757175530419551409798169704212609982894221236066072957822702782586810972466324891764193737563171792033048705192074893539982987509941697369134320697935422123662570641854795480961226457904342746179687894968404069776738406569381134055496891720138999752006660628877513081661231204729539318111282339601188399740108308622229440467579835405692685228854103627775091273528575848492518681203234043062009937714795289565135347681850566543656959166322950134087748367188313008029422400915460745761750032719124179652289869346368242778769845735694256373276445994849467672858578109836679011751420181231053581446269926080499744177338068082023902490945187897245474918611692449770171214154147740926405837097898136561337133976079964230031566361328182142911445742343292353870943407180020560343415079646990416586222011353808233876488386139682025644981974959125548608730490887115384843974202427898934216400721321647576697363042151193077742123349863347456651600116281203663375889751664438579283764834720496033189110896451012527991660884163522953516468317336885521085257893540981057467719322559469286166431430332661603192946625996699638657479279428425322304387992754558925528565422590677193472951024597965033414594158493347624352413779994020512851194767397247132020936409879326806188993516631683331870084308344953071094000962727135676897585491484543172975450951728765417626939082861186330949073269026041955538239915718955058319143707022952213158895227044055887393656973758791528546217379863404111385477520548016734928527107035747367286311902297882678935438754622739771843593842870033624662794136167971161190690982938405396986697233817419761330336568277636430634204984739405808962554106645582521050607265789896196062383307947078918633780765041620498535454828191403462233886702306827611684091406914560887828424471290759853510927346131704162909613079496254139859972570920841562597779467529747997571496503361186270051952568538270446293830290312857718213465977875350325850021396345074238374977518635892278060772701412744338916220982140358528253940027717558446596949735389303938578804183549029009723750714515752364762912283248172283882813681378584629501395161834581838230308386320079918653994800239015323839916153556611721998675207182187599586272582841525907134938544825766145038903808338565214096708680958669689643643266051166443169817251902183469937193576620848571907978541498649418391924355412871147180566960833040017979661964244903913753470907214515054941442950262191848528057894615580631701313502559888524436844935883566759525822673591742858398091777074750273121368466286459900298198244118470327442846566956045145624286430387572400351680919572883105631798482090300631837725968747518845701159317953253721948320147856475826784789137983116284942218730905733316117140292330866913292639015721696646416626761990970125187235127944619513884595607707540030806514337600863379012407472384218193726327369585803570600372922758419000776419803453930018805744395784919625885743361898066401793782834703080670265738878316742685239523056727714917079396940723378806019748078220766870830310190654057691308960000704280746740517699673481703946205772061799606271409681485181597084669540058006512638134875562260749706084829589898610323358032651345992147019657692441734051352094528346575716838023982397094295329678152375108675241180360088393837761912753048344000116201942322665594582209148786909208732683377380168197772880551381006858363281347984602164123713847044548458391713925473035435171537909240749895962510073646668608535809964442181122417237140049214002853078174196728607717980941960668652242760490970518377884850425872971371979622760406042007025219286258870250347762154104873609136660038603481471569824243114094314618103501674364370129642031138453408089273752283248034807355700572192883534090494103519139712029649189026853835885609844255030898552314405207263827038294105284948403555502336253786557484738399061711746886554515108992294029375959892782069755818319027681013734980136449358043874684395498458675227190417103041324211533973405124748482567793797601820359226841082817197336940632520970426138344019104957807179847679696154703538944617217815497008844226993631738942233398515721835057643558109055572046267069706411281770610172861041538805447208481143190932180915416878562475722941392554034337892298635862825168307361612310209629002056799018813895093214997308149139452492698606915157428862322663905121692582619241495414931375972088076841268081079978039016200659140954892681063239809420424469852640605467476472646598093172573006276359246563476439985548034219615279641467914202357604784192138234439724696287395476644708121740118362358045857371043811827399384639988842359776457157335130751126409065244969614275831538919339250005499721197589875826866541320445579007173527718148321476210416977267529875188361982395297927758986968299993461542207992794968716885699777084712365712595852121414656545093642553165331054024056705075795182456295706559399995387864859282378155998119338521478848211733526857717326556172197115439727507273866471714240418532645759635623791442029785550560174886527232473174226466008589403091917326226411828583409287556661066690659258102252113648194346204341829558629294584474242010555672498533679280784929860332933211254886157282282666546238720482610985805988486039182721568700517858144050349806017156508101541468982832083966721922161103931046343773728163556003347397166018683740432072675072368281029807882866712153046237072722037439863988097366753251481816125605547024197413484006888005464795553190638433415384080100098762647121295877179165190691919205266616009485883865438313790126036532610883144215219936738402181297489662432293213226166707132547859614325515600036129189181510649240172333577728844627635294053351263301273791658893618120605038716713026282699751105261100138091359755797885191454109495321233242815055549304814672531461691781022287883599999258984875420100936561397581833193960182154627322688660033883386444361844228325516141323987273081546647075850575004981611473548997010506174664050761286320448848081311653609365244563043853850402076974775069211037199362675827363592612370328564032867217953306339917153194765475063995087670847837565303681789926368086202052417698583637297156542082880984320839098762909201064678989812946626493702324556325946758041646707717154771514672136714654070318607599265554504099944563418101820006395660502875752302219323804619189749786289225286385465256100776305088064807929802925856440722264254719932922425907513391015488647913260872379303130276054727450855972198501168501658929547587640516359122776661861625443424830189802953547458809412763905135027011551788191064835875976825306851436118458269865888571410707406989724848424166286153347144377212980970585093755086399356811469544528022017708425260154887705482806020530397696600245724085572743774962344712581676727030846401107508334604191694768890045681112704170859818600797747295443465674169754161339276186626249105426721911347390053148758765536637935579567683490428465462940968025628242782706652727286392563395247615792449200120672946499708868861926634699962358340089596976702257552171903546378861902267561158613723575781704130210899643820122299062794568205796936184530989311118686288589382752470583849407193213714986618460016230720256893792828493225104106640435571568022110070862542158314937521095911185977149795045089593241750748338854237735813651485978998523343061228985909155109797934935721649896211408847686838703984431014894960973963301771163882934333567099399643949886374304057011933078687255876981883212763176939655956564018761273930657173352425566871794644602662347270694687661280247002612616633499424906196712089983447365413236766064453977585504522772367584387938139557726447071577694750345255003825113359499324142096510699152601116675057563865461416397725827901924109941473210388162732112080277762609547187130617392535254141502800631802194785510682500339515494521498775675109910389501317397124123713623294957144048897588679857408705195049723916908886887489390604956743191001353543100942178413974017056254702242837536655445062261380867296161905414273898726244260803125662759020196862194562323941936499074616768728958970182201425205487772547919550164748484174026215146186398492734428968689260346384794853653709489957861539626933149726605999954017173263298814739343535480125887241228290082309716407909747344024607288203401656797350334582378713201145637650873097213818219851319501809210358090813690710023571116882203260133504570463890406137005339527106004296245155996020513213992056250627368561839439880288614874761471074181787757756245402949328807174698138754987803861249742236958644286536555999174396687591105929052609505613598427885446782845162230222722591678717988201612400696048733156285517345839787594940584429115722244884510667482193033015371812131916895773624665116200176336388485802832323101689250450372800594924007681953089193649206808059165690305538605223244453136413042097941791548418653103581491139871157130487166544619121149182609640670029779627378739071154508368078578423132607672289810019857399407728344306689372281269600252196233168940455029730967255128732434808222086909205422462878011717242018412824900008891606010352532621550008325575153331839661849201836635678335586732458023827580009982501258452344331070818999699509993221449628953740035329938871194358257373046840502235793975305175020500363596613336887585632967393008820962448800219390750561382903585181103951573241444848425882313624799751092492428751592059725497780475398040219152541239718906313874646455929389181503068950888883889316573031028291075514557549371348707808238911324214335113320043189126051514650344624833826397901520341882493887905008630836267938257472370106033741011417138706060188958070733892888603409848041994719224002604661224487601182103022086409710606093266903506738084014578801582134199902815104133183502507059261381648870905374824666363259933470115949621673425556652865255891949443072096085546667914147562100834893902172113683507653200367743155184713072299121580337349625309536756770876878889145577021600580115083384253632140122367079964381042410319861432797028811397792651133434228643373117699825070045564025484946713365617829779604244410563593279147704515126474744449896627768804018516668893072138298484441130869250400540629974634797351644157143040514193246499722945700143437297285825243838900434809487630277399654486554527969679383749101426214293566916605052227525823038083963204251420860431643368900149193820257338037567302398318677665063970519731640223194085823716612703979410257946804309201403094854116907716320361925724756480903788598074397767037152691897296789862710854440474454148938093241515289550855517217718056264771750392342725440312218327629310482904979226650407122410067824172384689577674599007850091133184205489433014464725480843137584377401337283367861601183461803317976956154292980090065024447497362297190999854464388146826588559209573732343348259386736673929430892690997441458624584953391201901519556713084074611211923014638465856704364100318804045317614760805135700147949307591162841763469376524865425177964838828603096646207784291325512108097836151057497389648121942923137183485260875058465653045377576729125727590901564959478592908140549975202480014449450053317334595018623979106465092530317317043634827777215278983723497252619456048970989267895874254738407015726715000670613490231300500335518613079178046659029258069649080158114580807257833611586045098197963948158213018153844127220279929479881715419709650722234415486976787570779053753838366189760986794646119836482230693491104585405230833317713594664911722830242662511438227519332108272074617017249098283028526445638044921813477343161875844198727922046366297909118849368019867124498893781750178918945777161621390704187288122511977537508495022897089859421729168052118591581648677937323684551743646299666450563846748270508027305901274400430061007613092045972227493944313621019124606308057700372720223766248874242031896128871809091561706603242913129612838807676890665350522788964412470366940722075512944397284026797415316136241339578072783986501897624276545287557925416473666367028312278091145603870117737595550899044003048497273251135923114028054344116104362660491367614803529653656926868708807698397775210037145645136621277106772180707627071761824215854961972165123527185349883698220600623990098642439476825010554140503328426030908844478642659788229187946266447591541587695883426268172495970444907177998653691922085293639267172846288373092588443003493166512528178272099444088774938766850239742850159886586866752405032189514099460387486207192448811787651860892139281957848727606061277061870507653199890439529287817845922448024953186270801489694890371661098154774057026794140596214312750813082018816925719000119083306519442463614108932305375325454300209376408402597061885503126762958726913597445047716796058753764286557153107426593248025029668958191552860585709904052685969038508343863109972788777494573631160697183992431885725885048207268069729319307021596671161866758388217437766009712759330864896904504874810598513867247296302459501985669484697398776547767392590828304901076613048853880373727014605981233259174468828419162901540247247854785146831833208110643266885289871701765586474449714906188111494910983216156109830221836318343766521832497114850870911257499210254259519985685409649814960471979626078282734981864273722795157745113935272778338737535008116069586137854676927833675914678310528612107284820602348386948598419434021594492306966356927960565742333318301322465176908895444465674707719439094041708059863571644533545475908387488481227679778789124772266793678947754915087642169989806823377314246512670050096163813411906138817482890175595547588283059328337581323462858486275525474734308642814999799915501588111646911510139365825700791061459810378147883134352595045346226236739684368364733476552589510282067741480411630060464344333463624259648858406992976043971057583782145544139128396534735463409068194944227872319295070926015191648669035009301649602849545727387992127740899434117506264371628262222198340303142326180273855556157057490933722775908916327545455024656994550782806969536648193749030591769681826507865313412269371670570960785731667763783110527759016460272092944490175198886710530117014013308403671119057508314891852802332141990815965246339092792840956488938033194497593003408356909470159106862034720129248100489437069989798009743884317610545389061068906607777659515622016121698477512325323332582964165388197607188205679547527666758939614748434288656932424010774293724747185890353566601356054990022366826795012554433711569112270326130587139206874064627223357195991228881626959355995028832621843469800054483387605075666411288790914011707106886566871659618428093750248374597244577884932616900532124984778808441930187137186651010695822377897528592643854412486584630741438056516260924806672900977872673819847570604406548432080640687009670023803813295082260107811828944042644393149338098946801442600916659852134774185807215210643483347140760481014294030456970098008852852227443415165421774122172350674473517515071420248838737268248228981275818008886542919296096937867331306736979039718801714285397552062700081368777313650806184294783607103906961077636239329603896792830474755687533792058262204892947425184286226493529280163280249637411053907562078084377348752155158512457338638389495316548410899553038042834042794598219567448555491461297120929551440128563987801493597287591282178407139568661370954169813568241014961917882544749317545129967627449396126130409539676568191695133608268869089648907849823416670272641707472435437314187461811175550508426281860185422431636611190003281216791753553254404647743485072862848127290616534540924021667717680314826790889414034456951990221958323201584011149433825072714540125878699400050154472654875689980160820534405482266039518905834659458217786413237545931712776618941396122892490428870393947721389164149062425942931503357623583948971449354764116573074426811181296272974494631363855750554262761202901465099836330058115722286057298619480508372020781683166090321442053143171589183394552098469960952853347203029900400837598266884095843837704540813844781123152777873337267491024605687930702167291281447937208745212842288613314265458881097448855037416595393743539474397420493947131775466232659846784702288167547607659248708918460626593044023982188351450316696913470610583454233728579292415762070683835048490341954273707394418137355571812711472453301479386413320006338693864681395796614178753024145375774641290032215666881419305719518153984024456556030417372465478577527934639607254579363078427901281595857362667363100494622275035307296129155503675072579194754722211207476728488615110361744858013790311306271676661441793817173488152773437511287906348163193338666734151983392720819461187846283279969288040206446340948975954390779185408972791898442121617120616600648667414157424556058688107166508803974896388465023673204621320186072274579534380496360112733679688680672772991970605985433158156504323364991366251244192284976301368707122891040142765382927614123087539202834911295235792589563804372968653303654376011020986737483921796576100283999026750341693024269894858227065081397885791085222332290150275101785140964589243818362382423096061910985668381945857946770119274159785272448056350305279053053595769763816631675865364095854196008324204811240563416439772960604904275191581248190511696318976012656197417640686165029127793112019119677525790330498653951857490457712262580753688523465875300489780823878769641322224334730161998828391775128422671914702251776490484733748375725044752004719360100275634622256166739292306613154821279804203618398040746732895719579289413932115443935107862673041027745787596610489747726959334554850548448163742408253808892238438884987654819642318180676352429010412570162705769251737400064808552317615190641990341491967991380481619237993864642954672031633863940881440725954018063627935427112124970941467112846067420782569094796044268588242934372736893633336802471692605017866455832966658665146689872715652434322563986790175045746363171574365474830288834044840122497564331567127720348263769693833861387648063923709905494160601841360057500227904959709633234759718285836726852711705235653983872260945383740263198556794512278639627604311216318380516702997325374384702997024393877808014135450545620593850291870829095710616756959749814845684982935638084652642832111179363585738699056235394752912346940435072489871297217444424254459335878270619146868323467832729759075713532321786189244872382610033657979042124531788432836054451089412755172485057629524795726356155454223781653348069546447083587925486413355397896177614858836325334532842822961644910739128851395131807221591523988361014611288965604516000517708967735405393987383370196979293365298545245841225902557835363234011218273068355571526885590353948382493678259903007121767828518665613675780038401977268328413789971901610846549346614508256762633366373788424767537892627818169626520570977993054574874807796213340271010801078785093841075414709515433449847338026275600810046081707048646260025541100779825333757845616702848535822078005415820202817510608289113868774237429993914636200601939042657870804005205586871761300316016480341499371350311676159923366144752092767410307118513382892963064239964811953915823819848289618281101637530950655401535102013094540146758912824019065112898470653521631240935464261140613042036804938180554730278466379272340837158604639111317132087424880583047143308152492628645332622767164748639162336270673685223063614974873228033123024117662521489882332361971005653534363538480745236063220946131176695811813248510786453155007153885370655976019168482674550440582788601256010324345416779466564136934791770113279819621041091720927070432994247799771738395708724049165715933927589220135243227171190162676100682706836862263411832140482212187796839243744857563281317747526634402817026377159070421295004222357329989016043020243337399148461637624972665398354495172097261690947437796383523217302510522539893097927098622516787373998479750388432670176775657385752027335306958106760096348238708644031569344995582788163346104418128427348973991610937609692579974507828781856433235049058398087213717716659749945792827598546254325410509786471804427133242711777535049311082398599452741969922179062281109009660604302800741298785299072505272195466749611027789916671084537653183959727008082500750054463516543561707108836144682918444509397103992351833373325209781436677133541405014673776863033594027870411556650800341721353236301693723732052993407973807839262736985183277724673626891157685835967135220249984164984227393339346043776379064493900180961732185561322623147747830563970863583580259307602111284840532878079003446508523521389824822426810804850036411164274864114693072102309925159368761856378336005489741901244113318567662546477258741154988542562509339742311525422009003101172178558143914872892087290629903372111366280169154749835852079646531950929551328529902017037047574924774998336743047222591756169009356101535994453206823436242288732968804595608679755547348821116845529327498725836845159759265641227066853632200574580196195453575274489385066168357422288994011062293770114199648281925907060402464107394636534117832650374178099806258855086927109962109155243513409121713601445152764189691550160993243894620715783463509034737130471665601207392281557221928976605219799982531416236303720081589210438587312875856385193518697893750240155568142060581973867671294272215747438219612377557991584898478475025219048560172923526904857289284518145454760072035363444051387269670689222151767656011083364936516484016270296380450973189200042127818396061376730489833922140524139492769814543917166121421652709166129281788427704067096369355081346837808933758570997547229922610413250925235428225465430378307469173282006648954672123810694207705437206666946470509588950260744805016999609856207562969967787922486486774169236383139868572190369763106756228514758365559106876635874559133282043114690174206352535242770408106313075838924655407373174356967069383207439122757536226342421512245371822260382630276197510214583971406286353100073525055461101705739701876504121160927205938890529324241850728812140408153225252911556212707376491203423717165850063520640717065263038943071512744611322527775597062972422220131120657128091520432691593873166176520501604206953583252134107872067609884315015491873972901390844530474179826313685779881516386398453928402955439506117012054377461720507695730366053274282070538325407411415587191048386347984049055542471994162314400701695255436416484511220529824617862841827136390922688994136727981941815039040247143092107294323785441399390257474847942228947006974381166848753906658598731832796284459237176796115967628665483627484067884587754185459946136319400808569755928977549973573973147024738822434323056281908703381295769299356228930972324884985238421240086097243733154668651807346587255048342147926009299603076841462223275904309181624727728119873332077641486143212894525804316569885315580107580623686879531663558110600939702291967596370568784599774932852863885652790914824911110097144571081829224447967801955510674811582522912482473617256812132295882805254619822146650522554009126129715363808546253450806363357944215533296827795560639750618049394569715772084015212342259036735846968284685286562172811581900213995330872174225430769963714119039846571159580818431813029313988735935822622900690010332982403578976349714674158763736726754421758840328189567675414882216202636130075457037615329031847972047181838683679625571766447667500401022050787409103842502495210670641958279078564082444275171538338127107536103841709349347315660843847124322837823665315651265045505896095922553024186687235327563748317398258564272405326769363485493073860694072310788428839801669280224993995516620877265910434434325709515140781224811940454623148806757184058148148757850062585004097350589731612777173903661229843957370830412946175401778136788363544144433881279538245532546944065992218237810384036979130066012578765360739134244133688850963901993455670420803121365666653867218834364580128038865317716851702145797357105865818976845574362182477559062767980164032018979467102199443943375082513981089469322527819397088535841856496332363143700311688391206971983473922191663854170604115287825769479803867816697752562298082115638646348734327147496297184959753401202847322899669139593146266180889406297011405720287521274692307574678941330686696945378701628898640211140829842563467798373840266237271685459692600228464334929589152221404591739372760546734732138757247974395998109963122414944579733730549841398495142905733447966755836062489139435674847321683283406193250195325648506675112419339145978086599937571552292754014591023715992518776365470745267370395194100100943254477118721891726016023172101346158572924052410303895855921706558862130232684614807473310981928144826925712359916530854401359960338841926329333960097418214831971603934043866107231593764684397126429805736368834094044040005589031497539893786339971713777040945361409184340219290033893355345132545849514639583623475934737715442505023253200136867174281370375076368105317094042054844093919300270452730926777754978508139956318292449337018077008252464394496629266626702023426042961552363032814793480515317627968177570924230347906066989690046786084718865604748336454831884130015445498522439088119616476895984897535395197643947094438671784045437654066905765128733947689901640647272412542771633628738263268644854018382593659564594942515837495043387325160731940673265129873221375112193831617940169083189100970132252585438700887958571446239349279639437647461766746614045883574132034757531364690494343814570188147378128616956974710701413325391708347190787735031307729971929934361754516181866791574599668229838685955191988079372095559867605559559664114219652604445310375626482027797372154155582502054662130118081944630758814619887904115676362572093075216223781262664249198664596500978887767840679807719500809096337995534143846420954821920345249667400668825881567553093230692172916495770450234428959974245293066452591410751209833752119921079995997226799471072959574885962674231153843123861261964823169080925438420782069609864327291170286871423707175962698982395812954226266801449443481659798001406908165461758672877701858600981012116218448072641580000697723765515981465456361307101373842009682457868419186705102964611528471959278797524310934341782053258241379143782773867475495047961333213021804889103724217217587377898480100630020933345561506627840370298210054216364424973970806886293266059101339106196693668299186269075749843215739802898542743243776766810087608567157268585285595062734481441738382945987880246979625352406115715738130017098960662785832465064635465826887598170968796509211900147657300544779488910601467483330591091572224616548752562321789059759616666641015371280688856059744049769900700245614841915506667319159651182141158244401656936624590848536677964500965446654188013322547939577292039493190632668910405250414389093977491717840062472527984471873300106696640869860405239380837551605463302007221714733759022740164332215327322459403412030110704956455888509924312437686993430788993353201473682486347646394615028897078017829609706979022915020523979664375793377601876244666709692445528285126140491646531311476225818913779014557725873906397617475014046532610527752132130557323026770388592178076953101687462091305869251906324124426618778867397918393206566563527070115246120086044389315627168421054002512051094237141182810556987734122262053597449420416949632624366373205662736551712014916302411993188421982010237997829016073006068444227750970813581864928099680532142984870487184590247896275407399347550691601388255002928488749283052919901855172795466604244251594494127949345205117254528317739516175260277784941053348285787140277928223246219917355087320291797169362532689374711750557001649143172829607275068354170558386110140319993072729424217843624474386718735885211109801530684019904561066860135839481039078981284804250427145775355218166980386252980685499904960374083838206223685829711776477166739832733417651803146321930317948243240064064406111421291209719153476413032066848243817559563806731809843482423789535062880173254074960296100412620497130897960957535345752021587241895150925550871771563429769302483625295452610549583250937403166137112856870329093216903579899520866376320539943787436983340857537567478702094024030740230606676369966371149039633356362349322263517193091849318803624410106934813622851866782258728754063425340650813554590546976788961583630381204375603018455013264225452880792565308577152703005881071316740599993979585181398004497488388241517565929674454631233289774129889414500036999633866856595853638265186290529831768983906617023613416424796477619463625099119858198839842113369455336652218986535349319465183313567347807017950748703491432858832841985882316258087234222987642266063243925022626702477160825513478986591718538099015280569918078254733467777060454499937462739146431785795163934455020848956527179984393858493535014157237623707364425020753408776790974193644182696832589611282534578904223188320876686803325005324521486875819255688197981747329025206115885488142170989161542094413276262009673111291280110167839239235498663447052503358449010280191279759310663063708527927352375254340650254005355203796562379207184425106500133261325679657210445800524871678787999155268041586378274131109845825724546216246691495998595390642316591023908105100714688346978845183506666328455901348114317668343032943610096168383797977443833957354089800265728559109770988332646929058281003808917459220006070128382843625416680190840968883615040292283556485940549389053769408906390518150942659854914653147125443210708990982195327619770709016907706315116398583645439271180824961056461240291487507309449770264184386061610786593317925140013199419742798314833594053151538558150268493259189816986812873229955279809396451416689060464967130914202651221092094010115446272164977148941759143760597641027457889989976619751105371932781441294235679167809331446838577692543602304389632743916497668045236095558292297329413384571007290521928960629493750987939074005541560374767981124324449272683323108705865936693403309657964213953204969127111210226184616400719973663971668592404039554204274304716992596158070556964653443607032893489620154630016757111035310637231729313932398653357334939245240051402524564357876491267308450672681134401815470121866418799639580946195477546581426872972930849377044816800863960208604229936568811450595570477930016424186713561734600361819782285040911725360315923851117507768919843096942243675402463082701669303775682802179561601737137906274175621627577785828046912068177038333768735252282471100244562216465143958992693489118350854727303544540755712910131225852315752003019126804708076168372331849769355526192385726260608586002032225258193674581293491483652840343019470687130249778278425146066650113835226934749983469734468480369567552942487873695006385003807246548764644258423358935010959881981599400858675772057444352397218078320679889546913390165045508188659005296257012536231799347469296321903699812173016158641483103259711126419182294763847361711258057542753684073186148620655381210705196253835400922891335736840691448867402641168697471599685852848212386584360134298168301597158356386154509014880081747136686589308547837030673036006105561053311092511004661354254850281186041684630025411079777654090776601042140206414272995869284203968264158104216241397349998587161033029914984706067480830320825755275648912899429335255860518542465332985345472315382100847357934363454511205047971953878127891905649410354588847764502144751840403852050545795605654774879313580893601457258073386940452338276243136497254015562800745112189468895764395417345976009517170866944077894646987203630403581747768029159127609631706488572030139470469217740819169493946842897616751863946844314379650182306228902381980788663013599971564358488906896694331783241425996605281746481253404560609202197108086169973967567789030375148051083063760366981650800053734307261274802754310887953034890947549428493482183586441259882993814026676315115657986572793922061608807248343348192610071565332548978283459640475407956344698404357405222109461086222901987864806475654591266768176745642829672015529470190019588262575605938359970951983756630541202889563748295373929876349703795901160355440022365735337301586984708945823039037229772732244787807744722281256710144233773809136845474795499793751093452353656623211682432891669153475468225031288259733638883364324149864691455896513921332443666216513429320704190881759243965919151817117007119285059858489740082059699680487845699245776942790326704041593148208656702962363037716443410310259077211859536921381081521614984699624114335712693377360452337742745813801974978860664752999133160236858206478129606488404634769572694798182558488769494978264225394318350924872196413524829831705023390799413386669368331019872374523556212579662786601738883948749119632135983433224369235793080471962712543258146847220472820093622059944327432819599620876053178133256015310476867289489658918682196654630807971593959053368881396953057323232535760158870207732836136840139241623026966730682927433152125310790510438529127582748880455723406348781469917647056007991920754499849322918379377338608878851735739281363801712692755192097737181175950734833910178738342581105908803327200993679939603101638400608645590778339399452434789883854198366459103330571415562528642993931362100604598284923082035833981532066786875134033343240654050395359979018528553306461007324452626947525370401011285317214204883132903481794083508218653530729170992054843049354269806643932263182579794216750553126205676254781905434920812148257847111083890458933343201473286065029139380288743725950598130973839464484131693182657105795676527141572309008461887460590740434811659231335262549255548229363519454902103095900247722270276170716937167001752831800465075154757018231853208063313776595764727022641953066414321336819868364890918692675015548157118178830532690117174499866422473293655222300933261031124916608884452879677770850859680384215792930579677306651487834838000564310992058071457802511842178566142768255374280309072309160329452549732931686426692603580909254700692965296312531903178641534566108555987134696443332082614331495082562385775507890424882286248015643092272981985525764466009219914614025467031609703959676210845793287847404541144115580853154937393543723050152240926590780519041228224877716120695091890226544596745638744208559353004940924848941697822642149029162861278688464209200600334343559977164165522648604943736864049509307572808342007342512814601192606413764340546442565350567159368333282411391268007715476946779074856436320824729703276149865678854115731365672703584283612078601812072796273765215512920065055729049625690949187226973639383436500165100467409420239103124230088751004452661653425564154820573133503383842897999672803599771449070283379286693150748132943653658075202701851545749439326755681561743222781678304585195638208649341276611214615432233243606040281893100022229334027393281434552055778503834005033120591332740005726725719867461738349189320664771689802274212620668323082904107034678887549370717495761283735654216590574378013280144140505746286847707228755504721250355978456022682490661638546992611598890752384329984416453800626279703582079423635173708820214436408126449726156372476988875376281179486138901281407784263267704687558412628169509818259392032830500152371345592056913273724837131365711249284167540600605804491151901334531369881790807466806057024926395751047629199173583671312191783903760664616056227645395188632129524706287456915134388330828479405619123253225515908580370856541642247426220560965740926835447054845276022001418783518556924626393740406947222382941174416242615688490940675444622972416532187077859748605352948751793324530919056390465123189234806322512428063749178801910207883534620429545196810579247238848531096407939442089651120796308928423760274058533696398121601182018205393500116096239150381181867543292373105602806142483080275821197577616772861503850157899781156848868641222914237706973054860952374936124590244473850027929639998681999699522133607507194378868078955994221318122012816631268380719785936950346634828747733021047444567990336872873331362837159706421534516917784112136050352389169084919995876753814687859412324344775324319866216654810896071578420152070298798373160163513437100540432377629946600668649594982641283059967636739223907526019878408558490472135744591855135862425390198609275278601291771195504228840152238503313574526688467149945931562315381945714938843661296264339166853255807053308335049477065853248951966799892670107757322856334964489833132624899471542667656431065465251355975809319327363272211133759705009244472541540934923170357936735769745394308476060544053490660654817371128624495062022982007125900432147607038446618934056950844793997158700638263627038583460872324228972495368793380892503658226448759449886352281889406023523820795651430774641809652482169936458259358108744270556176801090947702869870689702417303564277279186478098093451809126812684568862519821444413108693894661980276756240715495613068589041682977741365263298466906867339645818743478633735216891706077350405658101208177387912480522654347361022641062226313586699483012506990918424043993126983166861266658364405832726142578574750502319194882017373141672393597999212442604506647745723248482213445136419030698349769720872488615909807086884429704197474092077261717007508418935987815122169148819614845715699278554689323621634886618796451475349345018536664652809612015088772597474612374567791436551928339257981910336512135799702619353267462949452605526647232273582347364981724674790689069551205387022402204301890516910052098508346156772390964759120770896823521599356500463226088499118193474609457503214741133205594114934767554806836092623794563216861577580647183085205700858870517284435179509963489142520270347357107811562250884904476171429553189483654628566540153528759607412459594021428462813875233401740210830191291587902368932754008216864191263498284252201462667597423703850326953908898608467200117729586681227166916166900220038857342362165136190248146241121791423926681744910050612208001929282766002625643432985390304527522654721173857773622487470112672630527593400620681690076170288830985495473026979698696627846411043477987887190159942263261261469253176667358487949628505084267370334323162801963778095244333638637641369363203161659216222078429575698685998316376131716594921652440969085853938727529601952409435540305300860664171423379238599076092177171264376987222652049574709367706822150406250104836734858131835912943668588650215915850461620792359492888965261569451435192703281630416957838157103460452875683812263441509892244947013481093378817370337282413229257528645509679179561124319049458632098370104030916710450249606730320770579801397945713130667433870045006313920081425795649029847582299587111747442466235958802984187346281501583016199308362100949423858534893450442189407609171897211607140110161244117287355247505089803810989009263792181240320263717551878143889702148111908071263947210257307548028764831236228026201510006465837018216582970033406180200676369771939798248856810222161266841659968492817608375581894807973651726014025069776478703782041155740332608350037674787676413446205903334243713287595933837083399727975784271218970659336215913422454913327737072645140269885946236428730452338644996334474575095013948016772297424850441538745437440389193321442162564238291145401502674024294419238445723535185430371552714321895052358573600957132787603013989340415171836833497619326080532720779398652029709417498228151634022759651252944612731769337428301850519452809001703987853708640267841261257993803608098019469576046142161640828631218864417819794760983509213262602011069422762800710410791190394199788764518765233112713525664340981419002881962829811668831642162613862094555069311686867765240203676157816125454938970244558471593994893412477343174676166550391143811960303498611608211927819581971217609357318364084581076454803789098773792115765067103713714828072107298724435849618312427454464439357733620872474751297361804017538335939475332277332893434744137738305353687714728393297451069598233979553169029761139568870115280100367416266618924933527861132256580179797719360205376500355261537646831156058143035521324123613607811238257147163784404059940579083783236630050736356972449434261784185827549444122049080905884019634246960447001843782163347676528724357272847847686691796808153310240808787082820504108171380615148567479170628468772097896311487447558218081959259134547242357272179291768901838568666004575412436235882600452328455261134435511111992526269198787357766572055606669008079991249360836486792349130146925924061395951044771317831781024011780638292457683557441821786380783544988987186841775499616514987706073760434425525930143985050831421205334935161567458954197387004759414149153455975030849361846761096175737699103964559541249868803156972180710047385549654719290798284363709503704660413012800689188189219203112037102091311880803342248311990143239322439422386946016343392923767990103389120831198777525143897238415332940331932347804397847237835855947474364889123088049703987242760379232665347484684647771159693708710860131656419071332184273393134486935516088293788160148806331321781261000152265168575273962723374855285098560432859815097011169288246357117569109540221190038700956423354783200026569203863165713222290122917255395272522629937647225203099420924349622478901260893312521115808852664089201642688894476819541743707573335720160201513504601846562569871844152627044158214067754927031788070260627014019227066392993171486171250525823463488483559044348013866211348493587443929076405290876827687146275891286437433573583177416686901541781891015338748200296444891166489839557745662655777374960205853790418464555928051986105503042787914265497099473356745629942928148024903221434661427914909257059246210629197675787798441168166409116796749724952208517660126756857707038892685981299980023987323131556030973143428631074898234363861641486313700159799634419557913737164726173451308713066063527512733846715937839126144931440219066798233187548125819946496880842316560298878596106245476745830749800670876352162344443449566007044574996175237241973665973609862962352234728291063605179876293803520135290377482385611908049226920726340864336996187861147372229040170659206292397338311280874151809779761921829359086651918001853150741264580149217215326482768001653037201622199690367480287740726159685181341749132372451288164683063588686471123506801685723736136063257711340617882438959257058991657397215709983641836599702052884873336021784660936947967744820073005412782979888999070790801622219280429012454873263113113102177871390636589611308780607426832165991041931678673269351494288519034319619340447020927396801933281307030416403612654656941977366302662870167387878472476179944754230408320724146536114518271175559971811167399330379121581217616367295617447971416783496598285877590387913479264484891082562696562748511495275537392880869651942448134835490421765846243695023287538814024653446658389847801431071264799715446566400397856447229579122679302442166852665780139710021281667171044076516749383468511063770926955356670553310947582881912848860421312845326327579892495943776660259532395488767336872477397066762753619840842278548147610825365172762504801658212585541264415396325410787458281298336275820425639656885345285996786048266490002952942800057019209300806500203598660889620250570223784442218441263080286146904096900524149625532971045016694900488738149661278878820601000274737192717590400165507071251455607193729647712741127820006801445452026142093964897730494599407186556542184928350762124662465320000532498164015935184853056656730430593363443561576231609186593117040711073663251411404881110795861008136435065766594667806832311830690630648439241731362777706484656704462224194421370279631321027368008931223013744547901379216719764482006721972807412485142739515733926998108908490854090313552398943736552644721996395395446842606085455887908009930434908265919591006912405896452436365117966882000078316739227412625038697327706019653224318623773826829409282379281571129393939685178693494962547218248763530299883360435803676613679516039605368334181174955673253283049527658752148035179769876859307520667808343970379836632783643662918261413127694663572878447007405417129862445625314096358990581294720976732867349911729959859091355440619199346000076254738831439352502959747883919931702153787183168319696228415541667495211579802770662110400963926136298324732753445090578169040288778501232590891009585528836750074196569933863657157628634884092238941937272177647262893181111374859150373476377130398509066612702014151920523672176858891319751446926882029053025106744819324733304954301863094311240746982443671544900118880486162285450806482437972754219965057170414946532625142998601228983440298754151746843210407744643687705179002599855009438922257678475796447810259675444425013031332303005206532986232014636979533660215064829919189220489284760152121405865488502489105841567789997851294776892283996896929558568773092424679341428125839773686055900726682965268355695620623646416440332510428399689346555816207509569167221550717383992237178882548202886788816817383883025182752272319263303698220820402301447916414224962223815728531704000235677250805477640945202504811308748650121190398585427645028580046752411722811949023101243191701048207864731787547718808829670088827234483154942491308587678349006236413030635639210633175474593050794518870352721486215169682325676725180961808770219818752607908342012121757103609462846291683906275131797598916716249676764942761438062880158709843749485978691286624935119540923980362588714584208853031909402939957730725130129387394842191043647587912133066638107301136938592322157528894044912328657137200593117296484675707074172016506723369489488298588034071269511119849514368237315104397928327390254372161646186684461579136569872433334010578610006077887283895042112958088263998034026792744296165522599961648028077393606279729298829813929695387579988763641125475702277586408879704188473340842279303804292006935818181868081103870905749764602226571183334115543506960888709178231872396338529134368750777754757348138462625180748167648974638590680180379010073153418376075842679866570651063093804970481064568988918174450634178856348248546713300761266671194745579826137801939599080577136995121219541086595704763305547607984485796883129898306298880200802874579908201190196621334450662116392389554699600260522593452813121590170322989013371168613436355042066451484193126023061112268567374495390254300213386715200424865760430311471238332287010967205512876215757399376259079519653730512861371644140970092701143876821251611226722339794834031055449826800598142075613307039366443201606694426279991402734823026820115076943430513950918015955524570917501310754788349482751858766697975286783684534084624842882268575521696656530166617453054067383427864776100350716051824426749083499669795114682456847458345144201897964718583841505995462654074243144620792484700108699954167990668313527806340373778522922321416051382881533277714040747523833582240503697485661105219677677649583948968053911025304083036928341145454738164497747215752519032670274576755952128350370840380744815049449410038495846088075942136735061868275335857335230485605499268060986419453192788135351862561130377917616223756959272143959478760325447188974535683989838443565933533744334001777633353586869827123697399483543237161926568668089797995339384560473917528221026250578045471851080133307241226497678094723452314211943531980717035816713189936066046617537652632096927106666872756479468574541414656171344174891881475588755392188530013606137681792670446008566009439243673069433261427075152003838600784943910933668618791273183094117213425818220982289682238823931267325893282624332399892990659454727425740833736499999721799445298010241656993540625216298519449148819456164243180615381229683906156422436547705896910528975749233637774069058482445415696227543537765246163490346536254849470814094890278597520542064885641145956070951896995717461689200543136644185789036128780511954573721261652039889038938110030576204829921643849492425262016535562755361185195395686591830621113288855844372413932455607046396002415750686723993183468727100992760627276966040685315138387727029101500680586879417346149453654144022459926724131672888772520715642151997192207195947761122521297386919582100361557972257587874213812680694501265402991242447768256957909513417904863414944882537690781932255743712063112342917758302503062915908330298924153447615042159946761841502770269842844901014743994031078938264923435692962996962207831713892916239594969364380024751327423181416315431938300572251611752258151715065263149087981301345981755411402741513472229453703313108061760339145316727588268992623870393019458001824857511876628475755003462292841349569082895516413472467402772344654326225212777347196289738030854746155364628387636283246187479042063652245085043854573176032297321547106038580499544335196112488926670430816987242984110476309094665314124322023239319450971853505558053932946655122744298392634832562529670904785135876668685817791161124653184530101614041746802941368871526069968439904395641231004614788141557469584275266716801413065970245066243533084460193335758301098654128006880364435532317738244656069578393064383925513517694910818855668994407889299610482881089238143673588709552272245717288136711634048418035578178018709482446540715290051936027757477795205565625361138630692057994031988672151322610656985279461489827323172342108953710705569130844961461130581299220160199346021210110364410252500758022229235691151720564672397564836005586357378364945177992945582390480440961481423260514245223990332316707806266879342138729072773446177184448240023920561583999618203738909305736952592938660446844765060254898696980766657174189864534018071905790677979135888755028248774017566728710239056289123331778803312827702708712718406193918804867024501784705009652799579590336902414793201201597219037413376468017982807474613705801006685996822816336015209447256798443495001512491766413930799748356538349654284287700920159717694661543605800983510021528076189488056375120103472467421177296301060519238360626901488359692972968040240088692964062463741673623711270679986228388875971844890360180992234378429375841572817364493889743620056631460883218579482302111076628351920207787435228207522365927260336747577538091440199427327515298108561223855203542964026924158160281147981284253962546413243273267548620121268169259954117029739019863805546655093406157010531464557377428954905639018509431238115707631945408422833923880759764866962620770165852741039524438165195649470495816602434124192406810985921612598104995306970932427121632313102647507900419725840152562565859457264024221194499810143598228011887742049706940280540237088872925722949636264219929029604733058020592501872640123507068295022028249428740688010284978042403731390777606266992795985971712168952161081387800339027158545642462667874726766500901747750929511862680070222804931656895583242598378362560951041212016637024901276352777998741249865752604689860482683478063972276848398803480764278868807055817419452204779719434618598973418069180744994553164785166680089032030518257778708264504838469633716367657910777950076978801075625100252169998877420395181956072437292991450034764430843346277339104819594477526956734321216102645701891441485063570762043958209065381365085473669672946980697506003641323092386775564549502655246755935053469466903261760131664004021892499253678309315620428728753626932477866467867687488949393438021870816856736799210435124581071514107168046736528649301241519141620653475357164134139663016832017454185373594987687872348954099636788192652788039604373879317792431587726036108773136551891184737555491147921635332582909270974020747480072638067512102283494457884199821016702008833892568268207349705049005916361545356408562289203517005373167457235448694402416658552308127768913522146023965811123926058760079178843457897541047767242025010670928098263225825202088890048436586171099392744137193131805785348104581373783405472519838985107867073146830361425271195616601940383594640042844276462907598059019284272580437592214141097942427119586681986998525215653847476937831228654276250168070219431997207431757944144868606905666743142203533720118376573929010784865275901010628252585343366983040683243220466543478781250343966727927563096437414869380724030303393819259615773449878710795937007343498436312771801217432379385324656298317865007814534347335643068579448755623024187698388971885158356492399383174713185179101970672791525818274418261471088011946099914044547211006968486427444128949004521473928674663810150019976408223492917697724030777542944694266264184545720353467246702422521342655099023913090781751428917424710237092260015326632626845023968065664869852190456079588711607386672464623134052375245902413714542310388689279476464599908466140805797421885441096267870191036310134783877693548268806114158936929408299796104360919755172994480967736786780598318024062918444788422583564054202051228221858127500222002181058444367936477072553651518016885915143186108673468498363287355187248149664524211371789920769557794710157567433335968886691814468795462127998435876127307016516157714063306337509713477400005118992621094783167622901142844475126870742333083874638057937299515518961331190947040477187380550050890143917435856763492590838181129999311376817286892713987196961535383754068681036208944878404365752271164566971801522057695512137049898495243722238146232083258071084325372168949184243840966261411074674546198160806274949010681552153933411886516272967623891714444209520522294038431325425694035580878041099852277331279861018440624289372071894068484963230809828356382266289781157696577621536837223427985623468411291351083193731589976188079914595713686537446316312109241851938933040318966656673808625901425578364651397718308165830908720100028310597860941302852106258722853171650943392207948884303992841123742275818094592054135596602299652955107092660595587370577524509436543292668791398395928082269483180054410403785392713622065067826503370934987628208705600422213365326247266540232996400968525503730648778886293255248102882099267675350802062665777368207050525056320302467019602264328657856518016243999960789132436186814207126594461732107696803020825620124675012770565564910922818916389417971045320433987387624742354521693482182608677753230100873890919691623812418555340756110112879246878605282998806284933111448567281459439870903749779994754973867521969524450049328063997032037371304825544036536611567678710268189798908813760642609651416544633042679432319164115127072474685155698035356285615291369995486446485836628446659079291160937031202645516038480224743756533558169643956645011884865564810517797335276311316257781278390924217915485343516344413250745556593463181841079857247021294719284557689978964617537264049482796549977981464350334685825984290725576153114383210223676078698969304014759569401068462496774750710125907473161268496020742807101499649659662712273396816157823937913520177568071638997816305739783551518761699611609492200999201429813765862764527921400459547173281583177054014966823850316531776890315703928455262015040199930533464859058342798401730763301464319819640137119961019660822959418926314026693826890588343748649235927858666707750430983059691788044757639823265752967004531891555251147328980115245473219979888454436702072120283138971046511518862233018138695924155765507509019088257618007622144697625234661885403961531117332848900069738102077209949185613472677762726228122905303098010862056117915762148950595428968333437242103392956060334561390339404692764167777561743951423422462362879546335419220911920122941868719525822049847239865946320978383761361085119805284899573607100067299231128553770716476592800325010708737922473635030612243384736636078634040562479025015098794942524838239642305452516535374518774993803839574950667355936375134865003923906324527475328323799858953952050321850149063677855780277090028308307191018354831191178517449403151092260953208010692220302684637651421546733329935281233139888739091001984281194475492852292697863848975521246313898184183991222405901137899498859705058347250443591770544188987447859075433916880447231803366126860227143734673836394788763715546521417203353853841799049561511938512795973530709317333752021392244643267354545075409396214686115261438966835158391377964827719474644965057216311479063482688334725443292445373390992994797797212038905221547676757272598654489453428755415246779110487939125957338108981883968662540726454221958445702068904166930682441960453095001093455287849430318716206527295683793187989473742681418518611234290786044388066410721377627961316064224950133179341716954108607296764463117255162066005010603717656344299397624261837710854274005530773805214710716496575751390708386522487689458574885919766177859111332135223593178899016348502528510127679154496181880489632353617379153324288320061753666109528444074432434112259460052642617614010844772699420926708672385789921225326927618090340710753875942451927487916788866134991182452188331351845440873615788526812412588378634384285776234831296771150508877630024191784655872104442479279774793057932013561747367389185674914584154289975713406565238818539952264945508560137782567634735984592164601163942851230076648104756770147715834342725506921899223870119218317322784788269708709905926643214598771745863711017060235111162198018996820383813016324649043641732338126161530098573074781677393378658455372152589781968673698551066960858362814738308139791543347095827693207400061117708177831617183786972178300240755130556325365536085323256911217391211176561555400324669824711890411543597105054136418826651801338152231749598137776070289522687669549119619136969312327676055811437562296807793576469061835934097751378211438226020336935752027938170149080067581074128604078272838036745736540409690467574793904448284305088998188858228357078454523058105128272388946508834068183817018378219233279774013889069786903945321405851523706414645749012169772312641354351501117278429603956306474326752061584044598013212083556116543713260093797555658777287472733147531926622365624429642319720435283010551151861661416281682800643063131712801840670607418217982122226357648366577828680729081861246216458583935418617547970550502360404487822662125809110296362276141248877975755133577718962312478209837578156283375940785881050810232312584670149280602173282033593054405606474906649345387466151861062645455541921945914635004146171174442329154242420296501753475968330212542741189734860631174954088352754181871755303830449487734798656416303745628882411592385975630828641489926597538562938487502210784837289760138736879118599158924050622739067320195898798330934196252088232793685997447042375618930885604044589985576561969439488534833270693530037491380800948391819294536026596817621840367046137573307516565027764216661405002087397026116911724891816539793960072313291247914313697222148173700512098064513990958589348805952317885131069598411057123653427798911792279142961107025689894079272827476448582035173409442792623416832275626686104595029773023197240920117732103973786077582742323796860435316621291186247688807446520452896923166856679702985203837042812927873527278184615348695146371600530013404643723746319893088801745574868428740291928921392232770195985096887384819714440389182423128092597635007407652841057957586485320825495915587110523213478386492575536656172273425865427094173171220910311052444842430186579335187003343077968088504177658765433238247399278683146014093755932629805403707233649791581943380400202234073120006038065299313659580045739738508339056761343597382725523025910786713304875004448363745743904658319773849123094816210190872037700156702270405036458391759126898406971951437244174621094779554389399367921046159443770387777969610423259528810487926642843890538104514768261504653715619540716717859187900924091142892033406351881507192922869552647722550563792701275373897146102351546854328297868897496660986962566251373922935894423864081661737909934129495132021683690709011903815119435573716115992852400045707200128589233518286647146336876672274666351090281219873869903450534045034019015653397667304508992780788670282750811986680912338856849398394757572769133646577174120401605838305635460299900209161221700633563457909219637900758446825068020768710824105051485880829894622225155388345505481162193917263653908808406833637260493103048885832229047855027870078712885605145813501972876591087169757112832853352599547443654292103944495333430063403399238057417711070320635929289554731385306905500321184513237225388164378649447964570420197019123923349043589847212460868738907872687979303687361794378808153161949917372562496415167110964519616914058382700752328585405131894169891587201498958983737565721495026007441134297037538693073632754823098177282383579030898180718652356768285396859229063278095834393345806018873177382379070662762460410403094529818320283553171223179601568537974186247082729984520673609925966914569209195513438842480803303844396221431839488595117452254762308230443169322738636911789933645505977685282970782305008607262705196672630027996592568318429275928647010217030586528772061561064272279681310279913298261824041884221054785522434369880554070724072906920592403353151411842403367775022898032116215371737369195418472914148350999606780332488442064444498269806286058414746794019831772406808139227969762538191968500294615568220742667972146259529727834163607703590098748626271309548943319507086006607705289374101314677831549641654565190770738127614938665033590469135845879798043187731105935369145108402105810862891906539464222811645771467425992281280169019715659127067611980830737161583486371865065114279653778849928966013212996257948134859625009063364999853843010518344938326253364298976681714390501414363688430020870060344828382676463653370193567614766204188672607061443256918642456746702891814753942797419005924222948323433972581569031567422123873953284267601762512861330256365849414192402858101695941263682578812493195666532192669564544760712178052209979320546663725941548897413392028191608659887437059373025381255112893175948918913600019601902390827358808058410492778375941422314684891775414651735503451272983032371159720351251799558789397724280058951789613345145452015911956262317596373903873130524956900574286061136112421015275764423520909932195211986663387695074176695040397532497135420263151946106578975453053346549073004941048507469746561169863674283631787353027303126358176424452716090639677244041472925696685519490980531723704953005401600180874730769639796794758515549470578487629387824611371649755929030352914151461411384199101562909213577396285632990494675537112242688713781116289558142487877912729942713515200462513210081962056006403177623298049966058389481084171820032615917609708145160691556642467743640091518117398037966618548792314567777534313490033855013655805257301444555114359016011703141298592277341444321181817148708110591008346184030630640299380793163647314265485990867269369490092752874396089511402198052524763043569639614937465147853155147551130418237120834319615632351228020809699893912077260624599261484170565813257535973462058286794808002829957628707961253305588336870426638395717045064663542740171693418854314805562149020162092404844977546086333742646143253831555870945130947323769599371688646025343929207119819490126391760498530960425400638859181402037757033389284570761843339543845400680174869792520160028177979358189929263742359204941990829572286838264358067909301016312573866721105699310127784743273130395832511994806549697691747964046182537597705708551758964062552721157830905163775090759074436577502373138081613043631326689968617620925641861617927862637999535075793300371773153013659028495374270574440916368512733698846007142922468389213323566279628507032320232645132164116430626759673894342844824465197217751506486431300838514431309058401515190302063206149379204549423125409870447838517050946055274866138285245020737368068838846609380120623282846888890124343977538269881524151736006729272477510322131995295339761957627838137791667089015572008634366730509948981386677388642237705124698871856854124500882864274405276084994270074036333247659907595640254968051517673354556454858891767790435954025349265264908560747958641759942580458143716129183896537253552034261796207430199019324222165200553583223514637747287924315607697972760063824645944654621901389865643745268284362263713699719262130000750143535918832137519809439726775107457712267267771781855460771519978606130069438732368110930802703202097413549727796411889488233789840361207583078033937685790217019666372802099826774438735428088020060148458802598062112061700624971872878697961548339965313851220462221661766626657001202658104064352070313687625963786017830454742288423956231347274098400501608009377898152355220512543699297879472063368217465927977860037383968240214806240754992119253178553842447545581656449267130136829181657704546885468700518822783260037539455888500643167107436511469213304985805482060047656576782897128005832422097734463976029197798695310833454281563016486993275479215131008100343380122061452822501342535752283750945614803386216434164048874344630935025018431170788381090736134562315940778511706856469948308987129657683468919731551098317623430325693369998787138741204187440404984931031600666931629140510365929153791638169946946623415239186924483026074952411105223206304719132671702478999705578028000450416719335299328449440624944655583261100086915972470616908321928621435711505949954013633360528176200283994985858931494561113679639313534259609521041549520028691102042579227607871282660102856855318936149135157665299276618797935880971549445300411592662289157033776350394426974604347225129574199681762764331865288687265113718729024161919396999715643882751361125840557053605401685260272668821879541006632579805157538150667067397782243729241849525112784194425974717803926130003000574708582418665649019489658398802383361774871133531544514096688607770316753165112864076988711635565632051050613559945474393919983911478962980541654347915843515905250583083565823288667577687650320177097836418747727285675638065656223118267727409930184419432680351599487372917634064969263567898878331440048485106808392869329045578094021704719001701892250660211482586641645941608918473353260099926040634765144306700055960393682836430465220377015861363797017200702984075343231744668986749111516637023828424687125301677665872648952741108664976198679185684131556841188535792571911448847823789209637988869186519874119550409806837097228351716900373145172807993276675875670717945076873137443018614492111840512337160262751304152462773764985694921314080185232963242274430322457762249425606802387219769642561734731639203265837418635324537453854530015522979296655810446155755445013342808647867533072548199843475189834622985632833050348660118342762896443089540625910085423682063016835179052500142021425181110758619470998121071788066600633560658472072368548649474285342137684194601732053451308064348129379482578400329676973009747676407723093792855675078417621710878196418442402859783497116411337531643108707972666310177334119407321178457952527641186033400579185665845038257423894354373457014666117549035597452887518185811451499992893472263494251201146011768322968470137726110068232362976432391949712216176870314989132031031184441740267762609897776430542285791609426644607679209438416772180864221691265889648162823181649603659701609128838853551219817805126006696620779439385764732171357920402789819527290229579702855906973889693173571083518883094528787145584120218332309838421372532680670701927990253501131939950884117902544445908745115759912673508378503724396596178026828068599416706404881436654337796657794357877590352663449425396031047619571022431617437091054825863433526113960955723248800429171548151112714389033238160513015603515321666585074293409143087507804570326029708386750185291608980402965097263215925323503675083083965713599083133952470371580055131408993134134048904584987778012210398920394445225913280492572343818288396043375067666226426969887632250056640463279223470274968994170119500910775295898441993189108442888114685544026808736186167512310638506267206249950034964837361935776895779337204756312844205942391894308772566695364560075992970302905487910682646980458151560024148728476554945634754826897459155491832080769362662006343922233963577875611903783973831105394558313892433302011781135059993372172055645681964772505713298487008614258565268018243188111960472259611607324928750836229626044407844375799314800610894106569588593192076032135180676904912417606808329244179470007931613001340439490889308541054403969356914091009480207419560586670368996347285998546047085724433559286914175539306439601737818800750119443345193798614702644055581906546948652567735381356519126410653243866144561783087626724697603609846198905010232618435378876036248439982045917672474145263030719981579886017843457057778883101460480936316377269743772367357795246526546774133318019297813678445779641152285709334128706620779002701185263048278973804577760166654445480233452358567678696968789759780055801715377470002414704485575440051408308111789919779834855560685194204880944411271676999746557838546210386961553773624174512236504652898390953822532848889768668631652989325108223435422040077058023352454609527299567429862738622389369587560819072493310656085923265872815943776349331457200139640489009039679758529543649132013511513719114392405080858104457999588538976032362960254978825064362635478605021364026855580467440778813992712030330569159285739107665000453721901331244765556274175957629326993046160056634731094380061576238807090333259786508709979846103097283760033940553749357041538321563395763298678585445328790463127386923964195177986376724696772249149448683600596171499007045149505244176785506848776527764524255726613599037503813593544616521533186415760992465113047718991702429198014828684697572969294057870949193990106228900968365333987060129155882592167993903571961343517288855770283058432120979009212486701734903187683458103464256008056101364248843981155689642900934112153397729871579484769730246814431092670495037263471238032191572113615186633701592049419812455039569304876062582656709939294634773734652110118576613961478715270010215345246606225813915690106271989249060077391011460635328098038854681619620315764617659571940077208308963801258960068658813835958393775593802428229171751262408700013941251954577311573672535449903983000124165087577185671022882604178081327898738431962223701605179465291833305633615815883492759150379504892488397776140700989282822721526307214801779002242061132759070440387115104943336849802664091751335597374668441658379497479293786766164508926139978277130614463483767207397454329382963550711880331961984093528699688969363209354545405873217413747827951412853839932741663449439741169252594452025701066565018794980105815260721463641003339167001917496094240323901279522100774558829824530356183881118181644110459882507353902669950562985231262853630850550515339779690027732421741224384094123770841726783592689383902151773092239394629019397124861422956748117453454660842618199308879801655607931024574579193965492255128992242375234340676898535090599199938280236553135938892356908152690269016519838639046934491386623731721715560542859550633663241260904279910065364190266974442961159998783976962893590861931116324509644763022272265771682009983691807343905260159742157730924195471895315572854382522328635240040310809430556432073654446917190682793657021003848144681465812656137739503673847305737492581269399536986172455326707566858924402726174437917851096869604651402272351789363845720814873306694646335530757446838040561346743647783798991197846749844054709311525301415051249422103308151081485439728116050432329002012800526766852273064069757504271317196954481451035837217679014126210089743121281576014297689498566520401386122805192246828405827990290408448198120108809071838940972422777253671982390943946320802640716651905986932358854569839691899908010764626899165909444751910296478715999913385654513973217878724093656084303791979674989094425473766734461958826594930527670486682639816961760244592365507677773363761760314892874781902816202443764412983004309763452212466721755170987027025505963834680841240325124081970126437301086580729911315043984704222817429938679197436655107505331564254283948878948558219882680508107924009951905686513828651454277873806706135310706314936230504832434210226488444554387393657729429688278756186882032023960377928457781442619012557406521299296027758121870959904592999239904180127589064948814984769850603245631146314960524931963041119295996087328010076970122927133250458490221473350241744905490288023079878849798763923159935547600479661516820532318575704165415839912131427483065524369431273180559665274643527141850540985432851727807635686398904153476851821514481472078400708554982904497607814788882792627258266639441440010796398543438054620968828595097674518526451175011235681139516026811058499749824316089965323758934174665061293324797604069365541577101737201640843995198334194637219858464072073040425506668585022672122204915975574572396668590742844839461908572105453556875737213793789047711074587307899744577139698344123734429260350896932240544156496072140703322910420049869366364595820277280877317612743500493560780145069527079567077468282078086183946238805177437133127090107654805281299421325353483812039354955371784958357023396120094143927408448319602248247331008028388290181912397711608367165494026194096556213905925620377800277300002259130067157407584642890530194559617059510168430312463197558865468226998306460918618836380143564699450151693660713120402989738805135013543339497728677107000987548265298772078447441150982230759437610536853041045801628683350807260165322106715786442678866510961657019112852440045633062650052649564034798935851649019363782059553865495210277556695587091130656909686688031040945727085997467420651478961635550282161966875335443895695981719517099102488996844936072783021161364504783419681201444145393658167559612617865328876540775252950599246158346963866132151161165057401050052658576133958400098859330496443096120451726671406904794328239650326577079434187059981821845523332668207719471473904305285425854317864404302569092594180158153557094267770985770784459544732071963057974296767818031527827255281286291735146146880173744113610969659833599758951038290206185570717259632479868440133256380732166252563898891880960164762296220579361982301450748390898745197636885843618049320873901206101850055652411808853573600475748664552802253755077650053285670521437226158821843732152023926771933013047228019852767092174027627470485004897526488386459752471084737926250618053503481346747681850023262407490660385198339419286223431171092559973181051443763225021819765644823745581308964801447540004586510769689698694009614865121681230594008520335420198396011656304471902000945197745272326237360978503723550405774954306489508745919294147251657007997674333177168602124781596660791959699062288460224798445287638916710305007722839880867588162013646910500581943194464174891619900770369476993940148318628977010830420388934592942624394653544354386322578324564474053640035028286143909930496311066777355034552887364762035312475437001685839388934936517732085903951552428736397293042803472473856865851918155827499474749834356434311855385618179110472441722946213679871400065554162713226310865049540372962195504446349208651620021052440390981897538340337696055709805890072494063647288059745481248467332982518921450559401477375552274718186683477401817774324616593157812964828518925650621894054106613055303096463732205786497847838406348095252570203672160785782386724694287719118928253849356594095690982415880888248133136379604369618278139894753409486641737597349065288141441698527862242152307427962402414230569397935486843662886570233367654276468385670002361315343381174911919443225670692770142604822883246589545262238060762730318643392978705188045106662620122626864477980760916936825438739138449089752146289784897270282388415112744422915018384708916022326488229289238825689761537778441834302191271622140932759510176308823129981643443196397367368038374639579748612013732307100385883063909805356104439397818110888180204202690697024292622740310577163990519323192079188808007045542335344068853653237128740215441723216478338216238372608462446098862331961621380429626158149838912365103644789502455576861550016226757926304564103436901102341244211441457137071336648512331650699755524739849948652931300757453581040333237371201330765679730058003204248243573412053446611030668196146896185738825230196402483603221888553256962046561191257139372686742609164717677015476950984346929913322093278725184348313209830017566667439162723068287195533111544507866115067503048867442515941535684096785929648448064523336169130434825578995728487791442272547184822963452193239613501195535714069808252166961345341773697541963561717472337011666358886787537239671090855374433877475689635350850728634959611776778056901323532818900603111327773667353797567857671063219506876651187193126786982243455505917077540929903916607511461280764875418939199828230104029945217792964219765739036345101076036955588735225485393129100849119522695844143879525506296194738684682475756296586433594504423543358833430234666652705128960005564980388508675710293197689739243721811850192992288789996696637612193304640792292838553178770550735065992731353770297009497143996545000760485598099987439753433527129328557666662007700121007861066626465269140940516961158243843791213617923108880135771953546072403838724967563653313295507376544894580849285835678259151454507881559946708492501452777230597965113484214463803163778868320136657586463946531808642542650140452686790375902747265423128608234106638878894746729616129298675347028711133363666265047390173087246092567853193660485223467219742889150722390358754623169476925276573287740476914567790638840931027954936128198633706297468513691710209682970743896208905345517971210017248517466673962459761557798215984267677542775733729572669547484544691370735164196256870611195555431336826047664188322747395177743063401143434082413976675123173625332072933460194212593007655769915543178122826970180860894743815448522099567734947803697133231478838285139539472302913599336069595625885035354543926152515475106405904844074233042538823905268176805221837486794580902734914355638990346117516029784836356461058760178924817416987812538246824710505061717767935038547550919410599826319934308625028571198798563357510167630922848707321783727782549561025765394458810288353969804666269227450214847100755864176153263395592171375455649353521111162364830091949409282744805764810527890326625284544370739125482676521934473772574649348758142450693026907633785556631125153986850244434362549195903318595875133282708438039778378819512247991269391347290872894064270622215289611974781163828695220886033307945379285946136554534961598303035322584776899349812806423594342908312233931910131204085484477178861040586209233417298802412832437351609622909593287767391411625152526541179935659193042732633112478798092580797505604397981851990867104988147671468477678184267019244312090480837318375028680755103972049170513510028363986840526543926131789444957378210887304579152459514508888616128659269379549433571953722136941079570300865846065672322355594223337341900897243863005945445866263738433421835992702387918101421022392193234064615213948100910965819030768821867178292689171976146489055723774138065449317817893379497509139296057806651088639889164782596782933173756076659796693588112326564279459781959990801863212510675902760049332572970171273646677482293339067657630342618530678819537780353275710751685678207560400301451309285957152677419359379457866877973113922704784688604916681567341552270524990979984658062491161336333356740637479133361690907097069161880670419508659409906899249247209671701923108134533404823946128973668339962119716387145260852184009695323127812491633996469605993563098196180926425770182246290762475852622483388367218931270779015634738601625870482938816035610963253952667686521504444821141148947658674902782675296462864641953833646907353946165914382182896520789684914119559867761194512975135020627723981132971724719175539600159728150507691269714927746883433548903881532588430081454039879834057118458920950992737038686685207491630403445601849777215354371632498737954867167850293169132271927207682523850305003123061039604956428955127920634812140210221237864220932399004333554837798153561931231148064556781385239330120721861042081386156843155001854890467975909822678691464167583040575387858629031836107661545859330751549246141056392730073032320801293996584068027493527426658566747253952872539337128389605962701048690437638026070888851232610930521998796965768651578340292169268781570629200007954469355315161025917074073916866730168637780429041151421597071782071399591358166097975398565465056253794838602183320658061387243040930843135955760349953361702788839774670491270619849538670351181014446343220407552761047747081594408980711508520260821485889851284440131049352874909907056722861568939271082997133015114749490160792200397430946641192625826041436490030726294679818016130602770076669061293187745475256065514191993351690347166397905121019930931244867637221449538414077417818636212648405967287570326174521645657760624259115711209520992719208725340697453114827910206240259067532030472934126480869139757113651187605636507111573257524498439648743904364908605852687268894425051081177555921997195462757833522551620582040118299750165983681550587303188823715435132486533361917403686219486924982185377226765345054940498622812742975444850515783034801507584614593361829002174380393014794445851171992349312460597637564374442563956154842332360878357043515744466147805621993695215612243607358217140577359952271993721757249415754875361104181700307399822862103041409704533478254909804594469126134220993374673989418911936261201603597437616016545318159101919082647775030270835463518414166242286625432991934868441628829780230560583732739585102384843042109732847807586056948074892007143495210577774295245617384844472243242469944350763435741649880901965151474045859207183930382724253003536294880698904573086125188959620453945931164869080020432323545404144837151889335687953246444244280795848948968586859102630799371899229645807711535856028048798727032927115402594566100353452501126830046047520919995939545443825703882817595733334844282330553721041922672223975298481897441256616836077043351117661383085010170831806403942484035015004240224778097149772644801237777058584509875521531963606020187278433137287438770204043284472929002888465107865375048414331193707139901116243499526392414567403351449802033077261933552378304966224262910971885122928976263515035782428900715992637756215764269554252469936696336284507771866303834673077550149764524226800262127048026419105461471976562709470094925979636148231722801206811022218956278759697380001401350959885180972826760669462471661427937440624300765155960927376641968178278914683089260523243953853889803887610146456451232734169998098476281813789831593276373019699105379666701035066261441427008889797179637878632570990691545967036414290344313075482387659721932557718664113724537348536313451152216065313987070857345808539337948736538792069393477206724049984618709924099931187625866611729684939412582092184186618959625783701693176306492037468250157506234658584086497151966331396690262731710479420492838456699321685778961557907934927513274588201697291395232412548253486570294234360622941071827921992600776159838314814721339106057679083562940237119305920696562586835554023849466604206065738880296227149366911853353641152978988604992349843426811760060015229790237445041511987416547737595688896891006583533586854142536454069003577132276055475274843207805457028091646278544260680297546982588936010279474941345040970808984065899256528956542268647229480511869538804593357492721342156766711693871500128773348082055921854971603753637484257390517616131473558013834515175485300115004379661850836929675431049602115254431117129153443040135849623955604189922461338546130701130605803664082352012702238525282976169194876598101820229796080496049435453978660876802188606257390267965637359499882138237595885835700384713013157830851540625737701840565932381998638721322725133891363749165378064771791733260699211543601497344617884207113777330556926649737246791147711792962405247395151392424205392890763113770445639794671379053329860957656570746087053467128361422595995389827037259032149430386791118373442611281311087847082663210283723890533014188838468016179584527827825471875598609163268429463814897894512032406561339688712243611382917357948795673747544806782222978118382054819995900362128012143836343521622938575612304807526249142505731295015545870942640848512093840523648378878784236211376278316142393600031600135239499560582007775757284304387193264159441855639550971861157667119762818512363165472557115192574281495713063055677063837186412934158927427552845154427252974651624972274665217571303138583253072018362943393540369228379643860354369653544444228617749021254719285582036331842996423482153074084671917449256367160111079285074154705389990226174416984670156726645920417524610887371535605742356625393883247186980463870341560855265625387628044043191222414306048839851917277028860741217305126914325460272599967056750463943076896526718461032990859675748183644841241077865994620508109773035639666692043652322410954009492208075356368757373299607002050877618544199529608321058172335128751605170081104948189959364575441800155744842951358166669238280394438578992907999259844460868722973724417514596416192366946262011835160709508849210564164053385917484112243960454901538499595452296514079189108897125535901917720299234705157717851610687548891538928319395084494363547206882811921075615927515290933613688986875380718727562109537107291179157986595768080863736296917058403418758084836459348756409509209708969345194679043905726353925020173016335977585106136472801039029480945914693179356521919310817019499480992614093801665471516147241489638750251336490010246238441593915706783833877085503314675606348938160644515342258470165095117171604954981976168076560067756345188943116009908890723620660036313916513267892130601969448965724415433365063501739238900062241665748701050964458583936175491307477908061353295730662398992093963984069081206615673135206450739707857036588340753286792098824718091990713861931565605360267496610652109539538502840457844293512491067131508889587864613790183883065106305776921898928481563012290411954399129757925147832472927802202862197968263288286677697488219733891166621013055968179358229462850025959866321644321735988863218695830281972300623358330049682430883550400849212555560378107007322281178132700240195264019870511557805305109762502360372630191585874012471143532803507649047360134902102889671568164603775342676715543707957999632769918356400610324718187005045005718315812945626948498457881570110460015470889110950202194509999173801313227268353754334428057382924447573429420365361424825074691707923139967374245542583217386054320036567335067378722780916280965889725025464668767432694806607262580086942360111745455162468477124117643366847702391281716646379804901362435466751101014039841217559245044340003093462240468839231737298176938537101913037300873267443461353991931931149610453630311996587783511528061360839609170521344708756071856602626722989540368065953307664444193583046235792842827329957446942293772677179425411677110583072514205039355827047711303619826937068090580101118892041696404541134873824209511079750176219298883443600204619660858693588139485127853502639334173219525911446166715731683271287302433784972803726516868978666753336250636066931224891606158876483326647139694670855128399948557334411665934415225806174103309898828131232851425442570023306213921485382769579582458127294843595310513375291422689628476599118757723667145400613398926622099239434940799711941068489600161009932496659542217802237598911142269635325237687586563231712485371490302767995394103000406724101797699589217655396596663807485946863131570888159144279825296276034692904266723853844259907557342354174172862487555441260209348720638059008913819281159658890414943141973947460305498872277563018058448551154521365140977429751598233090653407141445064093432409542793822338137154397529003329517589962432485204574218439071526800852488924909796006262217796279200819156352610829818017089439047293346890220509541553966018830396286190202139795490947220767760911738035515617092353621967760409408933560377500796695289803874554379800467700272403817255153702574922068109373086144256960513521721003394867819722247176210522396182778113076206875314958756549306221844048448627765448432471996561915609533316586301230103582238881147788981813482020321582348046394657054603322468213917664492402353422477661341220143493801257491530582311985260662324741788072585944099954924298978002309790443414540710686365008861972797874456645305766274086319752566186922801126555291977819524599930925294223441337039613560125173076954561835788229419574759642896872774669027989476954048035496918090841172398171073333833289428485904772599121161509333244273600996122070876533868126358685120852073389051682725091672592803712337970093169527438752371475241749527310275377149448817337548724063066593059631144983378779049887371132657967043288882731939251055663441686120622304387627280798191073945372126514739886552259828505482983623147281779292440831131519646982329297397656506149779985053517102664958095840953225510118581663278898793909917390873987467671356468341227459381993634363567883909491610537093749124286325057590473247416467758446027994455440414328113808381591706374698809434836552119812516676263399248385551000185267175440121596861671920826810641205456737984856023169622367249535389102970943376361466713305098992083104226691026039345640785644508521075828127958288973821158479777672661672037679978336742750240743696655323560574072601510899944738139937554245392916666993471450860886957946221830439887195836991276626157462312271027182872279501478124074027874306893657922446560710228604961632406803244185765942222569660263225966306671784554081535799673864181618870374509747913276581728187618725588844479031275265102930223530171978971917089867226665905305235258520063973066153153605275460343648214126137215673664561678335280223625660488266714709143484287394682384686524583327352451965106441517679346616293823602437981954655127332955819863529911483200892684825327896076154653555020693294382461984788227749526073542775337206212646473983804244270474591970416039554991054472678797485218492891215903469800238277251702005391640940803071829820473329323688686946621298487669646379952313220670884881650013013169660779232107629284138264294668172773760138389658945132775804922818659973167283940945217620073385060527645852436060221925515950280055858651329944247234122574193288012799953401458224996581879595859742170821692406521454801356474023213015272901008960590073188889239815877058787937173427068396747950452765515249750428948328130761416796331721091706241560056715061065600749640132774899444257998022718816500708817037786894213200662605673695222381007512151806337832095617335068279589348104611312584151994980171938521296547918506866993068166767875470240216766609858312099635884968300311511979043413031243461128228630313059746905714297592407865994987287683818748205949918715416909690521891201645531755019551327764158503450976758875178070525944771038424796728043615753973072458177823364491635037660005213567234792114594251448403579146199621237510986675175918600325985343184656007221360636261261585811322496602847278376244657370988650709297379944950304534247053237225360200407682175262129012931747017942107489535226190960896318981161990920273421756171096616552712219564865766763724844775507900625078264296144419450007377822920542903719685038791401372664950079600915912934021181406623461107886592546217273206136809160873824847010967009747377694500507641819487414031211129573960750198540062045651361124239091853257164438072773843344380276457135427055868297377768802034968026045513289539402179445962973390264439896505405606591654014465504398232405737598553371318668076290870482004212503345080875535842225893041428401192177846528897950924064870307489295284672402723789673594348500832249005231833762389496447944585463707687204529956188770436099672359295254164374849381217278447032912459538503281135062584280419707056358007993080043801854259021624645728584351044488085741687778693223194116464386036973885648041070810815330705187507685172597037930573973911011441668503497531791418933325629478855017520173584435969762006210131338049492901736958754268447452894241088739829503322301960025743257513522964151013034861429421578273687227505137876260219364183388988441411477668460432443008839290652790762397088764885648224693401665141089923824154562302872733455833973747120837091185218289769542168363991004398448473335335464913864316835209528675368756951118865119313323595854307063073282697949476048201577666527128243488894337708954716432274040236705580329336781615094293388470200249965491009938683640839591291396085649239848150460230080896708985001707522156967689612051757201638576717686897850413734668378548941528845520669880972175185771023220111077339932834056591183783116487851928645305281955201456536088010714853435172823310623755205918794744898626901767329858099785087867910660958770669834216321717640866575799083827746274490507409547433053631198694427384336351437637793260439172212897781647563910636228924376701617523478818752342677095033356975196579575820686931676757356219225612807801498289859060197044326833116189966180386361310025074384976715493740885565786818076788761976167651498622234735515822947023046995221070543617266978897518718822022142827793372733967475132238989394660262982759404765412476105525018263522315756279154121956716652533504806130407811764315261791800588614061118260583078653031116147142348496440938155028352079198009201681669814414885946230919872265152508479063312805025955437805237632679589317952922454397368707084940970813907140278662116223650320778498380090377957602779346647970527116510700164316445158101178146347162832371095493466261451065889378521751419998147266074781525106639444651617260631274686539488311593890535202787342849234010810821120122934103404639240409378940861201432262144646447142601718291533186241684113332787429783293469542322722889553985082664240116515270839245022080148804761724794513246130243250950221949316957546374698077285915134430534575817425324101505438211723026732571832391191179158509154279022077376097667342093007433057374367173604056837957684903895269525583271879901772728721756687211492541103531012429561001504522399345793690930871928878069730624650011953136125366566064344002759463118977616952747323205053479965123795502514384633771847693051858407999919570123004476421708230338671367304741415904162023864076286517750255744981665120398927050412050252963542337018081477886168186786690105182888222440838598266523084537141980756868224380767703862138583824035656749378521947751582221653873783321269805228479301201566609933151087454180231749792347869087439671371819931638982006053385311904664780610942341853249649368700866953708436659609101742764512959513646226056117746548744134430299358484717839257330891691443248063212009254912113265731369007399637297192295242373184406874434481195803678032600119955141544226196042781726208656639443469891840326432679739890141658776582444592939208289268012058331993920627479097566389394968095519593790873521042688839345367413942401897621259890487111667149294796737861447075666820038046068751842379045786059889647429137415850210587524393509814089420480874360120725620939892541386654708916148428491159531348301661249285470272142327130908217817221434765696830334786971693845434751261418341871003655767127328358125038939857153637535705030428084411569723701778397213061264566823905809082934599828780631928445779843398059705313722065459344343107389623864865477665584824192763430182315039384666790298728411660216105381793766113718513212398209198428213683243550612412440545843226006504886472682156236241559878204540625011492517158917448065945457862408664884975867991570151452275928382594977981126329630920194578349963534776246234189491357841002993632905260889378914811485993543452778170018823827039529333244959619975234209199966244359587656748860927665294751487589661764735990751482465537052131035580791706040151306161972520134698164260336878393909962627914047696876961386450075071552495698032524355802732024773920765843791298103031918008311163855282084103089974846662954607320204948667034890334456024397266786506645498365428053502644394089157368508428325872109088752073250559890679379128222970916239272661411825834921501830405421546867682305708907861469218946290837138261893211307357689317515746062144731143083810072663195458651161821547158343290494366672289191646439479314105721269672143840752761342985323271359841359285337483611746695155799100491336106883764035723438387454733757507163098970938304915538007061183466565581568009949298388235375868078161185387075952868207894896870972624895596348931787709610531633076729825861394688867629250445512312379602409991409554913754192229212572746815712075496345079035102538423429137257505815982897147430736383437682034844431039234905187394201003827435563605287332043193120748956678998286147561242338829275708636817287817206411954085557881495290230642991001878842856598186616146080842085637527187573146650033462332212078149850895645715073846491965420152667625491998056273386421409551495406054653542162353995422120208013530186585525274197259828823125076907751762463216012744043555458219357258769246782791251247288913249201271814478760614270212328856534902061579245639439692922019854847883132363579325906724929421818419414052447657325759017278288915000517921866892617020973388725085920827126733306955507979051628654975944569211238925289520015760881252693508721882833842751645284831094781031261124740100537849810392682976810263517097165334317876921224447618938943585597142832252337540288543402221369484591930282137618093201269744790367374117788242656864733753650739133583617349731854937473673674112394940520278132492121958963228476963280744241450299423637632633082532695074339449922392657007049860186892811689493968544898802147885978700403028960702505323265885048526216602462156864481463350305126778334045119139772772384166826201786901739805699907536076947576994852355637567808462535893531897307450035816821593705549615621379072112468733745317540799490001925370145808053620258540064535317131479880708497622217748324857263863643505616297053528255032206020678608152162419778782336178128741296035179055422761267711786644606139201045747720122998780681177107124190987402645048753658214010612504445167408525146451870485418392525348456970691309282175966359734466742896301269657921791282169818069057961090748720927304378984280880777008191735231908630517689915526752813662924707045469690664991815753361718732187454050239136223263429179548364761908450334042238547134217118892229216522838126401440021066656836336689421415261691485620278051140418129481520330971896771975985600791848483944810414998633400358722584468659483594592337269838704418958948086527259960887773628508110001964809722883767216971030599380870069009308453480848890173855127004902274585234211401324492807287597248084109209379381029687119337368751650556577936349966439723504545323032958264906573155576461048049076903878389186390733740434833350013467338619351887779371074902897259680546312496040110212476115205019701491053843159153031176138463226479665077050774882507413787823317094815760138817110267147542877965791831074304473756196913974619135528414319855143871401010204994106171726002854429019993144371570350672048630925266994300132067987943941062994742825312745973156643028592160311080918688976496744932491736385698739172461146500866740947071059169408575626520405602497324279516851711307223498203123276139483864762518193658212100542969034737084980190699280538203153793357969147357411485186822799949388639023040419682732343952261603254973451576577228128554800384136116506633158816089220861478828619921909248887093308068799465450801485032189195547900769641214209492360384965525173745070400068391921190924032424041802203942696330347753429256918092737737539850627250964428675482711273285293600699443727962120144542647431322898009768732399244080959870200265660258614180552389389625410169950687551987782895172038541959619376855463494628150982380155732956285521008128355540816804125687168110543189618652323415103961124663423298669583865072358393027189946890636877866217353912816744949625667931404973968069888632614593677241613984635208097512342366739804955104568196180156008924172480966319709346867797402441586655591242484119080428161156479459307052115053893507190482301866371787036984595592058360927509437058412724689452785096907712601204234010860500269119429968560398748305430901852598286087614147086087109133448409751734632340011099443942268406356860189288995564841760938320023517837399893240144725055889591591788208749437169847824065679007124342216562052411456004649485914987544371498867196325120229214262384464104414368656391958054208796617508678767049283105393947745271017960498441474384240448555067132445061086834381177081786531832178807110987384552781136892363172849978325098698083590363827096881137458926272485632011012775207881297303016221614627493916761077240669000571604715640388122772891505030586688565923929961823807516537158457517050480615192551796256536349441442901681375610504536444351741543911132289459855091513014856219484515712980828308505830977455276991596426783800847807355168898808295873063414175611279896425285516365855660334040419198525081228140478061159413665699883691419167748093583432728846503411727609805023086832559003077006479502228892027225065782925365811424853720266524438165490682022036815740502506438263876070740083294928930324125746942600934262724702384288481383542539594158490483928959392478173036671952629231998775639608339935202154528112600741352341724840798569369238512399606406922327872725364977559169952504421749772206477617013439069826715427074471958755314635950021409740728731393806978269339215112169725649550166901035034842592570163609810418494718501191020716658156277467093883567798892976520653142866886626893750265151800140064798615601202180951300174280010997108101267432049692268715743428267292586419747150398294072870323283985679796154142457486109436363611660337574089477488982383264516271772895731401326806630124105233365476130684806612300017138221406580462995627307206411653572666987174934732862777164526241221049080951977711596924930897377375667096976754653526758876218535474489816409502131601125310690565506875991773146270332946704329208638398558051156563497999613565837779895247870528564492022952761396613827781429179566781326622362503271643373407042144116960858500771731014544375715292042307831723681233438351323649800314035441530523208297731543617068698603939502925920090460111306838826755403640774497652194032669227776372225022228055768907456724972432306811052098574267776275237632427101770726409871004305220105530037790221808362634729293803532850040624446254528033331764433007394481143260649850774129201519305675193036999518133334220711579612341820057043984570493994497425592529245392339106768875340128829416022075332713215052029360094451982497015764171584942427179198066030524946811506929955914202354081978151296941790189730258708590418669052146323297983370946815125432219917960498112051939090848990842104580004944673353738559925334610293215535157912763859592202103394073769762085830166988033103202018218665324418619306013798999636482533697312921345477264213160955239810248894581109656531587704477462693987544100152960981186036460854036941001405967540790236243604124631070807417574460290779440743561885117071547962063615327482195562275125222164366877323187676348813313739653296902146526808966581867570078144140649903557659283169349391504764779454418647817698506477801032075129016727318522068961103173580892760405731241911386937707866068995308031727493810231179365152153100727080816155663805752465571475510590769773783931413278712530341045310221080402896325720311353794477210624590196619376536938767402046164380858120523127389941433770476845977508105573655773013059120214725661991848116626146410101903469530538931178003943138728992746388650151385655183915130276744593207329776619315547046442062240950290310240119671446210938888597317240914625820487844690789979753411406612273176372036303718445027549524795864664525103872255692938348955537118608679764428569141638156078382900690562061235481650423894735512277198598064732199866258364497897355396868680819820920940296298109810982263000645619916859959273208196527880916592341466144895132033423879430020334396636542089622950083262988216592417282417253902679255165118809346912428188976668888919616991317146292104878718846533814849750975475983121953356368827966531645864442728974093363841514870107705878972259021977195214387808898753179804577793761666385861776291487399823125737577953188849191869786102251357024169638687723348465011467244608793453688919911839088403123191614805017705709487833538076732759743214916571200295920129527908628331938442678443716435539444979706581224973002671810974579533861588332236611075631314861945841837001121931313390672717818644442111079178202345796926481835263340618888938883883140767828780408663767141996053285880845301935922349422442472115165614673568302679386262523442886489416523800788470016978652914365600108417800338972326889776698879448559947629992096117686070288321359251670786346694375250329392539592282062542062323148947993297629050192361855941999267735863294931958897479593550602931417396497436227777488057325450918091940104559327653709190142840304184405514737736719851869192175243074328666822787542299108303133088834031422712930263979667856875228654858179943118543569363163480863392572647294528069654994186453402770954410632953091193870823861848141559759946391727375189843056125533153656047125266655670669699489222524999349869054608306320470700172990915817248432342784340913940464791354872125844159142598998094888975495097941936224926504581182016464660632556087209106088612102658941861467356037075364521524714389528033611883129862935798973261793220748184985524016257640835992666439550754623137117630926158330187306402790809378231541441833690421418605479345781486087750256761412640712330740706638347648421526130250411721647490382868978090705101096849374397855822530337494157554520939847528212609629477490144999915992513161167138287384129912371552377214977422619793386480289742402333878166491718717033188395355183921753498589548897951231407630835023562032484018561924544316861623709184833049208520017496747586632772840212196932301307129701891103093357604172193924069360997760747334454781372653651223778579277224372763558862328432348250883846323389320431284687704707774488479075967078007464356352947904436246782939760563443609902277894660267508161640634623215212405601818174300102876141260429457108136466110398379228435821666182385880265635409620726876399844279764936909207025433833677535223475967532655413026122855701273006055388260009902674323040735886385191767953815980519500181792605549635914502024753656217428675493233257398509705721457922990726296751904879208097729345291282672839554847430156576194853493868603450954793578553312381947812268563087698798755066686247089232043427345272168470276252558081204844477439534421756432766266887435373188451158984655877687285990572537273960650268608052527468462863255051779861271750462248977160845780597218133101068749425234402997108009584260628502188132237927452007622463505625813646114951904969591864582369692103801610319109734799400328048113149928258145467481310543672816990863315895809157735939366602173954067256938049370901783441717950815292890832136376842370945460178048181627780559540667118668784594364260884430631691203451692017372515446587516344082387721058619885692992973454693534970827676703366256197313147068083443828061107752254628121469374033582125264339711935736593418147627161793344737849019075554147795784328833856692161625107206342328853563921595565026732458532926341364155279391722045795418365722491169692163677867996648398409603189395412655654018854594687327085332389692593304075580217492469899085469065824790111363615019572205801529308396570450948687732775238943268070456902949549458036997341039582928649129346421028818638743156438696405168060270303200113614463989468262690036669151917408393927765800238540045964125558734805542956230797018747575512797470108407306871276654958434003558719850094257554690355355183759665144671187497145413846438920310538522006841394866217275466264944946883307111569584508649020186279209227284891189828056776658389775453883965583438975099532563138628177216691271932992828070857553192546250244157889178547192018067180191987060380465263508933566189346708091053426271454683838663524122678970575365434968932421763555832422477817914766583613409768948261464177781717118029740831748154885311307778265006718405262443150178496333829940867105159867742326196265323021021608951622469131058049732796520466979621586894364553034621323356748802793560215638485428754027337022347183114857036503455475398161170068424117361820161158509868917022221915685125272513567075356123449485151857574744701475834773564267881942310016310251392723370896903238763828098055275606352147656623024303905555237290067840376624903617110051095079797266058675480020134388781580921171769449003875940374013869313429203244211088047680197073653591555111056623779784536411105047693963008052208427233440769248106812429782088554311939076707944880406769325014433978416384669516560015960985077586834925038559507177931833536070763017231710612383233410721856079830530881082310361529971052257945909079266358228672902441078573896333619346909957026071731998464505348246655624764201338682807019984174626799181525801908639520417956887727130894506447267478811873808851359946538555622496327545745653737318011295470271645318926556011936503565276854276814656359090544585104989159205300571440902015030700811158881455181817304359904854054722149592829428477376458864602679879831807863385891292323017355810049533250770226027222389086919270405645208876422080657011834637238725213064309428516101178935829964242222611549790178598478002617733038337861304548074875746061819225330641833629908932665468742956985787794453300674481184306589301474782314299329249065110423765623834020547677802002993316710691936055928500549571767743699310904677407974131376137477635816169102435094246669584819467525811509270211789453184840852958941151982006836950014942770859074321089354286472860855325568586314500289208069310706445154264429320467951756809738887589822979451466826655887773723081194581188944785602945942930381555209188105148259015734011289349030400828250062487022849559946270327360405517553328638105220353103991931880661222972840120768948714248940574717887834240799391511546054936024387158352238728282538809493945205301477299896786718398431221711669835635661656046463025800347123117907392046336993627687564517060408301948929538600235722450960636693772878239284324114984133420805097596425603960015987764716453929086344567976648085850342401970889513224166446149156003371234967354882067144109724723601630637937938925947098057799433869663671796620186177906926378361056001695935414705523711110767334285140102559413607666684970971749893995231424521870076018190144826228813258961110865745494973419908778001731505070070802867277606133018886995734080717379134460388857500343796303456208040627353587642396558013070894032726667135780398248051218485805146113855243800102528731404001909348083583511759234291612419572499217477638751445260503549251891881381148613485290041413047519749249797979001847315817314564127548727185273933854849957050391913068842109108704409093065341658133103883087565191972645284414833055071872184832043110026123068414957673929958240289891733035137604612944012538616912727336025878922054713627907588463363162888674122957466821951929290571159790509781827536426529307107527731143032703410181151314693873866929710340006338669346693730192637534423842899718195183256069344850860720389574981138605528624386272546436152331807644680126600594629531566286877102626362724765720062592782518864235530288507712841437767894750783957775878412088997634810169214426818148979675298386844741598856157718324548227617975449583993551512683237806354847970070536231763573626695190932592358736411864854342699386496266671553648168128335634518733047243363608109525473709956719601483647459955986255349590485213502904718885965637816796941786872610338956720992821292840927647811945124199461966911712185087114998867266594635311111444785940472686186412579769641381990538787123093545135221789285994110523483827164897492536291986811723706795067337463058846054002733760701071683517195714249671182899064183413462063118138582456680162456084776376688995317631853396593316301457319487163528071554953863329965991550980409980345959218414557892427287723524970313305504671461233293241315049633876330371111205758463198733383407021716319610259815851988408324963050745306671426558621192254617019350279699860783736013993135160462145084522031477767422542710978724320449982313316254346617259325602830192934309706085965168807604243297601196563979894452122036703736774708832773036661604970120864417681905769165530460564815368549304072911929069317139085122752805537704033500360101090754097879581127176420432347557282116540285166429036647961196192934669334278484319662268088715459893100113870206013220296953223235255731243992671538778175706302777565358849886644164880688175227055250717283833243231290235148353443215708240512525208961105714828452437869451239885845187787430395827242683379037944099730921190075858910192579834168872331810931013891699709387751340144883136811845893418698107996986339744404366156450378444749501787837319725620602677666963543015159571147000507619956317751941768130900196258306028936908918563877805948830975768630365029971454782812337563577908971803665575056859476497611087185844193728560704003774446433237450028468769725032635963015868785540255784988390533889019981850310133763795104998268357218162476831690058811067043572010074385059695396877107492612948399772853228837401710802025541683548372670913281062714913607019380105329608518462338097557504512457225023654026182165975322085003491283552962574379692527597728348473284564318661506582570289680405918408657113574279493280854788401934279307350840023113392478785632314741927124662170177744809772742559472593607300909209352350784526610478531364675826049325302046942368786322675448029807681172847998064054943182290398818849385266869543186761549296978604880660773694028267763571658049390075957225624656470329676606396668723775988978919264548113071195239411457061423267949247309875284217689946108372714418582810404191516025812696974427255303007479903054706568701896107806905344247017094721142998973959218417051971752559112620158518783720142108710744306241286676966885090206668747409679322449159940047500547372305209432185307712155100159985362821784344333407222360650750034953160865070295621309796417780919814431446604624460852363892894457275941419078666560994842934103005177742464716474141019186343387317737566928233086661612551666545455954070190941140623727987465941146403891478567333664280846845061127662569947606308281910519695699091577931917358236446133721001286746077994233916610553060291763620679054558953659777008833823571219840383155215012713499975161328283834137931872772395950072882435820139872406817017404947337511172796322802570493614547939783744902589817024665872068475298373342173266792578481660230322674783943693346861606680629645828436582373487408749911806686807919958417337458279973058732993556690200316487753295527738998191248109571273974929324053962529939807196204496595360066830747231222033208771973465728203921763064642972116801441449780136107717259322309186388573136510290423414273062238042144360133023464498582943905616487419219464920477751546926492765748790312132897240910186835969585543680076175404241381804102493326924611079405350776125239599125113878739205982504900275182683816818217706373328684211728901465999262805059825122775247470838907191659099428461453183934928689617639879658917657425090493992222245975881518202353837648347895520040974129001020462072045647132594104639792726086429498118614577321537013752285327648782550875089637216341350341380343092595781543875144219181431664407446724089385252404989085118577903876320598982928218770678982399075786166813790170949373892652579944414303386642226916177085784849271342544831270864694839545904750504827615043866345111890691994621395516601481941466485147456213836267548465325356443331142383453655471408840888588453544233484060527909638467962542524569931448486163530975750497032928532362257883497618471729173103920850019871408612757742608313766533276822524515058988652122051474151552450942456443620418799220070279864661853343994336619567925225270446358976162311373211083325471831774244482163605136018555967596026873841003502254473520475589730170669375633468389791643968050079800167077430887278893105968693344271581841658254746675415818656387614704373511037690335301680808918634533494586046032792943546475619747902447986858807992617501048599288979786042349432776782686641443901744188032971745793493349434539081273276686608832186103453146414678198724308590947414908374759392237389838218156510589257554350663290470891260391736239341385690586503286476268976842212189800545033352799365550384089914084163966246300594766116424783654665932522151682515111628215552975412821894063569044243509928933148669179596159667158892186156663697162627312949742440597095399614381653283886267716554618718087618863411881927894585031359784211683097538841542621896497912458512408678684570299428320946190595840847864428214706989180471623623518023771288509834193654012027825647854554162991500964158345213021843379108346336730756444414459750064759400500413025838943704566341973671826708200940059490207152493929722838225218209586110874798330481010579604440230479229471042938525694849530974195281013874846570953369944786301133788704340260465088476058035560664172557793386561114383305964691619684525121943279149414713561600873009799239926919039755760983049975328497461701436208753590778290781772774928867747573801508776841909750610287473303505953300719689452245018185850432418945147268869104541881584028255818881828053701540333714053381941039145995883374045566358664514734861404780066065995096534772164950010288511349690485139397996756913054281489886286697589641486007923077515924389089022348353011636507927143174924362256797182698206668852066114524437855722538559364681569135492600431380571424800132743054064838202168353842141000917609166343370196716003888933569890841519522316973165338115487040975882125965800569734705882624796427810790165370961038038157063879994305329117154374358689051087252544621914562126406658845684994877102678885564807940983949704544679586003968035616449916187058274879990276105354465464549711637901690557642791217077844393414586510372422616540097156715795494955950737589218638988927558528511237311550966290826547028988184966022537082544002279696051039085252929577529667644415199697304624435027115178263357893486784019791928959796293069470985251192538132175716836564409212251441150247736825371161579918822627118456393270078181276145830015928185363737538864875306911915242772568642828742228853975838687288120279713575003591432686877200752468783550948960010572700714349204408855726066600942053933005021713915924184551247745359396660438604714500461776423519445126093442899811587382961166790070349166669949878785763093223773607231870072633731031493558076238518543672505599604771771362847808317698628570204854811323828819421177928247514358104339842685866132411927311675253327998700974698680797968090287025785602485640126849002586707279209587370811140441239520420561687904133752017892325518512941341164071592099500627232754846128598239956893384196082784954334982292707407302935158766039574217905219560339224431635645968657079565485351639572583215729294815099534304921612599841011052169363503676997232154833949684524931444851456789476253101316513303877170866762852306222760026665257111502481188824855398197155562818869132423550180083841945744647001200799906405173897572968296745783891320986795855472219137727790414431138422221260999509236257963615893778400234350714227370209822376691103081268302704720094570683311291154590790738107969016567747419969990110523646109819220126951373831784394261322438292019940599185861490153958975480791198405224772452191468308227373529222452431401822087097298754015466651276744253233522194428828544717119586689970395158362015820792671533269835759727197597226706626063818345512954355410607950094007933292966523777342907867469520948336275578359800595725089674695373449313825719810886931109312285413570642161144175677661791159490840485767261772226671007880044232626347379693811332456665420619601286544486720181804454907491323209165161255183778058084824414125230565872909539681279663627292714818659107855575821051622026242241313446798639319654108403157822720827007943202512589052148290878986966392541492712566376941579585565490560825233558738125512532492924888665805006655398407643733359545033357197777848832448950245802007495315554630691593928343856670186269421422122154043254874377649424397691275046163591623082278231714452756869505756813993296026117197831962782960843237002274877453931317084781887209183006786262775030180313151296926731393528398288006986331015394191880448139182512735555187355831031357648797911429877463593426504989896358965374527790726988935013660608604165909632173181260156646212239231836493591448951295826676143497403214901166465381037199767160176129875322703360300081413026721225558080018162351216008512901746297814468475200667412634194245476622330171544706252929912041920355469964240605606575660559373902439658812902509981811342862599590244710232699709582652603033604235554043844365223297026973451519106631010181025139801763430288800254516522185057673220956784128557634284164765210245285165170165676912643531195093277849193806909742131647707899080540097380399570361844911213488415463793087172050750212347729561201070309435938851342478743311185788339664422377855694905884248686274523357214356307286447260329560407033005159080770145026116534853985967451045474799354921869667849353115962305035019125808494660258287403276433888179206838930814797956348390185389311415265068394511883091800162962376832153048555942575689965474635034372047947631980740642616193078751403446301319200342087586358874512106126133612936599552813730232004089699387596178689180974821793721122491401158813409138392536734166033185770720184005258551661012951971023998080277394502319660212634935568704778462253371527746246769932443901293368288155556945522057547199243992860042152106535811488266805874801646319981936410661913487209135461781278601723252322918197583636784887744046074283331934589352868056490817531559486584078079448258896422531629989992341887592641692057808544478852693758670432251119249009012606852462784431398083138348652512806103853137611768114701511454564885209982584287857351594830220352344145390170635094868877144567057701456630291922952696553903596286857515249197304376846968664243763328180973518074400972730654771972034734187611748875650813437267293890740065995762563129487101580680858008891953974760832092391294711400285889773597007944198957635717361050742622799154960063557992289943718588931354616826070159313656945907099501872473023773874441758604164868687226665676125934797032096473931626161851084901021710906841206589196274433961860490013810776798022748226312686219866188008598538195034105043675232015769072283296334391981884489272213746667144293696981830115851312448330906191920071787042377433320578435144582702244080327670788057940630107839054521705068237106481891209102849143318642581132778035388009297924781404816512387846161687890755325953256560670130844930384086681028540160288198091845079039523452197049083843302481061498943246337600200470991732443789846821635828917151979494751993791242976113982294094165583200174857447033404006961032298133870818659841435585479138876790494591892568512988720624749597309677430163656618992925091687412522966243814362631247894046677012875183310028204649668538878746212665515018459060153241399959950005130574860999252589620345060432978187247404285908924886669623134746948914574529918965513216103041783216670708417001182357555370766293799803511937472426397814323651026245014456696815392739711703076417820946988640919933802697766257964692778080312048920283653344741353961218851858926528996810822799512715721939910418249325184967011969673928377269050129445655403943517903741507730370153599883724776850109595883869575504841477549515774714354825345421186252440938919812509247379831212021097494124333259206242169174224868555116401680197674737370957241466729009984179766116569281758532797094577885481399224944124372199362292152143402469346239006484915850783336551906643883948712531913629192629837981726695864853666778138537995128685565149981945159908243354968550011810099338629140591066244001772937264893351294672014192687779894572658194062205211933014941088773946616239441368286558888110592632082471439441590869527840007908721416623224244918382537106264240003457744786079249999648040659141587118090445493748277283195372297760507023905560489110627256462493876085974246230519913899468532295966369156000913631885279769039679282701814961217129551108274484712594876319843633432775240616162129021289241859054642419907442902779455246629458611453815798778164200427002693696296384246430609591581796701816690185244288609073026068620595120725598749344666649811811480503491669913966127862384255753138772627558786942538287768369274765584438118861785565396963032609121232752807843919121758133581550479563178402053502147431242461568356793203226453007794525684115581970853621982570711441041949918967609672091534242483297772459338669654713994837461159480795514563853941489419628624507205838916093177192966423176985985788607765014022449483112340629972048711606044548471006307574682221574237836520940719800430231357991674621457892531648410110427516136593153448418296791173855947353743833497539739560955697098973058483613555155676194509875937812111513189078659030587694682167205598069599472512453636598388426746905823933729511583719922063053303231499890325607562249823078376487540513551298401421667263531157766523521436315530225054195301706717755674717346171649599355100054718398118179567867922633305411966249211335788663239950759290860265373878319736543204200312963920460555345044281979640301291983622049578360066278241903222975305640309711710216064379345679357584507845937778396520970284451079142421091244387292769894258833935882135987885227315646040945523074933014014948764753928196250143964375074950135018907192440673194580520485927136981841836629952223367938009552553890227714233119350472842902143280652241343535936569591291646789963694281982148689740100564218150157467908514436216985233239283197045022401359062460379862019457889678048145589167192383708082801596115447392885439045119555867051165723939641451887610020209335254218916745341298108292648303233625906841085095069273207309998703834576041902653194994211559325904389546187556190106146623960732620398361354201551759066769775152486570824117689340688370774866196341807017086707875104759084142925893113873848977901701676713591254080674537263606220936181698684279117213592611564905279791602533267336317672627069536879748690596091934489113593217085971817448653019235867494898816920037095905711153912588274553807964478487955081777414711662444198923045014163351103370696464059754675286115002173055000533899352857218926951614672013446175264170326274957419128470484274981723750054958537135510633597640115735022751633800028610066801316667271072358996227404712375584861122213885423669288789132846765937356103333085835274260010734158076507355870594816855604431397432037403426545214976696574668054348682195639482629314320567030914310591145154263004573215914012331239434656833010939310901337189414871883301627207040541969725129591566325090218538029213025331421186205523815629047501507772612206779341893458010747788264851153774275445486262896753294020060101441929090927730323025316798447363217505983741808794534331739203835300922154899572462883486204252806009063606263420878529702789961754034346494154351627521446281571539997714553468161331950512492173693308244720283206390305577789913035491107437667600870809101380875655979348886730869583837634656772131652578733309863803450503593000115790368586607873494333907545003233208549482525003324538989118639570003899279093352285607900077894623522483376324365412439606071086597184102036451363077195595586574975716203128107560312329813449583624275060925281996104062149438793171396092587576512072951716068026302399938287339183765299260633098921471068260986298769424362722178250176274470420965583328785190167512652619918565099038302848310389719227745202268694770303876262244172048838369689318031437287107178693886775930621771627109987401123928528386974367175240014514404275170149981179087458882805372197238279086403628384931283089887263561587113700744861835314250299340006496383661008844872673569742089592800261331658044954479842687982548464459897460302793189071974256819302898972707890912512461577592000624523631501235547199039795086836534852031233834235331491666462844988392142253665392195336109648789406328281133761727793792799008203652725651052475817717680878537181285344993095336888129273218000365053112734775335619018206521990872654167186360059408565564281948526895091186217523242823113473974850355816431234279992455411795793039941639410513186467109854389320484461236980227083953836285890636453319400805887529358763172849880625807560124820729434717014925090880819124177742206203989821333091422531169455480523464687736250831786384820727000781787178242593066570419323885147293715445322429507681260210092276560073004760761053742564735134034531210495323940631897109424900157007607771393651397748854904729395498294358868391569555502313572083864557646436610436694701470970542224633290040431046536345499333734526997828702449860283418436664032296673014234771573426896115490773638113872096003048784672186165761434363883573945652951073932576186693774830681877061565666994738571486836484597539740772872535122612022535256275150148048050266455198980317167667286568956061350407831991842989222455723742515899973125001926418157225059788550085764442822064732037755256630840926892859750607206490992307174193420820573842507139606115432486933851267969394966389305796719923458687376777387507203316040086904761552408859778290174745306881999964200790847848932945454131323576717555830446751391269963765925666202536393518302823512299179767258711353168687848482332122214752226332229332575829715429697099144311565934883539806897980235717671005047370651373295891460462673981969089896175001975416121523360193860586981252364422396507327157567019245238795517712998949545765490983612978630459165925214395186501387287025361084844460459648279340340060394308485313188070940914432130002263317364782740955573337220254563473127393215347713283301159609191848015331910215909380195978327947646662785355448481713712230084316422828925644312454552915766009487705434651806486311543414431788060234051431648989927079565057126842529340696513871404367680224934328850002625528983672526525170348453863840305963574412171308084125157230176331921209544902894617478460044756039051042538209066386942791287928263455437345346789704655092661083757684886782646471214244021430819449888572254958879910682242788370048258983086983995090470393207923159717318481920395727005393900021671528053251660967421423988221674360109453960651954307233741388265763500489423264687124973809606074851698465825953617773021702078330796486845079471997256587155735931798090053833130113227417260943625521159036241316306869548751361545278488667812752699590595637430006187940803651344491699184190093267916197140043261330197427042953816230569171469917604874289738970730875907462398176494444293503292755431448530476569774873199862629352300325689624297244479874954569695205186255332247425306345866991717732355890965945790055636841303647505076556137911668725162721320962198662817050364914180344594559702050523054653085925790478355342563077882472829824899373340635537636946151497959675458508426235043383097976622729662700192741107666734836414568852667406839882545446056124958167171635921478292175379924455554462715256520644954884854058270513425748216441841850048981160864541398512803772344076436552591133377129295329831720333128589337871909248466405128947597593881296008474575528831790125781753395738909482282907636078028154967749231302414215677521156926930058852006907324504961439483093716636445231204855129127943641294444051312122599140398927570213411068766027065164876630447793443268435573412568186301008640281706568207326547192989406668278970185942778243247262856822166508224621866093569384858196895796505052600357235226183410241175786215176846951750967647934886494442206991521273546358477176091683239952050497395789883312891379661391229302585993268280169328860456249731176162618360871428107866711711500472432551822208110145735284992246660628998442390617426523072639705266726322827747219995789233604289706368296106229862861584117978339592691903408211727980338109380502842409661073492709681019001178620587764605992952003937152677403778000773818256318696736273665616641244229519398507944390007563671590909321895338437605834616459893606067827874743849017799820175346206912757109857335171406884625640359426821066119810265126627758811987190759025939275523540495342034348648347662386822877034084696666402145547374294266134042612996470867943241033405020628899022294221436835446653472821889335191798736673197950924341309170311101194061220711489963017282481408175741006137347124952621609604512858875444918457085432669576312683310448529264466675137501913416599759904743212629378059179727372559061758034399649844442293810942727677556327862633829602672485233158817575301973526563030059049970872563765328565926124481784342846666843078031346924508536143860138297988707671427403280209951431302687057228925855889238941482356553962647514899225265930905236690477135618007335628056881143611857800027350532427752280852881112398654178768041445298226468744403207634829128650177619527630239084411381281650806699879424566265198866525257336274781189408768828064376704184971947020643879132178784511695953610049719824614841762697224280944193657730407130270316149304006035685667447661481819693979801825935597784238918042840873735954422929082643090393866265621686047509466026176164401851939096773241189252112083506318057478589502351620766907515685498040868050525229018388082849836171181508859286269605582098877214540398343265151394826484193553528483999957535282776080550057392932189683179198156240729523784922785891383455681680635430081059967706226809250845575888985612728204270361144535994444437746991286663694498340656376076417052358223434078324883171419010776881230861086500128089036993695744089480829737944948755525551933912687899241492577757083128122523201403807314030838135314057529750379302786925843223866202357495770928766702901175259273641609585997727861855954164727368231066736166614644601874876065727724104138159751443020477719598215386571867215880855389995095572679343380791331710024967412937796029655544467501157039807993363196294993267659467007292360774928805837618158756347468614799307594243820645270028549559906285399834418762862481121803364462161051576498685815825973781744767769736245106905324143231152928623549710129148756392149770248285472941750196343431598894300375298364681152492621087260592983440892602655153379056592305253966665458599500974682100058149993352472584935373063793013882338120185502933204074546012058698079437082041265070422190250564900941794413803522204738067645276922044403090964885014333653798411786414615682870532597314469057885803834143685038059887588789174732478871774345891196163690357550060835529161190775979730343843212554456704192496969777270368110023124929779262818518214305512038702503443672754847568809826714057103441873743969659714818813669421843851180687509135595280126149866599916450958799877298176537194504376727434215240080021821014701746690514836533451624724154857396605311751839760988459237625341070895303631771859706536358774553717971119089691549719659733638308479565856270304304874208823819097733281713917078523750509061450696787396628746119758202000305573617542014902876124615246762413638925060648039267123775454088163488547203070987510671136607263390369102352736280864670760543901031499302483917706258413296412152308829430568546846282781467864238816489969060643530605158674315301425360674874482456721699054762271521086950875689903898283801929328164893305661039828415841701976746363353407886732153143455189886987032514581149854027898635228737723855777805134868064012716595751545322413368427183427479656653283138573515998761295232177800757850651182360416438107450391059297444171663524082859422525574111867436772811469014288381317595988789880824629518478222771783732101584683577706613464160023985778005941698936936648677225428781275189270858859752482094669446052044799558294139524656962438207691187753446799095435064876934403149308436993091418910815535809621453187043346189901433137074528311900865909164582882314563803408418211015379223620864069526859451754732342705528465892125358828540323245295975557180602673549099807023683002336076513144117013480015972357090360351019691156424580317777146737905338505614114697161369908349411231147837718367741847134058243508589440743990869202408479084079977263013926063778175004144587224251803009069812864329073537814168742452998447396699931357617418404121159779329572510033690308505319788900515108993041064056801460055321931431161771024462469178801358548627335973714954026935678706272289292352508042238494256851962246862343950389554452895073468073994404005217541030419782038045493978358863981591892080097634497837492793860408652763997271944534621964417276646023914876628916239830323572824352483196757002448946307497860200976419450417498544840695592022912960386226881655993248720440174610436011588081896026495485420898106127395380950014313632345137629744962287331938451737914751130798565350400182144765691942545032149733763207295274137660591352545621565567738351605473114280510883401670322827556382895546420354370251294832050238496082800389839261590199922069163317757687577462816444790659507208727909783536043173156541141443873523182313699121839310457302874850525558874878380574929772402835613145334901609476815647574013565431714345903292003893325165006264555234162534481982483042888143626904863191444405006971209129902497893820984652705436619925927789227491685748327898937215130447047118709446786007622249265680747272585894562123948320302902351955234842500718627839430509031150762223663033478938117325552033676363767346511448466747684885268826580757631867143134405977479020310319463645649335795527021065496252294767759647802183427629447791820810563716225979268061837885762382252022697028074059130681017883946524305643259686307296920342266890763386008318072713957687116148928537393585247099277618598511379978174822548879330939364076385806299339072274281477873934196813223896644773328546541239083620748716749369193983910279894194678702975587710744694910196161606241186484830099737425130815136075292899971792884572680667360455205321766330513805494153269643547570766361002026090760446024277757268285811665288848739297632383413559550563806060303929706187553370294591493510325050830467345349348021173521301012762970110624434323360803106650654586151119944914362027860654676508339527227460536503420342403722389672440906453973336368496139269278760110703828819922630450595460124917539136078424567582853437106104545508105162730695433743977909529465802531670620883294958415755946914671849094779360010413098881482311522859798959813442551379949820052789509691908529227952715614361755520023305875394571151937425101861133238591866307759680320579792934048340619817339360884945278791260089965770761988065964809149066805511325030877082595471065966498943913882127438682330457140845420357603529302885708076403306931896749575941679023580741594857217706057056693957222134573886252139054141749278765251252208477752934039942424495074796663405779909651305835520111512414027001524383597504808015199024220988366076740690678440727059951649918933210073820592959043289337596042079572169386430187557659932161944160775405878885409946724396660455538930786112192919721302318909533671765581908591526391387460033841470171459673964830252224637047846016093333817428062988258977888228815058519468312212140584566973629943186799797835310672629494388437133297352947462755873101435015224589050065218810239011613339499445765575373199771893728516264348815098124287727360099492891469477228057791978537234800049406452048736017303012431448698274438071825583961806331280448000850708000905636997800507467839868124603402275750202402872566544868272501191046267162191571544188502140795598043248052030874937328828428682074684052316985087970965596211589699425121222484162557447378576492313444384420685999257077061623707876347154338375337569315870440552784699453737920561580088079418716119097507696665424874419764481079934542432295649722647112801240444647795634328865885125169013193536771890639966337923787090301341043159795554022418751639526833880213282085311678464440419967923067568478391549832015119186001732082728641865093042493786542379816329145153242008055907110466201424841040542086228560987571397942045508582855092565522410467927477394987816263371130353874807511241716825358770073584751914220486023590149440689980863086403565408130621131713865649003726372069268439064146431983769491910577381947776437896668161885345672087597176999375071489354315883969154401790165672943467453543072187292349134193143081983630324961349747050715861164520236099089000425915821354687361954494904249076017806166584972911639424056114794222958236317129580470221345983806003097868129927771412803733090701034107836176071076130788727745848698504903887367201750309766608352374224477192369159987253714553376763576136565829145998230728238515550954162306726662919003691523162358261129200032256941077853536270789382675545290352390873643711492603599656225241296078964666180190452037390659935235069579414400834833872517977367844656377110214699458187966229496145423174502297977754866199770780043886235954896279575717041619016996984136006556679590804207430087199920223393182743185608822969173518151146253987966850445799546838800733302647210740196970152128678962549929464843222119398028786935365124513087205282752394862604333584415068901433169928532614557682852518007981103797717574410216958756009422192014971583966676151109849435567030208284643917482998999391799229833489504289726465400011976950962844939735048232155892682666494161321545172582344998153699709749823591826690436115652775037735575042425497528970855609759691746523573754713375996713254220235047641562023879855006738875138930920296387855324375010361601745053814258048149272139840038417886265951684097319495699404456354314068780974337653798864380560560486859673851153269783503785358652680009067914657578765552312783828272947199672686518786540617468334650989748229724242183705824384814221759072135370063682674239303868801400701500400504198466265790988081477461884983841575925705744157479171625811440980956427526580888089922080267558754755094524797866351812669642273771634253838630084202056456550493379875565277606227262039590768392477317828171291289847960909646233957078091442911000009867800701469589979962288609784055202600336098814234358106774567765504501013030007527732131594606836366900000963330315165154977747902660386152966999256180324167681277984265362617009584667246357487599834301956603574814503515424528041238881753978030046929191383694244025639346456870572220737983594177607172584630177968923433021420040479608341733597710149984508808705140374664360308916698854229089219515116847793524075485253079436150499538570596601583251760081590391207058373610516289268870950270584694080960500991815187416222371989217888170606660963714432021567686237433493133115433923185052341467241068329697708016095753393155136291411888079034830395657011807074994665144391886950667325996625274145767573023886654728679783020546400532799790810049901497020407770332324829637940814727900421715697741598423153204250454209980698289445058967857336215175852292977948712765090013891592641604078710526566185339485450220144157129373091383157898056054024419437653534392129011898496301621715378995246076311280555454946361930511359242177168481326513714330282827320192169507031613202306330633325483667005650411698943675815378788224291844643225840557179013271761124909482979479807707779431497854488694538167434973905344754069246352288517417589089205528233085564033668055022023439773320893285705350234818062709870727645263263333701458370499869512849855227095599174221948802836787400854078554834707392510958733327569186353351407941293429444893249503209693404302411703437683113447746394377601610600011045661991094580283586811538270402652138732718488981993077141872208866183970428564924137689305253087300598444372524823590862045754907056606730918088270000615177789555952280940630709425294671568320852448985873386175842264219293722548298869566460866311193783914761422076592066852251583024796790071719633686370974261163113034253357332595662917498997303569875367965255575104149698202319888108811626606194603481401710578911201387419089860686774045234375804688457610077339171689284500130065175031264304978045800596977956951115305786877329076000857983665012341290716336612488844953829107054388324619310241571787353954527254865651105056976907989593952993175860809254829236966603768360012668352867350593491333423077285558494463049786747447328040776018103249285978597905854436959286807425689082001935307524459320267659275943760094904785763448237957592044774903213613832265008382357488549471064392126333627620535929626456969120179590984605006874884453988396041035499445320525734394127715813243018713275945260822826488950607628000875868182539020371596026380291970851956815011317276967066417725634403080721806666449630342437594367401691224903825612096600987125442566311055062948297132231967114947780228331920747354785858586065893120636940223535093892032454972688133780826433821803524982792256457941877838142594561584520367036077509789930093590239946972693041174944678013788555476245149086468741613972205661465215216369166874114199077997428167489155966180020539546872614593404104011571694274515166216740986567032618218960893442800040035395579189202454204956356612517162685118400914380005679121869127548513567310530839077228723646664688673872394818319522254187335927260377628359261146525931429304026363538984977009237594904368303719216551489729962179475168899420921923730960782027218614069012238142622920641409167367331196704656637850999059212535250247157981604204680817691267328800735591368113771847347443846206836606011858562143133044105394084029803245357963645365208327966966086635265125741006895622226125916436368515014365315159868893224359934717187249880391457734443773459159369132670885601397191870955504029367734767673670091612247797744736052698790619246292386689566468878319147631420776030842321788962525168458054565342460064540914603024139447207689166113501379112205458815645004678061338484838056049991867694444741215068111998640656174874836111366687900248128123861150546282704963169110452173076481837179242270146868546242593649974410660150719578024674213006429530598873498442819652591544041028474278296767776912400854542715714594878535619129128999078767682881020042863440716139306538093718189771092684229215149788799865561750921908545170579375283599150799651571400687869255571316699698280603939239412054763267405532716737068092154627792199232810630548159623317330648826268734498166220387609151228288818511475440678615189808919386069312683928710101225876372674563746813752007289799111638861453458981268818199137796997040429676543396672984308927027723374387460220306461597787857036721621134288964179058003311819935118859293172214189250826796738890558668985466360840367884057193568834475322860460141878434059293113985766977339154740818332711518724389520747619169445536579590691978968020304324329649315810321651110303634562864183321066384627080311974050679614753896407229773470720891018631642622000888156962227916652883646690923081644632831989970332713409413593869966161905073528432243541587943119301148415592979375699144825788969067586685583631837264131392594670818740163440129558199321406727725073403421921120706738946518504841163947517945189991514184112808921601292477088045775245637244425279015668511975371776427335327575895231234639975403505861407429261517527224372887259980154353261521729314625961052279570258280311139208311120111985596626000484166414477216294192019271750267993346705695828332811559727358992623772839935581854345934435523083671834080655465633389221347760205978256467912765050263204235365743344157241398892908063969607842462135882349875288382987468833288045535364588324899928173385012102106610979385026411338640034556001525808551636826763652529667683465360631905000761465183623822047578250055854722836676325805026181501381744100292866664677293693057105329060145603420445384256753291217206882263639831723878934617331101635647428570776399922023298886374802224985367762969464937720272722201919321232089655468541051685259790362556175074888092389729571338968069271932215197721451454490312892522031140818421313969343501144800727789772581705284520605351634344496494934142927566267744041110261794280023100211862706101582173365880687829934036710655431744138331008992631584118433775481083824191704285989552448686270138813293616416226294860502396824666779077667303263790460909941364030480892401788885713094058692531535559180328350159979893674625304376820925799249863300189256081564874269477317088274276621792689502877182692199097249952006621064168495606804517812000350935447038373106910615547949623165731875593825945917189250461535732559398788321110564987444622598980485056767548830036217229363436298803726882088497651828570335420721438032192541361650320968289417937212231924611673633366031667499743659390155482011371366021182925324933851715372738856833760993811063055085864895386301185636736557845337403776731073884469115479380951445657020654752940277759016850003925137060413107430989447203074875648640284066620725286701101626038274267696745465729932981764665352690457592952872031351089875140820477284323059986554204421974359682697298107340946006783818461038581770830608742347331799295461005734881694903918802886392235732484248264712523766565743786632138645881428930325571462121656935804741173573027761639902174879460344602759112168030497282084183012624058215394849448387189945292720693949861468967756362232746773939057470580817313680973140504051252455978131383687198388159296217313449677204395335185408953199834186318781851518158762397210462459700628823058378558427319003706383285354491176879694154606519625556015686577330694178322207801281149575286660955325072553579400917285820524812711991940316385412564238094229382180834273449777651196366262421506198784339995541523018604252439026680170859726474288775960721147912897784186829787310758640406789709936460758544867676509151907548556930965247773073571987397198900821352722915121279740346160870064071697508469724558381656020539629823257467038963077861541735022799150054351797330414360671761600999803085614382053147880191823202363153745664955414010477648096983353858267032507850116758567118181590047797098977079517744932903592525747029808008465071827996109393617267889967159749918812583263940582365818637383037078778675422191273133354285771248807418040370440131562788486908269530510831790715889486185320224867946940005192853832381401833774766647123082945599419876620287645258551183225843215195000437003532323693218317766822944539151806587975787986172612167184874216675697269460256546031050341452874431649307752239311295865333048686238759729265260451448330721978014020101383295459882127337165439372818641685624915150486036493669592169997781179099194192439768650557037632869670474087317639031564102494603350774569707554526367968733043111254000824229261066558791317967455736303120058924664526545801342339087439553574052703016697594168350043629182600913535982328966875313991008186776232588618582383474186154611556295117189976977031044612663857080099210791282789929458060821128374642794336935614587620740106010383834725723397378225854180066709623390900729692877722974416292911624756947463143534895302102192813123400311672006324725437818715012114222322290631420203495829712542747578303629379953875926097266781885025137067145555851185375594050935516329458181099949822635657700190210393076364011487348530950086080934937657194189588957062521852457553433237801379262346772223074764360460792900567653943008787704512079898932649725823476128064105064924352113365204732572717990725938387503252738350668435424949851628130732928194830733643855827832503915049715213752654105209733652783222980990484163910881889439940278056590393055248287940047606869211819938380731959999091908643659956550136392742074650475074428451448504201340354643698782016284411429872696093063034793117170965723433665472553883358427188464363773837639542707687614847018180834058898030805629958526451156841702847684825852210462258492259553776206072553388547852969478654527038535870867996472689188867688519968530674338677094761821267618597600977441141810731225404176358592636082479076315272811553127990916309812007398424010908387892351175797558810402337493452918278832382657204649062117245526735484031682571094514578855788976445175456416910081344871148095763143458793141466405688748634351400409661224800181551495657493887312238424854126156124011193460933122462554132163031024561410358466506352789380361438115774327265052556302268641813393867641131318226727045090780217731186704396050703557393446326852450510400390624503072361769490536021421876389693693556315600426233252894119681805808868905705033191665380976798641390974727006438008483047508469224585385810930611590264180907305632489743416599614306305472278426162985286164966899049056984555730524608226456473786878005667702182159197784974703719475557735953017707156150762496095923884700660444830800793670091045327531225252815305386202782907756562058873841118479433175880892210544587041027598846280628808200821660850782418723914397209797829483569541808122778767721825180512234573386293921019871224167113387920984767004729789976441782227235377402857068418967722778146933673695926099432319217346459995486410747143875019492904395639389320902837350581967716635169092819668454113062589790959035115659029773801500721066585902476772649374795186220573428388529370580296476904758671665804083233712032787452005675219675330544032721639983809082761823425643487496933272314424909769727302539309261752092317076530748751506277975339024793983946440261388411147868572896852448566746619005127720766538518841590894335501854586078569957043751785293999916874277322592662867079656114949318323908160810700390277492108465866667425332639025459453558622974997457754652070515818071732295120276785573663445622838735040491383434283304249327358524519054802864597450216465266235612251298267652137375461722444285898735189184311815439274309918794015445096399287956110866014073843284296131858885641524947217166548698722497232494971567917134754018688410649865081025042323716339781368411251231083714463682311042934852963614676383345510954786085534392357508018020800174004703584475571636478588531138721439053430909622564954320797461603072350959356596565637996593450968717944150546453556236227222051482272542841609916170250768433003823969765596711528988393993874295538039202483450355398707662335189620689327060263319283849030108211479306962913317637058435766660635426515172571924220929749179133329573721613705464666747389769488984542622764058179734375455638652165801031253699681135075670589793397339091168860244552822842578024422834131920477873833706498660245869375851393242039597494463669327670434687565658418242961133231135781355687064136845638064221316099916920521560958952496937219126615241297146296501320233376829956500215957624911052019403731942510373342032435894137077092274368949781355641900295483929303307785673144408460489692039358973766330587195694314239657927917389328878401030384352308082487243908730187355397958722572948998803190049418677196371481730560906646816921686339203531934310104425838796057266187138152530244267883324047864233719572056047845002445975114928082578453444411770345756827901292534483111594049754829758226696566912489489064575611503673838509857087893439520156859044752852321744841677682571754810525005847734413406685335588142912664145168832982055416588151878653497624085642979207275217018971583171921701569682537973314552238390130740801161309279954286223520324926403394061709748991889830148519651433092935165768326779607964160727183783577588796478092799694932292630206570481545680425563389868331098134947279441381503484240221144003138127582699013056236911017859695070919076883413824905976569318631401244670124743374392213769384770133442083325246720674581785240941151330532208724041373998011420955169396384999460675655309426671833189813263559217027317451303389559933410094663631931126400330115283164758135203455334876681184136933580021509296911521697352434262559334662715626531230950058463784224854660697044286933842078518436647035092574833328566633624671205906072779373833602294748859673014289655755496851783908736367332023135065561561768182539667012573129719420006318577256841464999150709764740653495011185955885273820966985059828838498734395854541463753931905033030014896074963480093638330838631579334981000059691728996711044437126270934794916689177036149846136224102869957674966296110905983127625560613693958521347037108504245803770547336232646574087234537774001277270829950995694282288112427510807659167869022218078872593471895780513377968395230498933021026028366011313650986624743961043640340642607780237393934479605186565514971522179194614812911874891826092856625539865823002540708973870512522193742372736788605822615733057298486759675219948693068971639998634273377184096172820640527699401018626379514457022058406977935776849411455974662044190460050765893754172575966954831510508008849703520320022219555667517986258782217577950254493666825530741082731101232968393429903452067995267566488466788518958476102864090398181527487704669889999701116139167685512837018052237018305613809903285160152758276117686244700402421289704499904258579309850020472999101893926658008763282029433148006897156472346132593148688020553783063517875794609494171020093933684232613373959612746421128538068071322011673897356769230256014984056880692118722432796362495469295791290547557943185355484055488790369837585640930034646847882776440120021947169789255659484223834738767139497294210673092158281562292090025901833499668590622905497871436242184378238639421279894459108494133952274484025944036083241411990498362354895629409402786450269528614510488780934477296249207224051121115261866161006080793884943129285666648339508337535820124221950296659332418615015540838401057151879040090845919043736726943174184329068528102512364691526382692875254972990870263040264788448168849975732277208958549592506464393405367564473311533794953773048898735825699141395677934444679050092413428522126945697712515076919199318442796702106138241057218648254651282802664313606922347776172293801572311928165316791343638340263550262561668843382256211336231945706737671995785004830899805632892466129191638532694242453639184970985529909730185443072221126747101644419758015897259300133227631040337815089013810261143769978111608360309387136850557831217427279697014974278752228050720018971385060278129239874567878408266731985201328868080501638493836543728859839381602616652826888295833117262128823873141331954449052587242349761856830139546284548327117646648159789159316596709242905668566982601568900489662696498113585083925456227775878034854412601860279453985316936252118220559556219635603751122003340528549121510623357937505012208875967608981768785496323783694441451363031359213327638222717914356458464586015769796858609556814482940268423206864439720783848017620229795989130270409124344599217908126511681546828456102630219594414238334537396760654263160921478704768420845519489105323522230354001159562142672136070796923252144208226672350678871410878088444773303814347505660573413487265410713301002120595058929701735027965021370429348378169703829917578930081609440522223840563682642560576591514424841613698838691415829248071543573752900031922706508227190838817002097922480494469583473647958556765741144614963032817712054145643593704844089841565885972847926807938301177175221529052951059237241503358039490317306063937314263147538522236929900339102449075348359057970078392537078774863968601479581963473904847675420886547642463679989162492157805232465356732671647748213609894600219206174591365794133336726562375708702060304348191975526941087603625558974524831291251354823661457234628689549209100979022876134271671415789089153775153957224817496810731029596930463812089697060763752416133766066290597296480045015996516502637237321438634592379662793864867881297517389725830236399896315390972623807742905924750235194827950698154940348426551430934899552273594412072398898533877059789414271325126280964431510455995667790638030872401533146156927778536600650107620407688459291029353457934579096877409620066364751403025477769080433728629850316282943561634264215627956322169878234368328306820043608291406975001526415565089190879120126840474205198937031704920644420188784212726644427704563473884059779824953391602711186503008680052440324227354243591018668468109313253694952958995600537255162369760601802054044733359474707487884922289187249758436890507460869644067629673563824685601744659959727169690015651015958708860408959112268345166301650709509760361538191954549487856476036451238722972319411353433995208303095307877577939135988115821440588478453359013826219077622256545418186860396896290081260654589227715365382022205580362326270890384541507736589225938888216296951604502692743371082636391064356026886202467590942516507644910635409207390616025451703858880053974615030051300035742100875874342981367024538426669813649075852118652483721898678494565468256412243178350054163496304241803457568526734170022810843871305521204316024904425466119205296024235528348679344791060177195901075932217653299537221049750778798445381153084106467648177706588230210280125242221930464640167841372831842096641134254846990437136953334366994667398443626467265448691938030203369339787473738673977759265168015244340360090513259063248875492691244471169985351849539675718395769052680412106724401680760034296683993771764491327797423881535410016285701840461854679733348842057744351737201325427581652073856490594076355891883866177357732710392986209850495622931423141968165120752077234437589118414331754082755805386355506871884524226401230714136151753637638163830962943293326046744659519021393365021749116071173307070440169515520798037485674124969551266772890996074705093150970219995989721198339942407717200541834498877586647132906367473250088047982859693233610437189543551309997601083630661970946732008052476556341686474287819489562149609785268545904507892544830050136864738751046567979725422558207203691880823130265798395366794576097850872291769122905919259864203338327677661471168342107446853074141190470750244584958727555667573796309949860017137655755505646693529302281780244538429342783987637388932925182462477557770541562159071918028978435123852392932457309325951514226506493118905927134375529710646150893375121173859133777263983336760119060373685959264250237400061501911747889088116556371614015160196275706936381747141792901957682022036625125274427011438983379609322635197516508552433087879693066965619823124640112120968969616395931606534151232509434391034413362062855339010233503955484006484024429584763193060419504015670033853736643222167307148849659368879093595041366363659520501589764126030686843174339878181432128197774953367576275957415607433926429044917237628831168767378083739209772064636420330775588644783334784464100547010200943244182681319878961704936878622301138909525798174169505317879066641258707549189189346664456373370674163201444134908903536067506720782663961539758745166830254965596881028365980756047763509612190156007055260417045428662841845110243153928990803124248723885022394761490409057687705965773097569827892186627262488303008983002268475793942314549852614638155973812331540634009444427435601356852742428920430073765719951099786390795106457839483756889514319704802957707055333024575153341108308505912708189563584950223519471637044415209968875163117142357506453689089731485478911920928341421069304115696673828462397692925881362493346171342382262532043346473276805218118860410856703853214189189108707680747180729172748565461900138034306362262900584036697645059143137801211069635698245994072210942732842510887768696336698532010937937765566674127756875894083453576097980946567835208096787562887903105415576799791572391458809740723834157781101801430638864699982935743556294911488529995341936814897256785668194939794163129773408061168683977662632677228611911916328565426089559189259207085422376274847603571109337182847802942633301144274295972517006277142562823289631831411249104728230730235576150760658765952468073377958116501591411613886248709167245785892411621215334743445176534950932569441241542279855810480735269809131617846022893348254905856570677552792283398951332689358350240154579572729028624139997971771106583813021085141022147645801174716736289012627984569422605537218723690865285599662823727579020557903230557479504281794664251434166488314941685647924040059190448566792542379686069200040269593776869043588510177516491396054993528301668374025577484665653916789324122781420821605319863836306126792778650318000319710480967407269368936868798094781641769278991937809533176620274916360951188569449398347849120458687980632766192605118655759095437944516713513184858461100831938719517084190746578267440197545812577682411924100212981402240128878493184512911524580165998470702890566662442330035842183137082036603784714797152092101379560154650163970489224172896811908088142746731620088733543105924055429452162841798173096227054149076945342655734023314573576188210550631659698777089146398600006163916177192321816013912268029446563426662899301948438582783681672702737468559145962264708527013641400762782166051114594638108787881302964021083473464368955264642857979921004101342260545343109818212980076020500932036354992033460448935046437221633310045475721195385570511929045608071036591398730351568284842028239529854292803189433427526900077347104111870215690352172571910827830183792421977175703115132649913316005842369592145529729940824838021342682530152945272196546206529998799716582637713150761080291863999810512474862357098473122076555890267115804978793480036783848059181986715847094449469093496840987705391091420572877439334149476613346663034081589189772588776931359417378194044825314759299734124491569491457692213962367744267575362244215050658870711238569521961947781606912527692946934420116077013281430778808457092875946459322681083900798757753301662593126359664693257147952695030354737308180322738652745579125900920462518748030563196535486800463656966402165969361687748692968669691160844510390573487972675274412250271795675722675060776049377679444602127575690761811751745827493647247893710191745237836898887035746253818245398598853543463626475659950612483154117190313022018336652216690998475933904791889028549094459367693541824946654771716602023923892047078237808559825758087956902567692162656374112899974689707598399191845639312648613939876937008281274726131000380102833099758183605101425244246453949931689135531986556488993989456337897293846004820158082741974104620050510133101407083578446265104272485969626748778305788679390106536686225759341376959857469179313969716014953712655581545782313396120821103268541489691771003435708911341166293165879973949026649964701301610122038046752508744907110869669336844124199507541372207914206310672337268175933569350215481904728926483392689606009882366872231573230930225885582031310421176892757142333556880212991518399729486557622097145995830792908816654105245221712148541814853264752430452163793484167463663107340833231239088202971859017348873511925075472656118409816263143605745618802975598634308924173839484912336981425193049544896159856554764552537990872407622480900701169394178399407011116450007015605807639465678646219940415818474497078459449976527289630130118091022860925124390936659683202957137084634961187053263368370566595907201307716022592429253193426869773569898801852018750971677074198069245917900367296652591063588739005426243141434500942854713512303635086349432656373181682883162754301546220092424416583220240223518042269862856137901953567716604794801213082667970859812686703139986433966272260141809096589835475518836895612213467356934207952011470547119441449126734759328475501307772325121103387298331280790685751627461503331862130184154611374829049057196801424375874281029784462619085548233864986059446440360206975657990464509810017000282964990320916278490645216664199512720855823622892961564196850901287316168643418190769250602223575097630081672506880400098259350285607694553010127730915499163124214927531692799919525066537687425804222927982338771700332617717921847050718921378093223409701154355247659145900394524379741689505806905275520213157117523886210013639795329995235989940217433157104388301718783814086896089502229859955482721554488575649627736939130749132385652557698889548743290013546252872334451083578053705088999868189294741362332618706265161079105860278631113384268399181692956631131588094451796441565035488735986278488598912949305106151027895950232357862534757224935513911899317349145872244946549146986541904893253175681591695600174183979839745543061761591403348176621345069593110178810457830186677135976082530995140701458300799589942064206622442044914359984021165074010431423452309821193529142168482168294035051860919452385011557050149024551353649528276537092011304849307173492834052442032690366600901547668264236301834830777095983227067286463281068886596413442046017112195888688333447910268495377252729476935935247334602509248900253133288539193428232887351613829420154725104332484903903416494994996085117418169530592048107093263731901303677523913357343865762969370488806881082131239699963559629836704850645968759213474474094382281913950129175517321852379551220081671148880316626697106517227805850138052711362556876355255766305308459392178123003034007353869076353638059904594302723473440057730254695929802745460314480341826743433173792038835061019187032059076290520021836169831104138435845052954119722716320709706516138660680483101501002467483907761873322072588506961130047545954323928974778349944592632659576274141848618851238774609721467447372726167520930231864449931844943543637413287692487061785160172013937115826164666907538490053343448784011937758213737915057848281579017996985137803266409342679719499874895195064862025315180217498767943016540125940497631174924901156117726728626771056266091464912799424092642494324475342559465904951594716451080207937432917176633924907730949650660229198962699354780123814586348872414441305416181161123608667556282871902138506092719130717826524634885679168951493088969847111623133634872811866795242038862347702715754249124482180056445140702623407795771575584937458906730962061394276108641738504241246914208473132832961217855213738281023216010761220858180652911363146368065416584208149654183682360789521941766451678794215412480541774383775075541761304909262708481336246962788215596905168858179917533258544264516881245380601399525134723246600018730893034381279241984506418201005843514097380701130419021809834295953757673995416450564224553887632280187080750883268222404538355072299705888463361078316664911378829126999065552470124478287722987711048892273582905215353490408418111621993265098972010979300435274007434233474413128119732883332346461295319855302580454086576312448573962663402730757760648235659158088238097170765666408417009971207244242145310111015870280841295453891212851601462988298049888047454167072916036155474213128263671525583711219416933773410082366299682743704029308887269706330193066468049136953331199633136918739752018173819417865237076286928107190789404839376772807328971896127462718688011755005764340114007123418422472691578015550889148679790355249359358725862886379586942061625408076502580287540934698224551519675993068771029342284260069001998719256284081059616724295709208155543907654084003774950733126226845530494122983021197455998220266717218773886761244187827273413019894277244693716193339893708217671114552220455952696532750161429213287802698091065252043664748112593007880359493542320125024340692655513672904718808938690137081827826771131608473740578235663966363579976009546261497859700871455166853337903118317343311164723167764525204638265814465179390270721606377580589704820316902230956545658172220804548233089323580097048633757651147122463810659423901955365243994624427609748347569003805209559107150740877777117756910692754841725054464952838336269520229157205822612970939170397703329234472851007407978734690553696011420005069018631518129894238645372257464720233972434757087348030996248802564785217153118571586135320929982077491896020226824078550277233008439067966533149964871795347714435569088865048481761808501326265861567814031497314820039061066783591975008905627551635966374034047493995607355945547416296545238646542327119812588304060628955197532931688157997648822634009361924902984564691828154813816087933190145484078279330641815301522590442628935660157136366138509260638720814230620778475039560174429733487358839052000216190621747934512909870857437572016189927198642620370662034761142802965988949804283761025845319525679764942554879335823859540706738232429314725004989937167922663341857828742800267339351815972245791194107751816721253665989878337288851430771101719648752789332399998463795686069705239117411402542952437861837819569878548513844170714744749120607296478569365851731215087150302460714293367604670747186461215297252710598501579831173044066895349255918034682323131391923436177794397457977046350771899342216059711320900367520259372755417971242833610682618408552922990742411501627844525465950880214272267780026683798919000085613746051913190402110958712464722135749381441259715894040631686620811128426788972534824779107216141852666965108138745805369325993540932457381339836012825614305360952528814714887183555822992453740452170057681530724725462307994924070737924445449520156748425608325314095330415969779816592731951622974764446998090006319964639510623408513317441024819887891484133957237549763647527952254065101110034726974402684161406509857412192049690213924922728178764184176192738671753094783393528728255142374892550734771230123861440422451095586899452765904457685431407115593909394630373004708505261597203315556004467885041761117064108669128882401667767335970550024430900242882772749275677894955761630383888030469079604470824176444142270793325019149899542272243294310447718289236563585546366672485795820311488038082452293774310369307537890819795417919151035587288657672003384639379378732276797913476287322235648677629183099989906186201119220942114629037720109640207031210353671649307065958037297001438435189266668438767129312374259693125099577084028511965138317638210453478529080193828275057293291562129815773527867063377903379291912815968517923020860850647473665964138507013436224370891390353181840672461199175741146159192850147459204447411534072000382454906113471049315789889542504997670395303337347150990694573488522371755735956238549495654666749984528416768191138216164182434802267519290682090941736038492772390219344765056362561142930185339819157299127108692399485995217233514021851348145508636420607513646568094053242601830311481599897806892206541258316665742581199081571499087945029628489232279413318396504620357230483165137988582207694488098486852701993321916077121410343074469087185006437903664213603089866750131168198970330158128074137758910415815585919032665259680565561146733613330414120513667746916461356792923504816635998937743199079735615808259461887814587429034324202046482852656744436627922113540508751471868603940395795007709048635743148629112074033647264887350257654648905161365879075616834651971347467676993678495210456411222922978212857961451817200017164960717257219663947537857936098593539337577546346580685208528429015534585914747308218546461940749847279577987578429874788638746580750042896783442895424036245841664839065526673821810688399959967470923994544723167734222660942168399406959595891572458702526906409235800257260205462919412001757094682463320296329514163327479311185168190684656192956549915450182075953960079204311772377420537699823290356232316929120656542161056995712387802108484064145892014475230853919093502653186514815981792185185288660925115459926146045084185560348431007372468321220521350915551353981278946044187235204813876930971487683459430150516487684953895599798652001921556168663932618737420293794079840775091098436032630186397366103846658595259488938973326422893244909819945422945539369888532038524835510338242316823337204881051204688772505586190261857099858725137400347496689845007865418698426506532948040783945138067309015269453975470379388335609257388793586231188813871668315312350525562012727100731324469933623079599606755088312468621165899953492933172792916628975802377047996624670893266819252854548923456980370958141282973135614356175544441577067716167904193954356364733569256287422353523650878951141719693139968391837617312583215628392444236328081763332779126436409307042700268330380999413266338551678059390724478191775689192129377519756706049835774030513200938105062285283163218519085821394355186819385526322431503931686988194076395913826818054999129753463340993571168285884160348976841274525434845100714960400729886166696287050746010608180380185230080736130674400630821114263149262933354686808325612275207067219909871657481695077204036530424473490146559365257228443542837079448958351040270582798140945760435493725799681633337533697016166241484238962430343665881355620534087146153825496222983243249886368168973196686914935256808153423783569172799602809945017363881767901719917559818994268837081410839102657577056297772324569404298519130455988845936136939316101290612680540291006007510647038176269622458303994405038790007038373082515145860222382235694531527354416740612495896350075795201036266801197444775645412181468265200895640683581014155638811461325914424663704000053661634037551130068125033006840129530213068498340145633647440392904412254076956985643024609627489181710525873844456897395712395073951177145494076143625440514276994765657467459780540045888496503435753601661748097892805768497428652250072252340231969546861048290271979111153829680393167672439346773276321378875178177474854481245918040892120593362323861805094601659688952614030123588340483073559647154992925358781638305101864339393996220765991048901869153328617961776661284557460067226752228400431345254760795838869348203528428265434406243953768283131460861410516730041280205999188502139889100605391981815832685217913558366241088819373440071199875456734487304443995576768463794404594180712153383512093989762199460586613513959431881262334647160414663726091450249906949383008609317009659865957999812421543440417866316583823991208278965840471113565105507517676359142211808562871890883825415298523189901596012753949800158663737773042352082513378646733309348672163338861452195416652181789377541961622795369966255508555360185857546738089268266169887822689156928093041845972019027562927510098756469702143301967929437970726980622750402598198998852363290270224423883815891695229239321077055532102110789118818148650384356911971020141682975715617143214022565584788838693216326062306716934176620012774175017219662426087920666439912605143130740777055416775625938787608219530719239605367178761188496313146314037543457633613235981941945077081902532252411646291335212525667108040351363869606206943274112511983212935477840447610229229426067353490244030921420113650115869626775329706957556205229394602276731225868578182078199995372708469351551150246483962807235982217042114006146636425867853391791190049127414269174338184959825197231651208137907401001994932367084495925336530029604546443552783383815527209303282430999197748718006178973394295007363040879771295928474101791028793794565061670651553986259345005809386998859896918250869496577249797537320501005870669344958087944702751944921370991124706920753444036025106839804861762575636242243201425521110569812786464054508933657577532990125718174758414372728932479017916243056329652444612242863969536030350383785422145725077319048219175259807150761747196988806382328597881825136440357761661580798162001172105711137754445709406740022193019642359999414368540656759057172063138627942103705214975138395313714229095441947674230087380791859637786726376346047409187993109689335561932850137344994453460962991823701817396221298593259754217562805667344689896410849934086177457170438017088850408539770421932672513999797797336941802006826916688045372591573488021657743219353898455277240332598248850403519647028031566657754631550716843237886789458165882932377661334838899011596809447562972005130926209650510082034974521423253770961429954517727236558402475990462950379188476826298982492943052038147791080149065053021750038161510392982142089164641943850641014430155982640800729296782156032867749172944241425867360491298773098389233504511260373661254113552734983798329450594214895421917335312784846571890123539669918338813294548650876277751133735641306122537868634925126490951339726161413455741404465239696643530850631244024362749788876222327769792818243573325558968669544628411515654489576440029555945349517338732499120604728665986686285371579700514945642987668861022025450649878862426111477602422456439178835227224860037013688715236461273802277677513510381959817606617879914024939159484852961279165237054301196270292316700980102557471080664694758213848686142690733587765530526944478719292120529697347811015456569581949427311962987165734731246464600399901907258168074209125024695777600665241179304787321015906249010670613620204758153937777840532516951554950344736270507937271455524885883141021737070974926304112737914549000661865693323268597436569185220167415419625849107776684261522766929088825100519358497239686662128988379464034865767276765831942238366589572410502970215997364453904206620952080865264733757055494674786476226096585968447499133825293544614972645495163736189171955698080788426626391233969789540111466539180375910400122426262794391556584540471154613374145729008702212387733669260484000457749942383248886546599176153596323729259395797631588847048452271985825675816719291864946184292978546721847148313823689691479991318364718710847755728985947599103659151139077519277434012184774880545891200933860693222129475342005302490219225317723457532226157016938535389500355534599626093707700644156709595255646853810402073272257611613609894619204623048684874486551375601526276111879274725394858834244666187374791351817796357639840994504566293003322744125744496665026536864388293398704900066263772072660450540264443748854156202659582923780370407200030929348914376105321074370952377170561400572308578423396460260893934023037582192413930845532710784434618387222203868182162565174809079887249524008219069560899107631219214001325820693518519764782187026890277663726040175421763466193712346995736153614736439349539221015589099483185156064273636958406259735830424187675618565664710660550690750838397830010209958894949920286898449293271097130385604737520419915706425251670101441737360264340999483040028530722893227754597176956242023547788651595711827478412083565228290976407123596996871025401442979619295726213664630003548427225250300194087960869567285710712980649246792543447447003587622480757049970360863038252312138960917818923787501831267826072240160832707691757528859803520065179472928622702752448545506309773678347990309320310648780198301840259581495617881911732165570728950555292782681097280627734044184441211441644277010987757905795372731711749554457859064978638640149672510075834060851006802231593997692430627496955674060318012564624443278513082198205126622050583710109502394815913190494787719585565873539467643020415843320884976280722026799539065295135647263334849205125658596015191697089127716035446800253093987187922563765126334989931268494042657762138123012523398386798997555095618108549733465690496495784055107147452511836092164028729531002344167126266371445807353500735046263233265950466845540069512464612349707969968240386695851926293373732081983889868774654216373575785900915596162223544197426792713212602148432857381968906231451340772806223435112772985946522063719230783852409162655518521545100865557006260440087283912246061608645785894665324595237571768153102841156110983435839457828832343326547584471680865964955194860424984948893646022655171052928369504529232357218457374637210705938987780060114650605011517344083941810339297813164175644235658248231524419763650823528990419826658106313789679430058887047742209401768749587099091138341212195590282447629279350054418222425620697328763168732379538718122932851532897977452042069172677754850435229722014222047266888595779589563377888592582954188692460205640863288628693281769973220212395811014986865824073920275141927517080342454454851436124106793302236545371944051986195725152200166369503567017690796444548144901330172093359711647248313361426390147059044739619861678766108972082757507554541195477574019996579457012124235875248150772961926352631236937879670090737082691484482629085611473650629714374381963059657657409245469250392618901632846365933233437173559576938378081921716251743782275362546147554875438762490055368424206444269560555445236275704988055031710445540006753426903411765845954704764124248607371517581953112411379419079286977926180012949104692200348702754512553713204223835817762627809476658794248182738704510342779906138341115495692658578196282323273311240566717679109910356627647468960704973765780647421381171443582722686342577947000752061095874587813094869143031251260410646307156412847728742172139209942437891391208632919210372439067611326855413935612521287397517777639559468451368315300434862786468823144562965938393397146024655402997214349237775026891009814738843483484847676371823889857628713853043917370049129361979229693138356896494704536284524746246180391559466946918581711243028743426432874957388546291905526833041974874996708629899224085587316196024609309374725292162001991051873846353817552924768301534299936486616757337344225803275978067590938877791024095173193828535321189633619319152753659444822943387275681985703647407916375903720692090614395084921764133915605968420914743980873406587963194918582503322675968505779767497773491605520588699491766031763426115656810905449362246555766429074133483982286354379769066924705145376125595146913749133345473853460486850863680420517077814847973478565268792057186065554282548327297372994807278857268940762456957290548813151827489449355880622052774965198498270594498983766846458982784434301365494445033923633370196231671603360161732191153212789715351699076444544405157581912747675896638146239451984976482032787686224982837657590164036916716164261001062432373659371646514620023886775757079961454385035213132681358377776209385947022528489793625809505046785977742379903750111191592267415984489707625133239000784696573309084816097228051390059940089347401305052422747851002417628771339878306388850374693667991851738040058196373600995114569801792690221635215699447742031713502990088630748890391662671217612436296029674577660606386729287613010242407388998915118984233417489073682440790305976826794407064835004182855577755134013826879636056874800365978253539417755675533435305083011041921781506599003267493260425059713193615138673876469801051155543127596061859805818838053564494970704221194710494695382637949900219313138732374552726284395365772767889046427232224688086757686458764313610650024107914040340659924713473176194378650087570288838240597987219547874099408821623378096205096579817206834287826149019050903316865671407570199430733547583717298173126016693498763761991963678350402749994761802989710381782307781266543114059407493155044876568521998190951930267429964260942872260522882516743499883652583414910611237051294073624907249764921835892048933752651916950209200537245864595959589632998429522697418615797135758094248554953399027490927585014883148458817035667670638567119321164881377735725487138365474299549274292309329253604548487339112959816509600544487618247452752433736176270193202283194352662311055627322351199071957592914774248103801880232116474750215969858273965038086004915870735360293457075273676267775547492479084730371877910625359899159504069775760263217967668971072105068123194856616464895599667975609797359456250902775035380330740982750804448363876459904914688844304349744956187073236348807941964251633142905862298265839357684581862942109881120599187653865098289992864114710294380235948567211751913774143687414816355518909093953494037041630814187907599387102772763012469984124971291594757698649275004848573763857942216506328163782623859700963629901089775677766375300918903836693947199870664070019365741710904042116075432154958552443492038266201774085026083509076013204948632635443185005419077179899146686332747370762372248493326314698449923567334828120516618245333577707565710135248923760103480860752787027077878956089243085374362237748945286061713372399862866787920443201177859931578515358917086323310997024949425151615722211884537416585907624756875626021267228266556586465116125974954542045574120316757796636319809550839924653145242945698040137922924553549168497688731803141791144177169950217345066093678166538361374321850698761917405044908690238633871889496087334684740532961328640613522556830359150129521138295066238449098424664837607114541574421209772028436754920601413675377830823697066721336491526421482870872900044404537798024001146446974176753051365303748539495077524958513511591136653038332535829263602954217195092010545877347781842254259930052561582206999292465156544065359814610273339865075099946213348888363359666189531180530464996475753786807491280130767312222550448296625942133058985964867666756719607567144741076954105769404748378547955609164815285257319148943555083923688806335417535503060332085375108143460047781880199285591278486462855461559203073822730966414905266230632433916394786153089503668325950846210684271804285066737200066918205976547299042118787423862533179622851535611881744579072225591368113006766967156214847001192509634219869993297711094391049477693172301028469357241839599469115631494267018618523412074443386878976319207636139816609200643963066844034615068961214467793633058398786429840601534623944655924294529395369894432976035326159924228424857684882986958397622324701457027513159927808724925994327570154660559530627928743025356098025476291161947951768535159075504894858356578009282034773572025932402623788633059531978272271276619412126415413718588912831030985551245127143454048737731747916881118322411689297789346675186384200297022272968645114567883662375082774288001543242946406640087326667540840004753847057423200071882692997222567298280131519701706506651096462307266079171609482757051736327180525598898199147840425473172517724300173898964611421713700884418261014060001261999878193467418553947213356779960971022947077546204762832994428148855492486659944251161037315197346135310147936366834330064452463954147563772750299983613639181873440816810735689527811150647344692379205425035674626231038276145232593482210662815287843375382469053133219393763638739370964442315075079695837716839702950888042552909768172224500696826166167722122594139421852245354187942963431544652076280700874677739163166756433414593454836249220778958889451552267207804191697516981567133439966864558641432076357423144076632289641124972404878531729566917664191858382603262977981635674189116929000870091351802164662452437669055116170506257373343596731003797656992475432215591260277809037991189069883562576315439685717358934295581731427134884691593048485421121622287441482466621102592275667744729848803418489680283955897162167085961613154287023771318729414246618204248168484715766168071681740256523999930954586499781561443094588195677008001549005773840708442417700973215807214856956165577600884867301783237305260899645334314166603230625962054867943870772568881934789940215935432025534644037916779831922119155817667997385183463008286246508040508407983431823334294274209716389965552288615580040568918806955996462738647224614682201217976625470921416447848861109456672876305597080714522866925131720669667328527408330383890499820976046201652447077319884537298431364309956017894451335632292313939680116279423156198620435503081549261533808044665657832101433098978733423171931426635586998491779444419014792404810159469225514203014703847275870634060940045867131235280827856896652062606361064201549334197688141030160137554135803047115426717827064797615451411911445958852120345245570660764627711881714971112489172290990886458194723161760739769565147712332350879217504082844477395769862890283672606507403234855857427965877865717622269642522241598758981741048238310731777512378817396980745779644997783626851031974725448154278043226908581652800236946691131804773976563804877354089509991262448513567607113331135188932467748258017739056550347213046256956487178553085712168293907676506253075239297271985264084130537666568493681382735956077588328621438316455353789379699451345919937307431386953812819283411706328033763484894767569910957285023113007077835117264038766148359085574683873301247350287728068947069098498662833649725488167738659606108330360575812134670547841211665464770117598354490154628019358619731478215780853413907317762752120103219861775891345177477109246673966853239191375044506701505933778171568533025491382323440191325497193310659808291621917098783928634023242933655443889205169256913576787362776128682359012875297967271692211160186116995810850352128033376023800712698319548666191616282512767129387972516450172264524249360804977982602439657835477886160008135526921449698577309818730241520665408923535980745043103348910834384703346525560959879586394558001203390621747906659420823766193918616416082171530214272736091381535021263354626624361420273370744374771327732055715098990921453784939580164428728308689079700360404323575816699007929261155572208460555198487261773062084450060672222361335354150086778519278172380456628484779540875804273274680361588566624873730381533707436020194143317451353273757555809783563634070561394222443711508783978076066936560247162942679545873389528659449737476894578391044212809050238225999505370451577369911557221596111846270030699121375575629500488961705223508530137423818493639394277904666400724807912624610995651488684873000127060151596162579889614264960079785723517027230806888042450523917515462975565052855835475272239517564858098607056360594656986076525647801013266834540063175939230157101849487986737107161145522530303883961249505309114844917259686330238179836259559463595226734633684565311757789674870092275705232295312239587098732254927213276835717878811231148013709483882132989109274929494473990876250510301647851864654169758063661910829352321534883297913359385705386877359508325878013992611022808677776060252521886265660124882789421314449166387516750639646149770608757296090422392075926462516943011250634061652879483046841076236639776986413036993535150664055712176921653677552880044603175721165705674687472354180860950626891385300210603738795107495389634410189349997015703831185261891763771123186530574056247063279557401675872667670178038887691758886228209609801219731727327500878550392855220578402163749830059952099682973239173509256942716418433131071952287180508847771327483188294823558951258344880043971373345590769485870184819745920601090052667315835193170079689511707862375394865125673899814271698957912502780531760195022982488488406608232345130585486757987725823917828809399139718309006429819290839568329009201577148522045043010976109968213023977629954054610334986241913397345731223870430368189206743145424501804920302060133770773926204467771843351590649845820606130859125688738436156799207040956447841652193795130221728163727909633914580083189417989852950928473129272878424490803891933240544776254633787119326008520661253209889317472221921451255311888035079649202229657680390494003489125652359737133572629933628709114875801163844484969832508859914179397352372438448057210154236771599294982669413033198169025308147049031605758472210451477273283589196575611518030325976743146188630160908621422429066954258530051551780610029427974188799627391421975260453656887886494133148895385728280510720068471907214621038310922424667992862680877390500485195983597464845715044810699000153367015256235387414707676802893145893097565621011729384309737614747492351313406538994106738792921802239672177953764685692809064430903578016376211725643630842222766480313013152806452547486221858124850239519034002394484559439701458682186228693318605475833015655583000177684840885706223074730248508733402711691106542611818745728318401408590120907429270966282060391271085191938206180932590118868467024816201646431436705662429723888847375788443761928569442238655440113351907309954261655419841315809216986261911309689532633588070915502010652523903219158615131768711178082980406340731121156715136861619309717664460098112331184862304621686391452419574597860564729311667817067436584075206079001749815229633022463355375704461994172682423767150715537115506352672432296370624586078834650081321669279755682911947526948676582639174175628098610811177110601945908325173067828278294973137543786202335266504915925307597115177509552234987425154153660236979280839316411686075423998073458120795843661526202397845446279935379323374469420379004906353076593512940019361955324335029775927876346655795060496930390545295493642429163564709337341644177695505541212687709715927425665583874335073763371515637136991142986136247767888497744341740482275451367380155458425348025058279650827646851605016469941845437113695446033631634323008884734515365664888407506651289347655395394095349951380935894795963189440777348440135154376841391001358009500185287259259328037392432508374997677250293265828931010568019749885183607276668565934785529988716256102667479733115339789788816873849261973650990173449150890795947723676486868864454900297489654120935469614432358767390070500393108040639945891643973866460648577852027683653089175323086641764316431625685987871405345126020956486835255251779205475514908292634923419877531304807724520944734734575666656963860734719401197524636378722892621095260992053023217629677612128408581949090101472912279430239769877860156218999345611709170868583544251352547816211589514019327994871005860771743014655094908922636670366457225763613566174234644676783598436201176547252800822341740083917750608380217816264991342063277808147514182756104975489326477894667724574427713399099991264096534849137431474252619027573919895102903528673968669902725462911256535095921602129383185896384904610164405412114819801133534991614032725939124202764929656371598112215251691721633280947009617422599182736228758663289952535533998791110263894748152476780979250742162374484114550487183580406252011968231432858837740646662497375148725263743188338472392225788543440778142704908529286689336848296859561422359016728813062921298722342247270942509483242766353359139879640985915422563435340845376691566370119672233894301491433324751846279652431067488141454372883707805417230252423164321486869105526578087826451709303051669251986945962395548941373502689688473094155791712781661166502653563272642984599098367054899174838786103799668761417883059482609536971720400534978291615459798134495691590867365572223006751894956200558298241570918548211662014422217186980250346077213207056799799461451668482242418731853630347155522989011111755563674547748825585876889327777735986774361128654603019312808152033186462819736472481911262025725581546372024394999083271418731844698010001447138334054654055859509260505589521425240827192859550333810247520231248051046369743830069227843574834314077166711084811812408264392192974804487635914127387749456275265699663181872982770489498813754110625912824980480968528182207254456049037179131461214453219328808408473017373536410585270187239917312614475446865380929674703280406928096923126853972112983129562565088416642843844561216341417308056839126229345298698797843530119725574780397275716632784951714080497112338669896221975573360087890821562435622940361084717851864471951501023379933486829063624970831039796948623410585402021148062915508870741673562365173671012012948439877606615671699547402957695562767385445836234893945198531715943583041399278740782643835064430420720623164697672196584442619034356042363556354437156876043508020793954758316940407998766031016829150408718336559678023632846563221399818300561287903502769406903757478174286254655308130074559728107819708988472567460441049171239576262524260256959614974577711276244808164892062124363684269498659831156644660991187631453356791687786194864882784962234351820956130862136621262306710068409156824421385772540357184330269396426538480334188559090199591116738991043461661548415440385530707138677271931947594804984987564365769829778533877410544220429637825183672392145229164397292259033209003201820554397064851568168568875394887984939894290247634881217989839718629017733642641398752097331515610419489202037322092541170709539131263065109563617326898811307750718321056252903449897261410782573658682522531723391912855674542439971241671045440175315466057793464241216967461758971928220217681234298194691055157997665910768808654193037216356690385151886549347063068461070514401340344274969218298449900066882520217727236752460757185834450785561034481792690371442928402179470418528111123195917847971008055394851563504010313803644843398463028572528930343251760056588463677577671324382521917496584539110205626703052762094876155844628967123089189167104966387439185461856656984036428492559885593321437971781126572452943983703937269878763749694250318772357348700202387210023030207591694040050364710297368162523602664141891640608081316002140971070007424198865860260965168485602002208486520824870862125851343424393318499512323441227299279244376785397672661362141441238087491794339591230215933096021129747217159594745714443987642335207287703650612411533479458082198121440921794883320081431774511679125288401038830930439808587109413851709658909732898448815063866916131613301805509801924936105436265148532116744202628485702871902288785502686199944102779455768858252819860634106614074026571563696091955823159650626067377509087431440741135361025340161773517667227453423456072779434612789554173792646684976888394703853806895134188981767086643942297476988387344554738537321066887221897979538210447319708638212147501058809455146754261289945403501234615809060798676608079412231237070055261347391323576036512727231589625329896985236699668762383279806413537184358739071436551065750606278151307077932076429582884755315520415307432451167230303005663608353428200947394135317245867099511233071447067512014533431994514660252053751840421109130420419228988407785655500878735624258765283166960080324302764226681842818616976862862418399426147271681471080354827286712099502211631287478975362467025386188737056274685594498848906282450289800140996417860600912927402992062329398155244716107979772630989943677687734396821860945126290783999695110684805374226268020100038788953599761912370271557884608124802293072630720145924718734140830931235430151945059881770413375075776998669581747935321280444405336338284840750857503282064586587854322980691553824784672805271524212657368677467488202195787584430609919232603659386224609740844303732740277999688186399094828647140524993491539676743012779940315682713850032535574381134995050485530783799612211723851882532851668456760511187137677457809245818386098293988710446187178737077351333442693302473354534304255898281444099805823625471021391137267568060872012359014548812748525838086474447017588316390048769171289464487923765878950319634135745420576973254592477950097023835258669625769559930395987457618033623550247865532050347554430053530666048724277880571215438504334009303964079794954731803669589228871088162515814916059899647794670862226586556228140099500313740792253397648810100849036822410202625968855468401788463527273217249065090076132890531832733600683890342734787654476617087454607259265544560200513709851974909896330226188777291116229610534319930915332197072594297832205232951396518362617087664412325565497690889084790149805157446312755790863261445406075096442552351599411843839148287411233210635507557229469041665335469783897937565796418136554786050519175588441720686514091775224668238529869159247071877825121122865516572560384515809836370134620652440835167292572352391715170744783373462990132173928185711176036878902372212575439216355136965150051151701502663374090684093060629953687694902174655379245613286351584136833399124633802420834035143146299791907190485493092127599306823722665518622461968244234991616988843314076959790820596402128347596127107693630565745734993429655949631397216934403840819123171223236583813333498325756119720576780101607355017402800112174431686053841209061402654508051901768321737633113270324793856861321994423124177830537697592799168999851007435698781544789648181572755155315254788634806400621671941012278322094228541335824610015883508077199808207785717340174752508768741353548379395733040673663201443359679096790010123418032428763909050691323621366727761661345258961811571423426267068205070866966468439041798223991162257698600380496096561297450957469799295083235792148317909365836920525510974140807902196311242385453067413447961908801707340092139386362005438543449779221986291628208201826238524895808490647155612457601393565317513891387622260733751380626394317846333768905700245810793757459401143230462467204056705952953048633408763583602173904468468148282078757520273375293107558500967288333483913850594497100869435311344768439521251538208501506553846742554100825318528686923232759459166122508353099159971564729690369639876836160423865945756208856300547039195881219479029175799120436311942071362182448142408041479219744488012878271885767508848369478726742860976464878860238983231617710194345978403794235469798003247834534273298462758111836402720784224097106229151179034435765512141268753445275168538233316623839581461218293595674710070696880421378871834185347070058861141882992915085939174449889017769874761331166567269385685500152370160353198875787453526301719624900938549694972696558846280643794133674410130530953003258671973167379668708367398130100089168249274496956460867751413850533457543696645519384611491977226768275484352881062840791133054078651433137720906609082759848644861974602069575518554424800567847374104374906726865456904630517135837876562382329228723106132004852876987839698677655305932877086304102669133877599727544227879993490442361783133050724657058454163425997494597459311409079201843562046678422913740459442701042314375306407459098934378316436071997160525366900710733340503363007602839040415434857196903464079460006077589341183933769205568157339823487730138378814761186613073977171611499197738666517270588063401053038586280993585525208162534893700399919770098514943016432604274700375558149958209800285489760637857919218848810937198122767509362063684940423788320605692339224402899279930357825245692972367858247660523615701937214713084645902344074399988742494136067889032282769668022068500759503590992069542449344331329948557733025296678881946013201365495192078666291072444423046064181955625346058868466984718413233005867433551535532712664542217483640309450293878022521167285169615454344383175767848168409517424155134646136041048912095854465827062731416192511577446705024369393177883306488821319628947945067775774386537801794867023438482028978568524346094336524190458763016962603992816387457174323809054749046028711530452747308170758739303174399245877869336330388455851928549341473552841889052475641533944027201484909808051329594253522521177140759783188820716607665369650235475444211464837780387992884241274743459969605306883200992999143659895891723832214731161871055380101468137420680004178138861593194655446379624131893627290820146516287319085975809269370066127263584457255928200801731290108580921524859515184710120591811340671964903003672524618277256290250758116441238294635221777260201631075677806127790205091280901989033293543690733192338413980554687023562103761322442768219917518787672947215865473185061580162149848374933573179130775493777193530841174559374784458809184745156853054553517920178580860650059808784398643050774044544480538302553621206873642756333260280980050243170407992758746426027554527848418987578361410726797635901418767440220830238164658790107926853487164527415432114439527129177205682801568743515044561433160155211440171723038660235066046486333059207158062939830187631937688513595698151735947535921870896990850496936913267634962411833566756864162084414519866949731450689008962640875063248232774218598346286211033740084497567352839522110088466319461078913033461578024354460033391446292220073791350492742735640447237895370986263622893315987088570360245187407277757570023564707480581244285561568845703132500952740799562991539399815580818390376415049372524809544940231881289910494317870322676245550551965692189022990755337230708639812728824254622447828832218788848784005510553729247078548434142989617133459287604546795765171013537990567937056593820076018491995194633904291040615662138931989683781804962466844898454624991333337489233383757449053885596879983007541798597995068391356988982100050365905139298561820972418654368702326685639680095829649574524827189710237407666376034666816085993904446532806375617162164130839816764568781818351233517194090180318101700820798982993056669841395978488511903277618658735944641221942374642823210011987649401845207688993229542161010965035601060039498419896285384200020168598713332258505074191463999840540105417676447493329304623745333154056349545900163969627163854569301471474666498492269857830085730547950727686703669114080218151308232238880467783684608735965621481812755126491210541362739550970511727191277165580007515801701732697704741084179681770403768687790286706132337701309353906168203392013529741251746249858806214136020779069294435444891183427394025606972854830310637106159941315506523915897931120259930903990272001384503015379012727977603252302098367387733305107394852025599686793444203455876134493149684374551095358207620206234509275120320045825879878963304224813271305551269614340808046151433637884726437608411381231146954809163573584153166460047948861016675753014144760559705478030975755776297703189101435180687880803327716467054497346038297033433760712071024226344880791690703766515786860747209361893396420181994550308427227657126364684672519760355760782660109354091273837792042233345271061935540411743225448269415574480064095459801615392462006943560444485497444172800538746260637079803330576003604734401520023749539483994860316165853815213889078408958669929226564002718883196534443445330462537736376560373624699006172082175637910857958263871234442408396597524803277326965562624519971687240279712086895919893927841925921057388795525954396549477452696192993309209849364727107060540834851819786408993485233915879737926776310571744494526321785035552170678185593460214268037546530359081875399288260017847416264209176615360778290284942376491394578810820421039410590311068366398937811078021827129710662364371575908318416619442484698315416409164505087861645592060530114459810165187765474386614658112114483926602837949336175094621968267994107024118248831481818111086182097713226146758543906546488063466294030861636479197930080785016337356796721773219378169840537230932689368534706851906342806586907274632770070711335767241590564865154667017103880518599921657659699324936551469888657170066687492510405822895201388041551752692419389504579566813937399800251277379112768027119060442994197402064188089755837986837470047927072557134249269179743762726403437269090862197717441391981612615296261554481885971321993195297817227935896576331903114811294834001049999147592236117342892057883137053002037905296585016621868099741017424268651270228494656660742357611559659040129137154658748527079070764346027497615838093204249374883253271753092117677622399168138686637895958217657472667884274020475376550806527110344320899860387246482510731900483678798582806424414994998048799806560604508766722300540567375740944255970707603374909981854531572891077895995501680673072683648695158811805854400916306539573498820353376441854758780272904638177468939194390582955314463769543709895366527762517187509859897013752612835569593272890803411865486930652773789674745722331040084983104074330415925645367258999538523572827882755312159886286840963496286187097475500075443258457015082884331800834199779994513701891369587521242521168623362213564223393530442054331750125246815763190843817858258821303225992373954818889435146722859247533235393378544227548425327992205412955478387147850612878283807078886598446311063313800019986148884592895521509071881245793107497439875040418452546982971150787211207104315426777167210291125675107762689473597715621458875189550874903151325656026904298698756905716677772427108044171037110042662130905182146700042051366075735073103812339353582724153904681722300389246750914091987186694697021771637703845417732766190149672673748101443671361466424243671951806754313595738381775735941794689287044723436696116154167943193554293642698112066712097123097760686169008796281153244800150498850519243609368471120024623916182035335387697379217162502058554523286363460299171202760809544308034708123254907358834190400108261208818079630997553975227141885053862459572879155289990092761989338241695635949745868208475777839429477310381238461360954288090164526874821779644025847997367817106610647134220728191737380609660009850048701194929049601624189441908283297156833002514409286545228466981354317530521639058144530647000941771896312113946437538333829836685992010114014287895150099130860191179631085887310989336777742862349854808491552655855493649864103673424393032547793077196377890248338671409870116480005930713597174658541085456357905032930863857306869113493113587638317428583863267505614059204028809172733632446952621934273492017546244835961118719633004550935890484311787906169193242082174636236897986561184109910743046101791716364984989081880091595536587732539689457496789163622375415079954744140474524537362715646647494426529582876790832147672637886793117912410624822179015570365546328741553504569687548652427734888994359321397017405291886068273672708954713664435404962257342087626279970524760829281095942170758567075515066253328883335326403745114153808221157085289193672816801050130388120057842139729164583342689916595962639579411978104175250907375792213077444981641262246965506143185987397015913361206911379672384195887331725792149521550553118100246918482015379959052243756254026759809649735722520315255881885814934864849317700664883077860392326994918492505511670603533340716685593830096219981363458406451957330495701644678239593602566208221418170231429300730840565857876418062511165523318289903536187288047771989011234840989936101450826642478980816402652946071802295095865228767668505657739241941289022338362272986777166129770870930595388471235543190775477741356973030752236167362516951451704794641586843119853779786309027504544701775425384172970569926835658028979374427054247843701476352491381892621942186691804253433568084580152312374160332227252998445649400191790338744888058907523991393684027136408554398686469944636093604784492410435141346824897085158242619874957333166452348420539795714210662898757173906335467485189032214185079750115997816898992006511675523649242559102631193689822515544592491316338703891700837701796049279386988594911797783947796393945164036441103085609475593575300814948811314286335421865452381845886519071867609401893146559854572622943317485105054635761264634703700923062307600823023314858722330631945513801307698142491667654023329723135619432434239542389997731573675151298029069283576182861056334632064465534382437565225630690118383604954033825037853500115113309694787813421733386499958071775673953951823337444294017891614479176042997098422944333270849381374855354342190329889722777176598264186840172110455771612601521050135386447794437739112172425802236834439150554577470757945375334196043677905009968898733485521949026518820531888300379501833827410892168051097939820483279469608051785734612811330470112043658483624804333974362890001315118489504446279047896852477321292733258803560872113057070674053115372373187063645356208806935074954115155764071847732944180450292909985956388796454364845797060859385602422450446440324962863280361492260346843720691843211377693879126339455147427010923033431616699107674246902033587297390618137310711995836449982553523601884814847514204336493516891595457136314652649946414060629716022217134132492625381315140825079827656759709853250455397840622913252906105801141667794931678080527842635027185641286397603415154869553523756257455724293859668792651457134031881619064923398162566862665282544067796762413683221773807108183883989226063602691777240483718625848315495434680280215800703385783297342937819638142605264983331015880742678904059831131604823247408587997692237608547075958780981760083305844727891057102944610930527829420599597725629121291693615785834088661000083923047341389272697391508040535745826836439613814275984270566444445833192354709765873370222869898734774314935958932376412778201248353758648040147096409750149002563941203260723269915823538103073502768350087517277414526101735414804568601741487313440522647445027899897418281373090341436073010977899639789324365605888798726243469286107727507332948296346586829056103780389014080159400301285309361548811052562262517773803162446947842975833906689595961041194776951492519327726255620302300353794043593188570994420671454387906380655796485481220263069150604952769705102675510328467618923310704990468457872680904725370008725880860057413205907504653784475349310821918856323281336921110896654283408696087977204095940378471648306318246800534387509830870115625078106547291265738536651502506767931901637967069157557387881454543290570101917436649600964058356490015427041910092419010446679259122095349518406121535767555748685278837086728016500957809739436654490290778152933249649005118669688734412292819706095772681844995146488620881014069822559781168704013694072180696408683171999876399643798036267960882831466902356672295628678989482749744739645587973262642144370350837048232484628508689881208114910547166564305240093013421894937069821052617348306813580425563152187101966909047021994704610415398430168168876430569507148664561251288387984024381067759235697056711254453455123169255056820826929763350724475938736129337407863767284549998906513351100540219212681920375115566672770196274057899512897025557066208720578758486737402063169141278702988275178009181985525071794087958915735226113517672823352010373543069562818441095549547624527292608862472231193630263089950581802800325130717264065759930360790389407753027290402837171654736906504782773438153750573024501549287690850148516998332521108656657630673233644684958180635694021120085338337315460481781967925767477164032860954515343742854254203325174545452581964303753272459972337344869135387884447274309220199920780547268126714408164008178385575864409186893014767364891262740753706309221050302425687118070017137735796430868939437755936426599470528645112569148812695985993683227699263407274984645076791101832820874540725851842853013345250714525889145337620248396511844730858285414469138708872618882068065100228371639004345181441656848462944981322278820217854280399914750389543942809690153647468089919235241897208166191526744471246192556466362954660074713645809649147180087985650152600575324256533684103448794409609770588637540222858849501052207262567217933468162917998782831944576759115616999741141921379895722864394571762796713456536094695414368872850970765512083808984334509894323665649069183923245403356462306446362547679788729576872123633644819710787577093551839747373222662408171758321869770530661458897494839141609292792401637821426711651957053467856784611519831348459841508512984668161508039786995341062025598371806356652236978018088843014111714621750522577079724994397810317366465137014768514328910842842463348211215453523338446135260028445066423447064942055093634130596425678558117436949414895383892199845731554127976070943602904759068237118550739531647889560812521386935416108707153198239305858737975142806194994898633095529903787152796978455570184188394160186783917798159117420686004688604235772286866276408221751316222832428929465214643702501715198849404224866774100927011457032588508351473686419434851576321211032457706290480156163439965166454323226721129547475425385011124238049743454236826787484150336249798865596425390431591865502185406369745471690258632752453625312341754194144730969883509984813736917877257634515791802194277092961689330107591576358865368611519021027098094726467610521481957978955824981349578657779900558367308699083272403055370941470130086163728228436812617600356866905593504589226739308669388675980874983243930712580087053015293577806708244737467212952824142271122814856736016776403894513842684257914367726390091984112521033410442020094690766622906372375951019564629435267376133375042637254979358957039922762825954336969717511653701347103326397064535561382885140399645153415655329614871330913035658072766845426998463844735271419970104324834345986134752701786613455972447380780245605882655659864097756445967309239698937288579883206302523202163265530523527294625354444932957898031803328329636772025693805226564362797225204379704520868957517639062551994460963878362393983760399016463621559981124526821587797287515372042642732334777691275730544020198888241163734104829140166697618795855440502070206577608915693733475731046982044276914617850644443882171656467316555786249254609558928853676781246167083450381422087110620047228935525508290718026496796403618808932620920649837387510497264711627368955521248294551407338898846550435174570352166492794437579478132040057040419262530519210571629527549547862780550525042260762081731523410738500795045541902797614169202755949986537935250400471748029686205678625748311201121913835616113573355801444514332408394340158733262643969430746743075500579769982993397538044698684401707095602196155475905229782463177708445685299505605485909809311340406085220395616385114578001353359830321133562366544049597908551325550552334536055152867632362126667281826847627245512043170794994797088066929633206696616205460998013779419373531111877913859430103974452225188902227893234128532276935016840519029429473904435772934389380606829118466281104854739474090066913737234953366098329051037040132630965828670913787309287576933523596002129026230907697401827644238827052442837831266511755250311998819096816376905520639222655443992622523920424398875394275147664214586385150480416944387315477487924660601602545225679298944436607097917437176672410012771604925947900493680175865350838843194577171657365302178723984097742281639518693841952713119804694421157381283611253749943252907423915299412217706889477711024954883348555140759773893194429471858813618996359428409575209138877745066995353871501843676519000041184281150346297686315595742553368938915548182236956067215729979827951461378390805499968040617201643814693483887244520055000450245493398651788386157214395012806046718727216328686193200475846731826733469584974119094841907746457401587027242073418873330955119790980224291134495501541493082164017374988309597172176773329181589048275144635334391881115263857550715851246867190153947778020542372754263696985935366354926853823318038821317746726074524729830443266958582106203292435375141738967533576533390502670502676572345043996170474187879260264546826618584542343887771617104544420427740622513477745382425171305393592310330538488673032174019635178971567994662129189902101946776355200272602664186763091170603245592674462686208158362187498874963279997049722393461568606879176764433007490214404024917801809810721720855548095078581978584578232882435522298622522974513407924193306843612534389812758948963651108638768430924340819028067900187885104299449352087721899028335108740200445626928029728919222476379815096814243231651699016916216398348862302078360034542804184927167232872077680296823857564293872471980341149921452714683995156981758528517739729134584149832608793092333158819173324776851934685314907867498721602626443173326240307996290151014556716756351764657211763474963633543064023616008221460456532360023934264232780811400622629065996377929084632197037206735662355434521092566917159155767107052606984773733685762640528430240292880079052092515300957145287128031171532304649478336567611512428781271195445012866914584786381809014927136708771088401247891983517294811910543808608219756789950310923751641692907752161778434508093583099379732696069885161908447156436407308846303388856279630678548111184482336224253493241100182287200891381578865210544605844545654543953457721763120351876898766405490948572263748763123298583291701018742597755534153899298839966691153997522082392749851554248366729733601188321308066093481046736752138651339799353620154108918620197086780512777475867899417059237547844888359872073071456853376971842570359029498869471435809146524343981849277786323390153979248963229431265562275167015604246580481096603195752075535146689635276018721243656550472880365744431162557708954098260755240967558248328925932621520792605342157922991851472141279225187725335658254423006387967809407196180017056266784614929520063003402453470476374983620553574893031964401322617442614210915324779081276779535075870748597176172833758698238809532193922906444936088228841017050392733794732821332315433334691660745843575000691703308300758692187133325533392378246118913448379995828025886045614187297405086942137595689326112536858569532982665179327749651114460740627706304704766350432532680890068832479808772833075038299401842168175458313925097626547395122616395659139562214764204240912105262638356427954514505654612489517684630911780613956957691532762239187852137823872924617034656658956267936154464412277749639354116991113752547971358307820154547762305299700368151906095192330391754691546395710627263489162719188248048960125236040309194382335575730296768261634468275677990293728504632102084364471498500598353670498153058513030124957297528435281843369214332317795052602445276358987047855634867498446477772791107452687053859573118232881758910330043607787263379353999901929643398565301989357556860878778420004123565362579481420350680184859857408987018636394756403722887920802273505268453095867348809877640273684109927037241659478880560015962026302647497342570245677081596016536883115244690042897650220967347053114174585680510977637259915786819082961444038772084661923053621249060197049038177385231103912903528331674785481137273575193863505523971887648294021640058830431382470309723224055325359321347305744480291618906244953639180011634263322081845272455172324453326633796483337394582107699002333057016039648335764807669087698901064858330140030774602847560436360824056011215692069804847346651185037029145942633141423057865038714612205410909143789334902834049222308782075834350514104712978211415786603416259851298515802937107646990840297687975563906837478101367452043559786962664100761613178644889648665552192253774521682472550201731378695978529726723444918324841578201531989374283637358560718146545078340330273075809121427490078184163092983673024779343318238259010891337074410217604323487303617606947995576206710397573300578042508860761478217685453914909553456537594867491771231320970965232694013282099896646329747257213428954656232918112741460435110434796737516748313317957706466628836962562161411317034386240220289284461221716106526471108460609785968249972846764904373961543326212763366352537168036863485273732626845784292432040853284478792294308320467825909307245598381428882218479911338335670855493634277732382746939960421826396609503126741192637015558086424509131282758407446148615338061328181875740842706526559273894075757224472258040199339402302476908312492960873488123111720455270603232444779242052763966666511763287538908905045706137676960237618595138784509471535607066397355064100098652711014835828737614912959358702997318733097406007556993584525721331936056381573975449136577620730990711948212966836070695005808232400457578315467922395819588370142543730026638761168824848418951838320063615788341237478898705342102466587910282366841122352574684861185302190492970371748654758681345358256118844797445986413220869930984501788714090641266837371464448128600109586561002485474835057252866249818584288123951240380673889297759546155096492963614567089772219013486828553532106400805667337488852819566748784204013367242617114442070011628380365803938431146470031250132018023585177501103429103679283991460174234387261514062552685226693524466602166908788603493135248427428516933400857401725089097659660908766426462163862630201678881292878695778657422736965318731746999367626978834846320490185639447215429515716908625329686141362041406015720314888900400491887285614288778701145399365234901532297426512907767754951627438391520539288348871363450491187281362680466256940252727279520309957963474012034988259390330888927869627919689398519641043599926873330728043245046409214722517260729700731920334026349437812062236425661937122917145431603338917599139789349422720622936799686479455794122770625958274223429273216918271547697617589040768090467354578973289721892237823463753080004974578110260878849928633917794104622038674902554253483069924970385189343008313795461849913261770098961716353340772753142776258486422539564466355558812936096458698861248432616933581092297995926225002097592010611468089567107266069837154423012904511498287495055245238206346736020775964845396661258397742109780643121966913710673444159666410074202239537103867752298797562560884713525065614696547745198245287941863188116985915544169956942170970225869201010096618438038823908308781160125605726907192290346899744801591771311692434947155008680276412882421860520588191339967607038468623412157881366165062992279818478617241027125328338003767152618148791414836055792992315499238953070470542264097316073942935874670984153437405753701474368707911828433221294001892042503368531021382593807789987649883225517799121244536239824296254650956325364145293086486656407795118725065218659248429434886033778653686067400666140184018593576076703796134563722266527592954724227714212237840782696621242459997093921059601748921159167710981991385944231042630895398096701737218297958149563784975943116102979538061308990381406577487374477724789723478994402155463962996991020586060969036139525785405279148979274440853907008092027674450721583793777117296779007437508774690358494350627999572054671208642691785862881650598994536174964958614176477742536797616528654111299852369426610192033259514148475064562396397178500891529183090010523323155390504757680893542080333854272534538990934469731934275160715486592446070936650388533726220808894708221329484051042749109600848788954892086318117982638588331420185278752679125446092865779229693452133819398830950245628549284770546521389987211618103603209112057269738529957213252844168316062112296602818905085827809419299623864802339348331090601505820383100661883235220764762672344123430018251235070384993229969438490375032995670828039118967138676203335168358163390789765022197608525065054623991598009762798825516475364634768893768204133718776111791693779270297746898376392530414467049518691490945911856324681803516073512219215004648080221722366251588056756961561400142609379415578723736055070860600423748583563618983558738402382098669640208444473685169078267425584464841246706553768760522109822814762352888403009397898499329088092446455155190973911958820104281049143302051007836040810615253967715539216784203224861347197456833599526859319979309451074900651184742601420789444104524433213966804568916801728397900358498286794097361494644531109073737003987277691272392119276915214123071009768755743230842928402337618044722595302920097884347021948716351043900187012311226585487267748386694351545236072932194665112840602128110930388487480616572643168534507829791110332012819984895565764872217705090821030940166239298701789055520497072122100747696585301298547953523396464822857756561082289465314674785936413504694845100687803151742650123532641156296817225880462956862933634601842620046653639162188506599268994841901136943728857531647338829055998128439900762482218851472621571490398061978019793277513208495193563867758667257738451221341270626821793890293694071900095020722705269060293258270588954472418013164997658372056720996004147064734782359035530845833325375144234533372833403479392265329312402414881827515861684834319936014513193481538977142568874299365017596815969929215812792275456962122870188078126666732704495764589577454562161093449963843839479199919319057604418149950936250906659405716993074543371041187572912457717411908382976836893127172911811424053086835035764814546081700923231280708884645865202333182563965276768887036192837754195058274318517825691701727806969400455657768113923451261906056296475735962299726330854676300293264855887772072869679709249637764783343429283723178227888936658435709658508987206796397640135488029841668287994258080032241225383901931110358264359791349854683155413095555455473011699033563703141253443133985703454861078567090275968279010909780018176279786412005791997309446842657465494336711058480092383107365980558508177068178681456615078897811438672275629821581119036890161849342594659362991180464389288305091716785803976419881774546746149159390249782289801481594260541302398657784256672986920677467654201100567372356529903016219614712724140365025415908501436513395985365979967423305736267626197100745859311947568705202452978302525261085824553284433029183410466576701758048091526018532141829340395614632108658749061111028663376094244126441835632101059416284937786157994738881094355781288446936775962504227737757477024246526580119560315901984398255249343962189243226826907539169516111805676594088157855447848031808027764657213399601777291137656496377340328449066822147923605765474901183754385267166479079548252119591304934657091981233788193227096180458733889063650143695546053459061386678868754329157166879210170788540231347072980976490365435783162507678382614934549611697100933584772482851883445155679349889985367997433661398982159994470154036419639433106174626370745389233722872236138839985747715083926605852721733750990626496730291341972662309247901067761717509559882137913375999049944685768165235591634758175713175632261554646264565486290699750730589613218198089479960185376325983588829917146070609103240235161284174430507793230058047331556519319796380276159656072490206074880156185797113043862532404798775945476999473948341944084851124626844392493781010428820064459958712673124602708988424784392108215629407575358555046129656524200040946302333639990441766426450101509168262479039571324165904170489837164043225327758042983425353015734624097147187395181623069760417310084201625704135774209842449841956830631376204029683586772789505370895604515757560590979350553265610095053601159416336473600240009121092868216437209478694416001294378792338091281917875204202464375566637871471800621771462807222353422704563562058475581048779240235113775681078478661722365130373347092754456908497652628554925065877541070676804279261321722794571773004020769127677454491018514530725084062180827764547889815437060553389896569396362478237781891384487690617776632651583832659249732685881458475910438158332027160344393262039015066785445842530590436035328816669495860345149600019438617015905487318958886144808522505711653802230090561563791317710397422070721149923920949873347981065462026833690158341934598181117783386127079521650900757102569001207770151737267626931029552207533595236876155368608494080476448264030817095653933533297308438143666336367989784774230578783106907048621655427913285373446715279257457089580872649777830764236677374155122283284119616033138851056577038897328386649235819155308631219431142073999134817048795501892846402645444242495854579779475675221628716686336149194551464908923352259160368637664475513178452593579738375266369176835221535296153308928614313985264547441581384900628364316250605846059074109278717817190902953055136954191834852332816517013467456008968636933261646937523151669441668842117744276718230112346079106315848709819849357039404836852024390929948897490049040507249118686009843262441388215172808054210851192448573532139380606111453854751034146110872831485032098218355802703683581894684048400189311408271575957986070260691218190966830121760875683567176913131343697845985636848259350601164759866052652151192516827840148490204804586806613731779770172048906707131794049611096651470564422435005493527846811944409564651583486223358393591740662167512419212147944176052413799736437851463142062475165899990587029161331632870796646614788219456203988424189478126478767925830644089911596318921736672242794087294582240954411727776826993610446945478989288169833162673184525600327747098482190705156668769493270536316154163715210954930384270012986239031967219991798457562215249538588636459560116162675489932318057171512753432927164171593756245079146877936555917844111279817587157441835702473750899394567046462463268518771372884393342344881147121778209081878287401777593571097359927538923586927108653680359553983072166340723892635884456960965435957464437973760907309432383742221790309706460404354079166409106721887423262251766553355877956888006726332835457350461732274171025078443862759262511990301454267282071954481952556270342603479806860042495837293500409026929236542286012990302693720154451281414944235765733286281263398148224371861948623761107370156769971085066326538984504653155754678694137310193569610332443878006739533524847188577988866756475519594571795508564213000711476981416507801031868891337389718064267096561726403267413491609644785258300661258863080841231906437322933202063634437406727604008064806607283583197852204286676393364027863916538303907396733668396473457244562533559056411781831202608169094984274658782722186212239186757326632894422482207477264134484823630861022904855271359906678312779368356759033547769584960167865372890337906963257724327987088471205960091960869037755470189470864178610505354743713674307918104414172761564604527731693172106232081743535427834344861937639497210249910590665305389191372759477819222877117093880902330299009301081240712809326990505386177120140208931515159516707766362884466162718691492074415539164121925505213409649925172241889191686841453682849819147086188647637975082860196525323875466163207773046151285554904253423792287747673049096883318122938485560299341943964771425197013491821201368072038877487969062610359910651656296458243524445169736127713637039697924726165444920933140364655963189822075830998238736015880883904823770088959867861810477216664241452143651779300420430770820392270938357569827327433075808091518185814753228543680766101500332201477727265744280776480016235159159165282439979736438617731409938711907534700595820730752884967733713024861132404964911997202112191954038461616538342097661002042869728150027337959841182324121802154022988163151894646085469802706198596692546301604921488700452251854956768981273276372027152205877840679563103435423679073603686175830604825236662440695512668288255097366111907044328919671840844592500304202304069623688770661322913788352451204154630367747270539912621329996887429758494614517710359867818079732985792326554920735849330980655024241633548886365520298193486780128725790077868785695197881504193621691420823428730050544213265871721310822548257105522105111500306833763270881653753831291389756219784024280361532683399834486183280404277310084635898385174488111785473854985440432541091654238421007416212712594699459707619631602516044998447096556715796777398137842196352583442363486045696005346286828138432833228069619307023644622196035771292156540154600354546357019385508726804194032997425880067607402222868088664757361611125616667495202602951682729328139854568224222748212490164158455797979863792228434589393900104078483979984021348921371846994775725193122085682323850699367465919475052511174625001093108651947256759925086155163800221308343867740142362552697409538571641243284191126804474955471540974102666104963626677175452940085070115684059158785824383495669160626343046244131893516710282703915534642497704069327536754762845506954369848350832739357823630981030257091927811464643843160461997994719556020543789757077622169215453600236690782237922025724788761115776655032801927819150814056138237676856084004764109596744930625949548181045904550769644085280724949531939818517008461570980486834665730381725423088680366936722279119722518174688825239623532563182295100125938808232779896608447377045503397648498347875290531936627270698610445260361839113606927653654129499610313800162513638395819860520666605418641121763208326545949828322830390864114714986882359795426245855730452107519231953151237300661591279130958624610824336555592090548809295067627121672678232771276257662280098808498307400658073494200162095895669624396530350530780843843174831725984507558486065506824361011408633285978542120034625122151457785329774166714579129769222535674095494368497850178046957071158044618415322796576381045585048664090623729047904965706344162883810717655416926140005570942324131349472991990429729162532476779664675885799334785605557680713530653602024230731086821639621008083443702949968679150467801155544393089504555295078065258991703949060969954554069647883364172113296046954718800560832009679154726425492307319955063542594973620184346466168592612830436370577127326554862909428665815782327007668827943960204439251138146852856884997614890843831254854060186798371685511122048351013345265847390864631490889246311724305541579223855097717774393012422265819779198171095209875927529507648687796218852150929471913353394525361392310637897440082584168006571359104820637163997619091078691376547403508530861241129286513822756236774629522985458575052938113096964217739256471451243021221780747785144873135639401765777574349569876339719845935392604528581989166233728296943682537223562592550136320653461500884851976516137475413028618442563029609106707596710868711468323483915083750292035529164271559160909681053557686577391474526443726793846922952609683014904931847404795153897757027271731989190785476489480433441993894696527426640625203487162349963196617817680943643305655088035527312380780445075638722876386720470353853748870020544574469512010544808855450144428783838010275317936284739976831105461746722129837323150303995893702865350005936845472719439126511935882030791329435630521420209653278814402076634553140547764516197764007150303760401613402386387260159770993045402072169540619195122125108567359506299012254349150513022842348198287352576637284118273598530608329332848170622286597076587431681678944435294106035377927359745420265798932248134060914478332698581761759207656144977501785471232870389301415715960647795629816782002472968723715475441812733926954422300861933586260699119168533236544844232397376138579229513352089440636192391512472128822970295269920850943300620980151016883456965122323214776018814257431477028437520342705438075675292617396289048334477638764469760495492366229161328070302166769841757229979562819888353730802665050006000183948537182896335660753534909247481396567606869667078974948323577910323680215731717763763208438706485331849124183580044779457093037124289593513565371071452223866261020501294882918674226519434512130520690876133014086337341039440016164134825774596030422996326540726432989713515252297570937000928132201616771366931508451110257962646250364089215342809389673596578179090496328778855283122037317118043521335758887759665029398589471943416748964574444993554972134796538196312225438440701705617042764955846136994266431528091774900334608074742040850771158637185306435627156899152534208842633400987915738164354574572332574345950200855749333419295520395619533260380863261958505662517474833271624211978233156715316157737489350851545824817040452884541209068585347784748999461347361584175021456997657744960580285769865148453163182480269029115009658701102360254766735752375061033528151609303704879834976383038592617596865724561946702246565313665259603551457171734585664734372548583458562052446265159154926544365926870142428251727880851741714906651044946959420713524089325261541111052385116381795257061381949982570362871344549748050774700203384488075542835239354621636083060575562849216123092934234193230961261935025319359785563726254767835825587121139543434502646865935916944745553121006479348355350859875725708821675043233397969577438709885372482724010200520049470887938426446030417890722631434063848806458226693154513135671787848421554463025360737180785718957615091648782818760153940718006731927454140420345631529728316524828269860747556452200089300322735100921197160810770057957887034314372599997355891160489145837965591237443126969860995940940698198091883803107789208999868284920532479399881474965642877303213851666338967294603648259568095399502590436386036858058517974708954867715223303724744879081259799787680971906122044079946626256322467679433804061067043975996042598881959565005116419277368956979002488282276460180837739191034868149479184175244923969060231815180874485367280562216156643110803938345513999329969047951412408363995339819182407909072025110696603945106758484195362892994868695863814303451459277295052831183884460003709012147149665850674019279667217795566418076832214540883499714027836353574154704971900874724134677023350048436315096725251115718659402402435155929193451791934604543651341191992821955287710471956700443398476814927652783136397677777685130436151243868659066562025958282141764393686294559184610266530774145437047591967194534711106584731551113241875526500321743584728905633031859101328712435388569458146144728308695927975597242762611558807247259500305509957536365703253442442644682788252284485142634351699181145024596398640685293705015542981549375635652738366906048169315613697585405813842775729299042127866179034452743060397968736624470861553067383984352748672371692941670114839689343092422101022953645923096332904762917512418092760564295024528680226784058486929762630239719006641189545986347677818214100154407665255979028513469913568522491864736078955962632758446540995242604323714116494680772829949451733259035341563259246012223583140158311470035095538312321245622034218051345597354680998102352396387965501887502718240232039748939202531905589852344878686588613381869006601568736523228786413825233424904075581418533517258048345758121623399444094318473369680049880216705295163542107066953172956614711716554829120684478953019867609031664842622302821296783444033821671397204485847946142124689480238307712101125412964480150050207703176802106858871092519613707149999128142718854739766245756313496814579316741540876457979391709465621706270808002688413785154875778582750244586244818035656600307018604023182643637152657842326532132443285511635249727164638937119800155921394209515914358963943427133435626181182926290771634404081168730540860695803565927908406672314478396441466397772662192865525108771269822022428160191920383099603257144398293206220932368300800037642480280037257625754920499078035807069642532850873406954497195576429302978651467899680548609179284634024982884547039507489221485852361251258995952169037679134714441330034603704997928293249368056057257874699691532044780325529743060368278173611011619956866522725265835615602100627742026562611307678772522468213223104251064021482086241742926233924593029597317754739088542294215371176567870903079032487982165917588853891084300670657857579130625974457946175622263803833639775838625510676192275424833499658211171325722874094738934158066990204657218646509772487266756641290021487179333444097080367538882019012900831553120361508975283821168433205703423302476950958218721536643123169678798196901238218097114413254430821762189117635787132776770880604748627227025681601728375761259890876416165391321745490044611520609354047696342695078797426296568723664755724480764190766594018695863823464087552152266797087839583306905997845728698495840441028519217785727020010789608159795306200645615144666746784626696397826045134922374261035087974538760366581091314974211082681801253094570318602828228623441816344157607247326554157779644314611745255250039498293069901108268395963381363051532071734364351100361789768802191249985741331104476082512336175422183328830146085744794816493122581218192122566933275633294482011908724143512590094367892467912803003527933511049779785109271791937638220519044862305434314025275258734389561993254260916447225649700857029287142338864431955083425448998028649063940939558545400402852090989878396824728664015629815014981072886063434706197131387343778248238805440212661910129540494045731821172186001542038223237395278001379793018797130024632528845699385097735328268550160015775632016148597234760514794012971399240838475890206316549274894653792141907002036888587910116805885675817349023552241664815092715820249234312457161288426035469372210533363158148695257960676898626239215105898601229253968259552565505197177027261465703595084738827443263158806139900694517434433924289148876086655442796576895671960563816604222943685101746980097011677366880788380800246932167402947397933617652357100476603253400589574882480519145817257114673117807768481270255044260392624094051982584148246878803668285267167466884509809485586364591268282915391425239448096972453191432740051231122194499744673615303371126946441393772685291292073982188496018348519472782808469615433319223130664078822587414444597446293810248035299749771879372351360023335672571904354865942995320004852336455690229255827275925247048345214170208783182961166847074682767494925601480250946943205760882586201869636348956260437394237473805590880423288930458519357523587884242135563365400299572249365060958169602465388619676175488020246763024430259239100019818504695275711094175923813670622893442088186496782637656241819583527515693559058697678231832433514196896355181698713980883240950621982506697188214811478855179052206858978808156355518702461958204419684122738214900259076739199371557221557319933752745244421458976098058462950469156375159064255514890799617146429988229964338340354381912159144175518955891033654578856258993920600989982998446235753435624963376063026645364154886615474132788669453160749049647174131198859432132955623873542597820467905420935187238591587941934069242101369803930472340664222277568491551165165769809874588857975557596761346756303464992356770127016815303427045139497985535755672065316203872283175596678501667322845606830741533839337095931618060332756073111893074029752486387654534516536434431897868854272176417689904506455989998319633529992612575914432419647293429958309298977526238667328961526327097276419195801321602695420046239441599783507061630692745966153114984981308135216950213307753387980332959183557877861306256535368144313290170995698801262124604396941274074882058656411342480296232864311087485807944774382196656914021393607986237505199662124643020474284830201530353434333731524316314697690301440172673450759757885772683604037148026606593805022903981921462606519906364187238592966411601005905101226302169160954433907848616682076526679737736108571809147545123108780654395638089846263781391904287999669936233270339248538523544377550454401383600151390998666095908305894843255712890480542427175989426379782115895210790761379948172884232526164012557892236839290179871265278080303706911344739589487524792466045875825127038817930148872992075511694232318241160094776537237359480344734202097221381708835250465160690619546606426772637393161712198209517181253571360307811318692101890428524971868043969140406869063781736336306627805560006841184650159147690606809454082603292385489544111723766020982443437256130357124444099220675542160530892707065044580347260685805614730544444910940953709207128673596903029704950735162292909476805414745691816781268273733019874924255092319718087032337382445293928550070342477911534823795133527936630284402677662127469124307833647155017098833272347690106208704112414206610550760746869538068510913953931227418737315013155807914144916743405131838910735455874231438883836318393232785490504424002560290978943069622494420711153321002970298794505684532299310887441463668677213898598941084163356912576051755121300187466575102917893977672124677987552380810120840888399003384931763328384373122062386784362456082042849354758866410081178729991458032040906793971262664833458092302322335098882586785555861916489411066491079473459507653127797365830874603713198838663187497385060620971993012331257927443794483330427732063403003423877440181103002749283260128329895227035007637165427978605999190793724843390485402234195783193392061183493370566871825357290312891267749275220338528013924630585095460819098623221481257495188325880122068655943296525874830141716542356452661722580187333918326688014030719891895321396524352319400558661561465843132854295952760468830566452653309926412902872952136308769051406805813779370720971238665934125235846692188648956025108394996514944181274013919310642064896928313192666693029110553576268929796060301907315144158239004343282843553431891342503343685730672661989190730201969376191363191414996304292331404770739157878428998133657288751728909407227835789333901633066002161981974059933346283799126017488851535310162932491253609603495838292745282099893021554525780473123458023966193543759896844686579778305478116735832186714048944608637426024066266619120495680048186233408975648984985279308719857756141417276175317878247883377933772623944525620318379708062796799983686878200006828912428761255308960245169227204741629405958961902067295354756740159787485365509646527113130096893072542130611127919533076242371510481889932865889223496223892711433898835130138260456278724745490064188780190229128955643192000487569349153342399946991546869108585055538700923040572591272071772482793532063425243596106804844882609500935369770514247191995711116014393236564872513255677554279170713300987928811934129943109921795343633204308302084495538019229490662679560757727531715137460961725078488469485521650868586556897426720578635295192388251907480877536803147420112625518549615308564632922977758189857162395317282561259739396231458134659610774865404474387305597227713674362032241777014031542909598946848884294283380749108564483609171700092225370162315348689466348626599538422457995800741623166465415527419029194659004670292373859197418116436231189079772307793849067309796783200216942729038265209003983412074976209069853099963756501317051982593820421672708344758461463625146297768405442092635753614225636546335112513262276126648994084556183336253016553771140148701658943418481953560907136596839334553125541057018070023845499082542591399315191969830852221744550917453531181069174515559269022730698373138786056313089304145730247156576947027300554038968839831463562553346971238474522581498719271012355906852216637508579994236290949371506243894662184967143432094553378001590387173056648023329399589237429699922179701804587206145212458452055579627752013588197537358067005024425342953607622691000673047142802024752085341282268519249382902636773023357588753606519762325702036610098431294092004106470070347563819105401071066854440780516125185873738082811806648311603218871692375257219969696851257929296134066399486791979591970033372580596931696362624217319499190780446311442381549036607490539501878550526536634663947840313294575233179583496180627424118266709384359714670230752197170478730594883158926943715574399678924073982196089704981571411754978087558996633036726742988228584831581658337840376861620567964592534522006412458447699580975643768479549823500427634365728725646557266616980615624385947112585372544675079853760160490391320652152258170504076118751999496564566702062248128963808889320760549227983685351256925412890472226643669962731939778479236751405151180448239065888073680288673747614974640180132092375308220448414415862844836291882128696931434025250787449960645527696927992582484491300228243284389751830553811087659161280084569978097401046203343105563555128196602228510044716156608782170921997459416659255254782868053431654138788505947148171994623216456402312059567455457689457837831171316984668579537041778870503626240637249310877026947615984885085059900431527496398970031989402545416646436612665826191980591257982784678898455647835266260160507598355971078979387014454358777246949955613543588006803684481692026843490798808535848628609872804397609292512168501052386285384496104890064357629128267619964060129268035903051957007136514903019200872982007905334201118790416832338270977606097095859748267185308662596771134801925624488704451915674694237642688033245810053540634406172454494220690927672201516493031510722181510228058446063262490673173167996723827621531312933298981474759907668975969765125819922127817022597472788928503306140475650491080956708842374161483160002148110666658863099268208076976723631238025144897931357804662686703801172320277668273373186914420337998338954396885839175097990894948231202545780167050131633297253681603918730970659200941543942764064385869469126797384955304222386665002046175002777189284626759190367034594652387765863430091817460424658430745113107397042460054552868296395745400328919088049335743211263205982402233809361190246228447232968229868711644505781103425798697388095412910343096749651606537058343739339156200188286122586546191589999159703572525515527891935679684660254707598018809343955856418966643579721657297723235149543409109566861325094470232686630012111801014070357143087687367524633950763996748864702800000155427816337679978700679416399186425862197270301950323128923658890608971230709119992350069924796773637148596297819332797057143141876112917749768932545448042666928013401391641352787491896680596829986052440011547328547309844545018302827954337453135371466127131983835491000826415116473251192039456043071772400785134197549495986627255743638007571984750341388046320785772728062508680821825440511265048705583550194851137795275188436539873847705494078372194346879401825331288291342522554715174175751264208832359301474179736440004252750737367784306758335826913967219322718959003489344083650127252999083954186117922046828619259894534630981663599336549260229312967353520904325276667543815625442244584051809980394783405134999031978251859138730243607095472451587059302077268471003268651132314249497970537528867230946443533214383671470626905870574422480002761599710709651220573638765730365566379008407415189002041491738524135795243181024536001594307465470290278616186031283976284877122634196134834886277818624355307426484327736617504726714478441544889201645813895206829830924929154042328875761184922427302550950778794519545602750642680634612086703693140945830355808325151585183392161138529890915327626033430003866946324594767438438681449495418739262831818599694370561933085030151767288687675946636333654920962023627387769782716498239584118627656422271642341246891116816971017261334775752038646696329343592912073013898850843831633750954872132572309109951803956378554655919719641911733789190582771299499583131096188343241869317929090949286912506228362421011062382803698288361419717198750560561713446128672811820103878640372475806414314322275980743933809807800875478248739078555317041861713650964832816281764128838248526838252706665385013445184952391576905883856196920409289615458584175264352622549150726236165577716381005810523131625856075494443359890026702953035724267017237169351761211897282299732190887186790803364964770741752420960795931144547972226938085670949703760471454744000929229915139992091464018662384435563033040662802742647904294802345789315271488826383293565229031113141321174751544803859274192489753416152084379174249369909379902864977637430794467165733224102926163672414505292780538890034386020185723900923849033417121469620385778607385759863060655315573378224646196115937832015286223325207693768737649054421987967594219120805879248084044727375572789922288001790226283028636980622841313084201991100438731070547008640910563271517451282072028785444229852010433629497891645589157294900068479144185407998177320060766280766603674581526954731371691305060828225393994679471202294267577252866651509549027361867981499839437093545424275083437454076621669788650201876602529217487259379807713311288056074702572905503962210445888548668605410899002547132223183295205835304277118323160445673406936593813553943703465271188114357081837491547218326282626776139175530032281037383281959772237509003398744992568192781756439461278529729841559201928372294695077736261801101267113864643003716381908865549783301904569163587875603447707898178767730759329591314274861476064359967981057608656615177980942947680399067204845639364100606767633399048761594572280450863668521141185541647701692875048960132663340785342445747542734359799578028353143241960002330114662655087500833403325740036327417159080513144099162820481737326551031318629656195284055060260919000378128452723091683951329817663651936986400631193310663655509978028652814042639564317485805031388570570018827790631047782083838544227703050840693535765274305731671427190959463057846536634264273046186396191135647225612961948980934820326222476081435587212136009090358126475252736856623008917898406485656271579953565071715285455187277069421180878795264902720577949848829596894090065606281384070114532156105825366530870272296044612856948288437992203795812598733597942358882299273712658282629394175770775542552258817609582949836701912964796516839331518651038081942255539412161529760358858129360525071524786654583236374838241350369113771952939437139920536036032203439631262008810439438112960178738176476618901917885677713960458369317671893351278514481815421182560893480684413126856588382378468603008755507002884533988063875844412320147296144318102269495274188898429811805989781192552087822351254011044018524605956157780808575521345895859302804523494368818948672069957729441866398302582371356068857116760894630730432272184471719553855032812045869825758319531861836835647133606484275448842298104698149906153549938876522794713829654363351369360638371845086657753183500195746828488626742777099715388622804825892930659976325774376056181346120854830750971028506844836536105085934080549322121781775692198757939056778742785151539252481187995375054753832427912840667952632952872464251364560887350054852810362554854198765383230824502484471748847927278552834537477337780517166127477802370106381965269172366036000143655185648073564232040374000529270137319414151203510597251556628903767444435149076057320955757246136399751731686737207551480696185531950684195481434440203832186738125042073657755506698071718424282847231994766984440055789942656596854357776154454728512558231613222453301715562200426184087286595923670288478193221238183525159872256181254302812099012166527965839615844563456345164362188533380081875854789225773038520150012429159241813245326821320001397871436824930930889444125301891533163631195391456716623187949256297956224100847259885018596207222542886919053532249568306752034481916538850004624168881409137504257025407244951513861715031060838058712951906283718526186101087132559772122191600050081320779816374229231030662461368698353777917337200094929072442014506611748680048752659233685083788430661714487755022099734234507493079788749156016570155431053379149283166088674317874227714629384751386413813700572021286695874559205548066399690132472071797422642821862137937776181808858133364632169154591230006502600478978152968011363562890823049048240260689673482222270402292156943784796403802698222463594799153743966210509955610352007834361953633503119272428393067207740124632940329627973850384648548524907514827684852622105279421614249564813241402070782050545344617832717257140198827094208979943600069656889199559623070784713354225316409178418649556272249236859731087457051712342830023227072053846286801686740650187261030869839827304238473780474970572991641128846566100672922407035300004769376513374173597368868163841131532345582968787722161231905743327447937370396724028455814243333517363705887525032688802176255873611797730231843015216797113386956954732236446717495413350280790623651788611466584406372330738555698254923748131565109444479272748067492092030519474550154567695898695026859245227290994747508735363564602160066674939538396620779598985172168619478893581284330174381929749533760024042912786122058811303264357115111344361746802896692708381204346167907249509710776933759447611982516794319908625791408388487425085647611864212356544891931054470416934240779285783687986932864253727906997647631122897156676187594351073050100209660992747234135524299157409385748875952533089509625009538182418879046848284128096553651494628268655228925945057701043755863925486381194177366272901171436621417590444761159086523431370283694348177618636113526843045129056143966560172250695325302307306270969554714235796510481389466920290976802900373326937199601483212534531705100309770731222048403849247621329951382680587420756418927823367067416812388459990032305252159999643070919943134915072817992348583060401253485102229066626009297878970206210594193379502535182780987045874457116442975881930065554840760961030052320977869258842872471770303153133437976896159421374389500585856964827006112531917794160006555156449375894047850575751143934461332066635403221541421323982281453451058671462451572157730041179353707460112657838663198398717936134034460585063886166327175234438041205844336050599753797058509100019586090546534841720413038343144597706039198836313177411572140207157416634861311043823110773616043710106770512272405236726296156426973293848641502580881836951666902779485915407162845002284171226832932107401737534908061365564905430198375811562269563893718074300855245549200507350037562464031218556041177409152815245423294918312770376822300908007655537012126745821433899576212912845091017686154373402286409726993624343784661083794902421144151392202683784718626042750923145168145424727721377810200096002971233841350610230411334656136976766255811970718890970777867468900053279904969011792954199432675253544852643623292604873357358256069384468034170805952045827766013849064106261333337159715907181255166941377940595077896670547224634344136623660154256740227911787538228724146376601841334963828226272782488630250031470553626372057662118618537573528364283808146400861781308440080901723369481494729837252524382320468728699774107537050320740565859013984194060027327695203410105363480082585254053214141519321719241630754540819242405194414099685603579055141415322896884710503100870661208727550805521524171370289237572672382460407389536897391181734053129036317627942466737774456930368716688281627444068230366107362164775925618974873667774541713176666365424216555385312146577305382569674607102513759745440351909138163756818696003760082276988201710433716726501879924327569342402598386035890486215412967038279571209836336756625895189147845932174082629123314115755489168619185797513123372028920719987245375109196139343682652784815775093376683813055380461236284611354689579969660301498559348608827281161338415910911464385529346027075110586091296161713602655043716153761948521649268195274466058485703517318917126947973524406872210818994826693945842268141274670514180167615882785524485967389823007897942807956793313572872422120781032095219326774144302428131543326746111002662928981555038704285172613940147305212715112531785445683640467089937747885501391842715110954780895070574136988576305620895738079924389232531443562513409373531874229943205399326300173187740462875808188751898338656655602044842949083967802428591420038716703058391016407934077898513235498395567661766589297029660773788085398117627210504461111075266713773958232814187226555900840590758638844416112754551599741848891441914987042395184204623024887634770990214543198113627114439986345793394908372514160919632336764749890548020775092766046443626973662656347902181706889585035072650905707638621124946753422509008246211021035496283251838700951865852848961937220086135867400564085630802349605149204346627604854406996969832447133509680137146120368760637257325119486915373620413659515617227296528506664320164284547711731620325571273769679901260403039412893930044521199723881092125213049594025285077342767944786000601293626399689086117855885562025057637702078797148904588657462382139664747405355886345693326651332726736205356447059945413628783225134759937659391952611364463030476141320616233077696507065461660082210522543555047231279099933904515669198813559021259633706761550349608058140255442144735403770008495508964506418020993926838365080203059617426231994888980612978449294512020658694621345567346589033889390669379435809318644080877913075342112909135686973408440823410238515535503015832588513042055151005283253781211651599994191953959994914160878980897840452949669619155531946144842831650242583533851306590542631512018622997784447696880483756798852052870173566692175325073219306878631543182172920571339446247404345229717760889275065001758628047279365410344541167134236825395496989466214948292653060951880111083352655321142448406820252476413675295913303779560931300987925206985665561327328740408405726899073074063885923225350256255758031317305273766006388908319644389554332227751436234014764514116313631112106408400733432360975236241398305613195843359390371602292476304981501783050886765593297311962650695756307864387252783296710334436223893207652064139390827611975123796113649253007700707009651786509739211142023034046590568742212200877115484571657887396079675164607068936467092362207136936949080344084868745657067425778804162577599075686281193175579162615927074199159466809009538398123446880571750764331462243977627538161482115766301534361416722994661729274263061546353949945891127224615215350005046566064141591448585701907339928439778345365049227027450386373131710804974960469192847133005106818702808417479184944504751537696234523639831221158443159415586487793909984944762102586811136802111736673635634668873601165681854376944945898666641916878337351737207453834337195469568697440500355765503122801269582588720558534306386660013857961298331635325285073699950732457907030378599230812771984331906326436300827620997473409004418561638243984404640961265176142014781727740382580475627124341037051315449609645784931360790556805355080228549940650103241689807120518959662125105108800672161638229391913849010584853133845542052544229335411909896512444074846751399010927385525461415397759643463173510913516905181522702453221469652984711646006763997356338432967054809973751011244603546777920777805205903085187732643415594669446125378888765116829275962221291932387065333565849446483774511286271132260659338865843440137939493434457807618216090387210627881167857262520308638343081276565727127673621028655498192948869799094678672815076795363557437655291010334894171059675931842976108398422594523753344921261340208356153616422466758464467726269698554604616577509058960725728060085365173782567411780114426557986177906089421033083904218003728122215847579847672314034433524799195422620917398245170223480411630342010519444375888217774133315865643970245249850496976074716525001249509986566363341267330285735426401778997553806646642015091932859484280180166502965065483139810496179311880426724754197700994795885276961313131805151142564607308855035554072924185820666347913005696690147380550284820817084573043142257316017199649685329787530773650725144818478163819809973531656165142610491346048091572917028715205386703136153347984070687260927527287498984415008199541634404236186508530731648448283642391922790696732536550712449570622137867801061325211712972823592635640437888491310923527046883642408966111887567479188649329053393542805253727706842943233173138708108876233798910847521744891621383496841189861936479191248792757544085881139336190098548942807827919073513387435543870870353492050265881473921372883803130647721971816819162687976847118813311567627101169927257606178380459207125106652178236407615833902283966197136208716145521946845568302966003772667721650990987471266312818192585360838551041832473151727757478991533221622670244150950812267618389942473557167021647975393505353312165072976546300750174309453279549241431990546285143986817518534141752114898617047547946699149148083074644825077929197031557994932196138311358571522966600251842177267438330583042941659784157017817824451873355734062913652540289762285412216924654016124130163639738515687471882291861404486380975962155275556319846416431673839809470578628801255522528843780146792530177732629751286142502072931136046362314301032131982649017883735194664036668210602788021417182735623610850551511530014004454787844958180258598466981105973342480695694433555773068470518020557628569568748237548594617114346783570838780634174503655364133921093097557034889482216917983844475073089524094133881274382831493885879869341873277905972000741397366449432377949904316227199890295287355221175175768778852216148743400397867464856472498930645203780401421879661747307855551274394351512505448219664414895137780573872426037706943777570273776680267412554841166143131586875244568334505756743402673101986845612988979397661916990314906892929827944125240730003697581182251391395044499187774929224690297501495952363428717562610988441297283185181326481040529125978729901518568990265232824727664121946243040179790266737668656656141607999387781544476539482249065298422037362108962096583775708812967328618986392926970426334097185111444008167235391634746096827701005929176484515988048207714453885371686950367098398452208130399552209530746823535737317569808161616506615267474774118736683625868756640142389287267394138986956116408234146407771472095237304702325774537539484320221422390213711792286891915721857511658269398486033395923471756872394038291773258869513360941737278352745691918276472653126883287372526764881148760898731196686230999092704768550651936125783148908161086597765207964738601020999061398428663018250577933553116326778827876501992290698236048307198662925500521572416991639664024923621614432240328616125196711907119431712412760608136087727500898829406878385717470956591596081022991187389119024585973870965860721038361174856450165979496924516491553240094380270491386170076630681259937026789079385797248063355490709228863107668623053321563265823814484370866552720262589924979699643375947965770365023193072566211855690425088572057334959540531386628281355687268449084980461312339935003095049335905320523413273989254023536486346472228061711754406721917632934209895410755404225939934622426171923118073464623067868323932720623483351754905778589262903198032771874433879322835650545843506437373984767427474188748889374614566960015197222403402160324476813107315221986966952126488538527176723083324635007658185433077467700591319852588662818073603770058323214132795371571745484220992946133156214697628236377810319501916696586713045756409629546957512872952077732204028751000038356594368747658215000757680131213443088086148190353076567945679890816726573376339305546552690073164155449501166112609088550072899717323637417280253554798925670141227098831984195110947851438978819004638386477588571560825370582526078585253734554269608274608873006843742388855057456959792139177227925327101591883700192175331834414787009721149439401052336956693897785006207151601258953525795237587855315948676188508241067386182611744556200935807835395339583806746985510873339090516980752377124709816955408510422516865084180268136392760517550437807913885401125511970845690194671662754510825106392175389592185207470434487610224001872256551401886457322083403347687060932208336644706237637574551813917640851955670278534640318031804331599055162255185631270350934460624612807801257170294547285455660175241830588800783194805288458716978204197175793062737405057449515308735881589986350106693582571148361962132368115642801964913873379185905934656606625334251924939786797704091024859281786955828582638395832545240246291388513168161419775038624837800485449921927756261134151849485405775796755784110840921779754163679459265381875386412152756276786736774554787689426022598969385146929682225135881845672065298589937413776809354224320148385647880446779171299880609709463543648756194800860274697947095398367759317545767986147510093724714721624757408491297224429430021178274243386792369267257798215554541208475558211595619266531429315906656288522462583321203604882951866926389009973991288911338529087379977402994281042222471936829276548065133286550143009558430705789015222176753693405920833021464549844993464478966365052255410183215888975345309718781688981219685653594375692911241750231362661189354074372962539000359899665308873880614857665968373819313715251344797342179256976197798867811774386871270748469969745085466252011514129628447120605291243945677585749193413308137657893844857428469806180584729463573493365433647512359219252983765049013128280994585240757958466371780919060407444387236411833168650319593803232534855316341206938455392362406278874896055610234019845335813477432686726995452900560183067202589865221336137152469804432712310352284992444533524208271745498836310646628594824776729366679985852501252959955058344211158230095288642306813845859189882375297335798409363716639427774624480510318024265582112309427492043786967704239550099030180734015032599010900526124956457762409565774440306006182383039135069346868793518318502204778846134421178374453972125995984472445696107452865086726956165554691546220676850365853734736214657880523382890900700682082486958154732125518888502900433225922321978257759213882282535736740289526573026330475494052070904532451552502908286931900960757909114218697014698253941875178804693761554545141978372410713560746232189705123714820186425098257242326326080475358566392806534710628773752942465668117517816248562084094069254656653091835869168098939767527510457585255954328131373070247974752204360198348275434133507036351391000019216079089475969050440821905536569281396191884092253313434013646429741300408204549166363685393061445103333513215992460514160167351703537906813123246422115896102106591745694873074763869143390688489260060002431332971243218338603107473342472745216648457634357827958944863250197256148480227844505562911654970180818978483898078558047928615610916083390318246186477580372081541777023141557481953956614376935651738530759602944618414119522968054626101055537828505342647199729442932578840841347550321647924984536550206698324894048901546039033097702100580067590337914867732800877868233301290501875143353729611318850263391380542815375506226963819341128099511633163720122442142276621480103373091382414891769564511782383134459946681193111810386732284684393305365017690390217400533444530795671352027841047434702739551825501308933888923768351505875206170522706330901185025006181803018701982752454500328711541729679516073189429411879999157019187498326881413877891660008494091650983220085986072900290885738125898287645052212394457696950234687177195507001481803117466909707911886100240525215183478010211353004763203654844176157526214319150709666794979577600457364031831354543794347272784973410928546352728020877142676883494919407113805340025243681777951403040645049345521943317052279639078061649435046686007237646644348005490879818581091678229922455230819570770366310697352995554039264542740207041409783481251424287728006183353258064926504984588006534476914575488306110401514873802696208224726228844520016383114626432363185078971988305015870463830022157070893121015859607965306566174952052652399139419650739928192745519702067935719585552663489855366078813039815842797286147582788154843032431953015068282589256256170516180664239569107613786681555360817130884089502131177199360434632694654522389639711682772875560086304968870532969246918362081996188509398120942296356199103303750942795951367864482900366788291563811278354545031022937731716370913929763062637699805111966562591761209894549649086949958762111793130872796970186033011654499803051758984898159071947681582230942709281214609831537479267628680254442137191100200165873816566364085294780851931220089670922767825739651656827241890431678070625514805546808527301594551778191695025558921051674102270970414058214708076745731377296786393928450445520277116689003647713420818696193835485146005142034863752088435327297129398684417310317057823822863787535299090637110403025529020723696692799259345059215995355202384268207440378478316522136128089378890715246022924864286594434886677313418287786559191158643330272777126231013339315053593931849314694563831352804364953227116632374409347034351094995247142739012727177202052549339480436416183598009236557886453487280735182809119479133311352964094513643950635114131842188575215024648644192123205607811630639055145273525845011106321061563398318637568278898642315623460662479734965067293895735799643091652318666479099662230905634605125580897923734283708826624656050237913056005956024278753676567595627848075007857101033741332531229195148354386282883702838706281054790052882170196589635896239893474533063807497996728631466301775930401946216153620955316855608044310947569194603822324469881568547022268657472755185676681374855063159357013996283908089176380888572106519683301750844832010477618547532454727174573541687378632677796237854856158409232466223142881045599214072583522560313322258119680971194899620946825670809768591015575041440546084994790231214597499966290265578772477275842726667759879234253353176811153845956822567277633284396220969580577232245965544339594866485021383483198190993136975521373901900252656714488693882379251938288359306627591707739582100614038129673816330814717552600188642702915410746091574007653109768535666777715481337934454096661862710939763304054164641007769770661018329738559466858475707512716107435283504406446855899288854184861970455166660176096219166276537477289802453576138062518559371311523912184843203052057358384820380608640441249723314561522737972347427838690709453630185238985226783099479452173550140972841947903826166333095874175424425203659290321003382910026046980713993926821423809993209583913592792381379277609728931916124776520196749245843393385126184465342886001820199130221798254754269696824747164210733181125910898340382712441038409951332550757044556364185058441857738433080903926415308565786981932749574693303293721382238798604739635148857233160157715024103703396578973165047192108162449942754710741726022858589586059389936920579981477472974217402268926426665439930783220954057375760851720332592037283991687143071359572850529401186835989952390152749603904313963665357633364677789780909291188147964491892599610699417918448002404319677287376989941381033426200856361569053642648338775816318278123961419611869763226049547142238848787939304171924576764947189672512783396242745460623860960853153885378093339566370264972916245235019107070760396253442633502728079742318726931980586558749843331791962808293185041936630044706383997928755787223788262462000143506979018782616552748088565288963942282731347730321376639111266421534888870687734511392066635485736097820270871982565466680030856506285636657093704000261646167931280624092360738395355496527725324447076969166066600941427607353167175934656758748459334922801088145273635395536318801931903771667780356924308783214714794760277972602723457996776774047347809311484296642490858749160030300156479232457380403562222855999733997463950161150362854631099737633626416567623633637417322009889926773332359715197047291595761889121590235035199263495709687282860518011334753891906333680478599686869325512030542734321726060877582551434359932499860532686150724638830103335099542585444782408341910993306964656134212838062993259189605439070140997864661746323208183165410438403823802523698922859566942405121192876866919855345116679966401990194419622049055936670129879578283377561001570476630905496922778739265587259566325397671109848623977013483932193096574808242048375254520834991009797057863557053346995327359809293642090193068472763396990991519399930743802052992480648395208648403969369430200324132937887216143032271248202404480333245178573511189465705076086766424936409372361671038483010151974167397090056450632473987350326939964725547586729975120275206049171069304667430464494921910236956424026734395684254648750804690029278149722561680812427863217674811144990897885108357766142287493110311781810400666379138386603348695355588568979218291809392295904119021005829852305856639576071798299976579696427141656606798838473824555118390131353868136160654818215246563939151914844083236707800707981487507409785648859204292568691765663260890697474264078556631478835286338812947975251872004485613517143747468343987394167763849923164534780253554387029797912082827269521922748181144132113589739421332358568830989667448519894079846450691620662722628155524465214296390570643506329903249155607178111022050552001779429365816650197947186525762034334267407979507258687524257313171286655786753139282897021949562123680547217655128640379673419565711071094001323368583774439013015792501256791300724538174508659450928254728940099188594057221281651862700804277255966539253871830299417021359432255060414431681768683294376656820135370091666224394447204154950759257019312872635369411858240871326618700902670012066366358818633138972233368460806106832630805786084704456540267335057186945408843869094453672876446806171973430833298402013619517225719534053981027816625065487036114219149501559492845554676339406384690442962257798034464558585609636744752642967345325506498335488233350248996126006828116077927048674826129183673963918320707850442820784837595618320711069890666238333587484468587351301314841843015452042059799634058478802461780013304412968664503482047306496387061433871664730926682416048614228680437685261333676912999735787492373726886756118604181911248413464594503628548906863722867559944966445004506073114195319309594216695169477836054833964842022472683125707677307751432627130736496029482855355155163351775178155639011070645566628307250365234046766914840812449926042135755819187389199060516532935388509980395830746851389971102003498553030766811295715645108007225241519029771329576640128986500610603413667309610000264823261579792684742950390430067780006727219069129685723092203977994694034799938167931165596928387091000396128002287040092640728554412921982492477531606337429811653159205840455249265583076079105870693434160806813662858753383974266084227960679285426078590091874333299867591276490638378459367686870585280439025865733932396582987943913183920799939524357285772625816521812809479308857838452978059731840729523699719208730311493326771243610017470624253116782028995801887666463058955477162748567178294520944078920432738190027125571689420170744185348093799218761667693725676114853242524697370418321064760296022761955789925369045619131074914983695934064952300521713249734475472986522260576444494469445139333107894668460499189851971234463408243405418461190873985598715438249292356137637658760010485002199941863612384186826901325156376848595663194682253513856342275578198409118085911509688770548932621704982598358752850207184933887261309020635921478567935422231582840821522921379054887464509194926782448265310208411262074856109329349897136635192949032844445385469116786893057829070403141771354546862578265021385401830371119292194665882845760979681379790305098123807128736508420593018354100417686291997913336434401683019764130324635824796817683325358323233690464033817213552612817013565255171528902446991279988913994675463958324523374140000498214302139816088518546800886597346649480375607639786856997484586680719840201025511333716847797180140232642558571637462770735724800062558877472766862255959154192951173858531798422558948832353222677765151201712618126547564005482497800636541087269481801482626054098908800984606949578201635330002326601480360369049303082240359319676244554945595850687312811877750591333244162199895919974786779908872139825977962449315105854753191978185452426111066578544522665472957562321591695123043172177031883406483300080248007420941748180928291340061146996385119247124245078719344357887259154431324413742946750430428923294609603095535337642640444256902532941553168044423370796375805773737172661073134642341699150466139569894792399831555319535614437427246041324783922254262230495735064598365375944224989316406692970691403058338288118669968851217467543736620813508800495216359757516633184454956781339513907593237176047068679480460199872571018463543392280401730075924888042620762621402861995063444087254744342489087198442578981613215034638376887783512655124188822431025486377673662440783958210287536943612634204781493903868490489409727351126899693056393547737168729925966747419075624612826178447569176322905483341734510243732990711155686549239847483550907734820793120125890389994336605659302689237777754190626447126966391573280819656440554679782336927428966010184082655623320386206283146565135608213617695885743007082964901040833697190704543868313150482992464954175434251821276466935617469491244359758290501119110842208009982084137168126770682368629311951674332260605790155472009923970385577653997124448714047803658173069401534468150043054889629286113894641975761808495473538458547797906956389170567880596893620113648709711424849197246963681240514868295131964123674322795281642872914230937249874045848793365210260013111286846430467937646995518638731435865749295155150787672844815495536799721391577812314372371454444858528424065974995607120478247127805916131315206714215340329357291396358791300405296612723190280278002817894726425756688952057706327798640310201426272200455049020448087285026227493767876210106603320923593705334520446199770096489363667468042963104331505213655324072353559362863429285971668191607676858616976115945200480651822541632919904048493977925793866074822980372891549688494052002022805713166723760928114692887426959538929181161378455017425664117425158937926307712495495572951513699174875800904961142902847919685488174638182712237941039023751125932065205557284544852080029368567499346514425159869117554859157722796646236003079928097873033439795699145051665530957721046431727503296687325534589492029078703484704644153327710222615901047783117920401008946974595377066321832714596138325616666669711542106874285349422185298994305581356135416384008428551979500741495710946213403501186078397448602915039220113977623001865626642864767032884604591019308775985016505887529639345111434612183267968534942384650885461677147207627699695705377757690179576101826379511733057727521989874727098364018634687372495477643737938119699353234582085206924866574248047568879302332184831528547618051358136267632111760803239118101643403908226504590909920753539025798629235488231930609603292269588666470682389983538138705239105228297275471510447587792383635465070195473545523224008001240975271362225378962561585076641951674924636059830464355396980787145212592372954398969952742748078873983548710334130932411976967944902784208186183334087774452284016171730285361478112597178139063813858099164187632645029102338059495116455936864461834854477676312279023326677323042191762403369972772573306348555494035569960349866184176090454353185114784058022552425725763255404518786897016827411055283782503424269017840236065486341189354727631575431609725633914420642269770495375658666712883128628378631726020612652973891420023819846649728876542019699738508515246056310213597604067924500306570318280526348257921537436269456253442952161208420960403409982581354709948388271843972907132863521425265660903924816897379123850850193395257696970368248343536787902146997335548761850295765203275045494216794052039513865679756008928386054137597057933305465818284858827198957755355641461852174982508931566734768021159304829041332561506936228779474353013847607853014503017819483724751941631513141332482354970470726171449491196180632508322300909789799558285171988362453724489479516579985031505871931389562114312733443699417993115396240672260542533173095953451909123790220750434634193073538602400707585877737878351583661413888178946014991826710944731008103544036919078931510220184728832910553363145702281168785433854792845116739504228437465712366598950043151611045422349220581757237431613827282899121403609935634634910260235296759302590665837847596741608699041935584892074000972332706663636916107265539408662550164794436548413482566075545757280672370430842452661101989669891502000427980947520930408552249266840980219485488751492502021920507731924080309340166312993828672187885095469034380013520442680372587599861459410205735862031419431989782368483356746064457030397841668295712736506056969688099544909131513875866030522575685003939602894086743291936906409459149435412758085676064948453416552274227875127289367858085738590774350861271469550542695597406032804828011553390163375971791686977827656402264543358468289766821909765795224246574581635218552862012407684605885584587689878663580746447662399640027423944787936480773591917862714014080091051168800293680726054421429518805807718428739244213810026624726873644553470442963787907587260166749270186258501841111322240122484800480112854541751372596339464301204720545947215340995604092586750164289291875172151187867580139616471823230287936994879644956329990208239211248149695722435935320117570336312747283344502804341777944057128410097609456829243314704758016415261474599630394079372450033158003253761442684030926053271480506665940010652163497698889080085837173793981840214428831941832819463581769642124977440706422805326108438979470724570155602523218074921787414805791120518311578658674309430599989824800797221264395465049334037168188169096763960584247930798251889978705218355166548647451465916994445441414821580497666090927057889440600649190002203381982130226445967148888835261181979526526793222180982412430368197563265993784571481430850795744173986108487662824581010095381459359539262835703314838367255098806168454157440647229379911012969100351980786391797945900422265258743636652939089176847378324785208953840011335199763771033965362453405436728578133392211074644699978365803119851859464959070304780890335341773453051329871448486546726051126226734314536274157064232205080312187264588854587121046019234208760999490420463644197037143543498940710816617989723725160945516110250625412637743681300776212482935403573037174771681426434973889711926913908434259481040451484290483172980871446409988544687871983146288472092010080874649612910907763940568919766585575472340507199521561022485084480527985263184195777833029096256009565838150998515882973294449872766014558381462008102145649082417788431011077628052690173800649222238701288859973725540785799015907840183907247335448728506813526286782105335790154182666423574696946309576374615563826928830878204550504071054136797419850785969100229301866502773502179219661754196039373422070413065446989030521177297425916023821603439619532035791077919948098992097540148971201052759711238300921695638544694298838073702451250553896094528333260429186717949598275949639297625962901679280508602066498540097817175815146625467766052691631397139492898585297109274584166595964745184465988173484950830175142824932940602459061500883215126522881163934772552049878288596575968246774056592187823421186679422849876632134576712711237093087013614603349603549207788383787605454421241315851497730042371405270612463709519464859623433771817053040273932158592043915557015505883498726343517229399871380759889597025410783294119532361975443502058760033276031699902284373320466063732529604552761416655794913703331703702362847410947330839651605430779852117242861423302754785268890894304268420595254086378200447263577949276995101045426908032644563919504823416983268511694764964587651876132852178282078564688649895164958410565400725776879032451389517982050109318797201553454630354374401281897869955295181993742295684218947279451380789750924409332656119340250347574842953344661348016104045578663431082627840515104394803010967480575608096645235877839224377559275209767560512494442015683259897631059523074145763216351117456355873402396338373879791554192944161092134534169393683551248827321988465771616677266416368308471533418723664992046997035703979539353094398055302422342560336763621451970864406488331812913106361783687033202069778677098025788914535564548773506432412758721751369394466370134350229166723552862029117996656192552649614501952060790116202437836363600898289511553184915850989427385908229887922140234781557714395540438727929679450347582029350502519028752517789942987897993469175017504044058816531392431296148143699598665219367348583278179474134675883686440617675460653225710997737754418982414233777948548109497957599624332853581530714626812068727673399652774476738391107734115461306383692587594224480774735366936198639704630980754095473007183824599486323240036675944503574002193147874624593778989648899366687661446193832228965080498440511986775603846388848979606385404036796971147500839141480901958075309169978513598807421927729826107217581388856385769380212337573117974200726964912406081152020126504104179551419336084035074225169208280712900946731568655427176266022764328976788888153236502951021910301466751604675512966768011897252082110568202552509175044479923054974844563314890506529575706685660102549244144974714047877712516098261567219860812214348180149506929091882662322329244433546782625922589137852109368102797977993060836890444669986546367175854968777390653317808563082429842637385857387114316285317694779260214156875679590903886297989130919746326630037032496091476765191966272831415046222621146522001984574389479690998168419309307647148203220882068017419443153331095172997580736437349100308152003134296241398494436391460562883760946466284592659442586459718651561845321272962265922527278456380893050857924395187945591124296344970867442773111677474362361303674696416202233426036468198512862956548283077430582542578921880612291573718443215182911399651659476213986213172883578101598553010654959077090479836714106472350161725494956492762491807777215298981836552588919220058693269965082746454732487039485827379492984615581055051277813299547599430973675572466096648427197685423424296309602387434012921347856694997271873624263868412369141325125430150883349426193031491345545471400417141101720622585070301475763984866141841857725796931995659995795011537566590668064504102191298703795850911138565304610643035823339173162319223940171519002208461797261325841448617589037229297606332600470228027811295992362871546242258148946826734093826715278273230567452782909949306214824109240224608598955087622591928095857465881558402746911134873610553354971648812305811976593081461127847149627878109931625143920938340176761279990396176465817506889052463614880473513104633098680011940275271228467610195437289495420318213136072848917389718474078678709573861514100814137834183132880468279935769772800103074847353100394289408244452801925045739165226276678184423389653450831863471808642490334164214407000394659808692412782653615073032781495846972446826478060819914192090410639225172699601574540110957885065165314265245715881592531408313762783260459978440452380090115836486991840389023513582799620034547030455472030691637472612953165669860258781307927177506109179645934930743199966780633024544611011882942867087064660548530343911778631389042738987876593089146816041180007279333417802273793783988710483616144699307087500064044356491350316224907855249254536435887835087457479622012376778897104394421741842354144681740415267907797047038052131351608926857183295188367380931303631102513053795523075273700206789570496114169191384291647715710110403425143010807418437462405113931573786864934719382678755003325557718801357539248328822731672857593790207869122668986739909951009998189616519191366766493295656418015571562769118766776962094904164742384283495553964640183489651791814786524921439105825200054688708242989045878531654214257820576700870360853178325481239855140293827093576646407770034490430338645360093657882796044705933402692230762478248213589106514902367912614599015338800433572484385961972324708618529663183978099929075403187429616788163055496448939174242891466625764207179461532716526485960798384005018729463078861590025333068044089928611921203440122869302575390535340469861705095346015927360963189964340284700112612504670245579432407814683672140369955919530345317473245327513454074632180724935390711144261623252307332383067474995643525104105219279489175605618700976934207761793513666050103590633998240046266867781232808320442784832452050016388525448714637581219657533929999248432278494998143595940750337972380129157432749262076371779320704702913132079668340195655860687750161606170523548860922941137118729246806834698243680913365691910729586134372221390952769974110417566612663428954478818175637037473838826946377373479964194995833672538886977633381296354545036131463760620119833121049631973880644452406395385989141620708195750982814085023044528167509314809868095829083532705543858377544837254648504532386494041311632473396826223005509741239111662914792931023372065727312841602383504523171486863370310446310634254954440609735799284352737369801178810905493932845395275841904905630366554115776443668386697572551380469308178220470489677172223096564115817767298247058242074651822595669255989560566653148871726320088340368991234476446767571412233249423160625998888136787462202660018773253841496777190414674675861779537187951768380516063863650714241056129635763879518977751940234762758076186827021445085847872300751431872834773025264869844765674055725481454980108288028817319097833686796727607396117768150622861730939990473024920431542200755620738208507724940048500675732036270431286678437971620355823644487737562424585534897610769989734796744550103086639762091526485149812719609616259614682557464843180450285909779000464447390415827374339100344197368806961218510072258196421699358914010978307231743091807570158317293672599808348412552802701602439346272522941218946960285070103740917852048136342465451055867439929413408247014321674653466474018592051121458725933682364848761394203137975556507327890448959030580713312709361138916908666321973969852857895778140730488612136634370032864498349707624851989357817738690178152048983248725317116080153064681074641339273639607671899673092693324053274388012469943259913940650146597385385549537655364204015238613888172148525901488269168342571784788000891363891907075594401613803182713571386611699140414716021173817459954046384699479408719899149170468570899449564074180280233332338513669962095440879700472058159461329358818202890523586889793640570432888547587894030848913597440294941326139453540058607739045145271576792998286890160173701292769034168210724442505126675188069470020954622924711014911041306349865673412464593855941604668582392039634345315661439473365400126147633016848004890502728801564586771481588324758145436192523935901149698548735742403965547464828488699181986410128654859359367815218405489259170198428418771303555963217655976505448471415441702756944389972831390103758733492970163017554124933063519264310630961404866456309899532789763863513585302959216245495596373955721211831602198269679733485694419791932893049715432895852842549882032338736594433439791784794796058504677463383296615594005591257107610311914486547316072256195834314836590395523156801618678250893644255827447266373810257910225910160290952266195184303552214794881062405251380244768479461117280784130105821378993369510659106131095967719623328446473159234897588907210550071232577837567742356281147210731123148833810070218501766561389039044442289633667099922876368711243791759943579733572527974770107040585164767801281988747890421131819916385630424081357090084394491196313129056500605309373570259673108922712223553482632918542472255681198792298763235981816352970125576065135903839205479643143332162639148180796605796210688028005364448263344853978422250244536975983203195340986035831124661438316597326741358719537963342172153094954135730659417242813612888662058815796495477760112305795137235340486782865099095120622392584639068562766694765209431999127540575459231627344440613589830870284261403303421232732614676043058003426843231803581060563421982915356305810353110509705345861085136930425620849316330225272364437968183535505251259208208020535182943707619044508389285872425114004389912561541180175734274230435343514672309131591860475615823459047787253043437783557222719613413855352663816087761120009004494635789398915790036517172711772060795717967571898035546511301203680598933309386089650197807989948878395320926544326659052488126058205449762781940077056134368008064760961426316079179891151232884699844356573365464807593166573294800492701175978597755267748401195698211500095666797560390919999032593393030221477456224139480135757078503319420920065577070942619783301252457855031796925168255538839787273716138324602355087871472566042019045477487152219825987041254449141844181913140245634309905086271086909840663728588298243404179856167742538541021715168352350246695576278276757661355115761782857159334941562604579829619346739450112439517310449626802811629578778485935442818196824537389859110152215915225825557576496548160075154909396949142569507120374847046606492858993902521194435705271252418965224127630724705834559216421531985372629204034641637197953448751247774762316039243303168995715652908975883039806945794949026994023797835224258077669321538288383169572555652175332745386752360834925952458069165111506166519227695494841962315922999600856712307699096130896051826975605994926217393924347092507521319619028119631796152451757993084223614620191015469559464433327195518284715512165874599279380630016013065220673738810133559828076952324567735831734125500247184638586004427813799319090807380860484641616274381439037246223446336747891102729830683904113995066798238521638120275558935722853839806756684957596443291489398913122072431544462566120216456725170621048493148682995394659714567510725091035469849376757093774378883751491077296712344012841065887061711886786701476432357847990628452627266428194585255509779868813307246517742245497483945947563433967779106829755747983730193125168390555638356815140572569681860662070816471278156650498144855528562294550032000576100997840202019793102505502766589300754258971742089502926275741476563949554236242060830743283687598010979293843706366011065172179672180004964026240219287968727275703889333153544507092871395878969111587415705823439226713440743889640056632864013833253653760886126868946383946985906875388079418067429276529451962663105673339458667110057240565857139077886545504240321992905154266449690263435705353284341001779493313527356816528696891184042465990120199635397528302351628594058696287976594202903807772063925684428434424303205010002141753719415701962915469512599556126572867252513710369556185524214900777796775321164398331881736410622777898592036670134905085045316709005759191954211158738063125330393664826866480091762798102731426554277188082515900381993892283612527463502785804813239087112956919432020434914371708561389865970511134840353590660553155505191310105749859651630911867994309879576284293212847250555177168373975273196151211520211032632379869792795488619630496144954941616070385441425785740760108013712870728388826734166347459952216450097821085280797060271821282990151515986558313488506500739136001705255167636437033621389163954364541181175574844748564435472001113558244668180158712250376034359617889150328301439927396889247731758179423956930625563849128561771812379183785883558120911694707789737385587432161556585515467703814523758940565193301132999909696949979020903512930024309020433997479604211427235635283262541901026609465323999613991360685414487736335180293363298180300075679155296321670698973103938577833595182253616997336792665753094502504517867091614911757607305353962933980069524287192442385578880578281892241890352616658252331864591770508680322502484189764837140830211627383660558448293449143201533965509607141810731411245184082569169664059376702501202956180731125332489876435576171093522466255215351395419241747625429536115344882054029857354035046144727357784172086119416288624863500156006254231362198525771737849056606665089077478989081779712343142712933950238696607917306874681919283113391618335266555721532632940755124601804704874046111119471886165616306762962960340342045922924311666728311704819556298859336998938555290772309847521675344512012463057245549306383358515827819254613487433919922117262206788633881976472854072879050483734388644394882503339229820106408597226467592387233345344591961079207639151587048550738467819316500696209972910597238655630433232173522893802278254188893310529866153065964983192389220776400869812326484295725089252965263794114785593882899380259346451493621391249599633300104566229169602842673628343678987439700754984391321343584423011033760032271277336939546151148877428797477373721992056120037368974221378630157040834957954486206406445508916255360964761174088442442024592180752911265522415185621596197912936894209417759279811249429856339504229197684107138238605432188920153728974821924964047880294132893853200901341837663238886979704989498510600694221069861275879436973150850072191106870127925051275597387624342729320358049254919404261160270031268810698273458026819043318100362051611383291790950040367386856774734480331439257954378774545459443591791001029131679049048551712436723562914118728457141336150940399104771532094311430642769111451465932409626233049638653838405419541588633678418262502968350868561383907963773422228847166444526318000055486238141282020155196244300584469496904790730785657780816401908628315297165497914057840412483223237624768602959211260066638381349352904316107684769714107093081217465620878413870160754863034678136726569556240230313852704785616184795563369650022604899551162492277489281346072805897997297850247470983285995786294284469050788471738139098068965814174864182064955310856075490869022239986967854240598197072648619741719145666733515886901880480921710611986651332391683241437490172151386546883186095565192278880394936817807798760580414024242200128872997513733250626386939924850358890267816629117271309042696549525542388595357111612762527252357968272756223267318238274580455732490329491942681554367511338369357049358990175300555854532205262424079053692531917236573144638685144307470255481761485441254994854554697160163497405143618122266024809629878209152431160762529603367205907238567370475987891404133308695638720177577279728305124772822458716282652697377090677446581391106453874462819995324103721018863262721274658707808439919397091573991856159028909030712750780727895764829480864123362637017594944632166829318288731053647784752854036540661495423308717774569341137673863074613645370731191993727047308809258305883902975711416369138420517641871363993322505345241187858632440913561724617458645250888576356902772826934866666430108871652588400946208659039339150216331416295829097289673436770294918932444106214221352836807563889830441861550889664785515287318705255846976892888059332412415461059262656478999796944421724017149362300192375978983752966587339696295325932306740674320866258326824939818709502311147559798493340932270027849726729536069830714275319771265075136145886845411979162955065245315349384185855588549179242074469901014056650678374536971496304801177335730525407977681330398941623553558324664604642305020430939452351507660411147756570121467654157249239812260474535365508922006390603620871457340627165325823399881545352951636988024362690867601541438803145162283602070580044813361166287128994173055434603201237737726165396637621185238022336908575160631828638456147888153619895320396864966429602092737813519679665821613838375121863496886423608851974274426023411143622694523254431904536924454743859796510082424135037178697159072582333086072518915768179389691739865310722321586560701025262188677573610540140300467041593245375276015324067728769116019463110022206834776071820998033163568186978604017069992956922636497804493711634026154738864767585617455549479862534991295498849823560498558431577730110509415922887546748273138396013295224281352291978488985215634380065387256195122336999493163459065529359426249078916017003578505292087631343460713271564195369513062731642667590023419687768401198814445465075090000905678458433577871132041637369537385219029095708897864874654877348214742394224311753968647694870597169579797725586892656005140723012013342523182445556905143659236248329374853542441140211522994976289840323473120571798820275905038772651478705202100790692740308934170941153194972573891565132165813785452011896539448191460727719962281260805728643520437562167271281328100519838072264063190962903513379754332113955504537994988620971239961816348073132656022914719424198428299218401262857844766223021258743786566501847949611614700859806146415735642221061368426683143608722071812043968806948048809533942953116773390704797280681626444856373310730884217320967502265286410295324703934089533950045061520047918241946996827093701720706584226563484542405325270246309776446665669023312141473096984210613704454518052931172536136121570910803213250934884545010223490633438788598965680866995198136889097984929240164766759935753108924373353852542781861404501898787152686623289833209916119096392960748413132478606365773228385483273932676090933993246542646784936062109669094148553710067324523942347612904644475395657530926576062014607304064569114243515164754581047594190110152536366701602510752219787491618500171954339468056124683141747600227786300173028766785174861992682883796026309447685234404116913102944983196970925870350474850393455642976351420752546459900068878804900764170852779805308260042160675753776220216717525069618273188765492124381787963873658078754838372121678320430292136022289578127808039980271093766085788953204938272797476501640258379863282538138849803222027056270834308041063551358222962664262780940143268684933247400671621988991792916144981278584685675101763530371170566109722392409916256221652531022424311938717579318625924096493880182054147371299067972396091928134611902027903971100448198001988818719862839795839526262907837633521936488909287364004012698426657538253900050525684570685394887828197233784616907964704835171585248999947290749133422606963166467468900287482349201170721592211379164670757200697723186001896967465244890243691307766210325459527734254791881684935840795262663381790771568706616502610807556529854300378212496448363248230349032239298047060197185698066879789745240353300923298014903729643772012770839893953009662444595196962594262052430156361205910676025255956566713563375312569509333624738318251059563509540375167668266183949136038276264519327368195562837804191762053442356730405588011799475951258551087430915666059593435998364691270642601802969734784562715671355664610913408827211524611709282526010508186119654242039920518003330468337843042719089109004098151278362153966794116138287661281456043953203083646922056989047595355900706161206093586538853451318399356883050710772190430289829773503312614800185622574440718796233292503555534418341185440547998143853513201526587697700717201815522138879573807512561391502802440945349879856960506697269461235390336099231123526449804416431699655884644848357654148600444221725126900609709833195310858598172927593486004751685787649575660078111572366880073519324965169469562109265035698419183797719000648337957115614245564073007830902278027865207710540245817060314188551050690321150214652576302755613857533478861666768530073394394827638926422144878431257517172266767984470754745200105625290120283499105920061237528512435170372849994710344203297998925497212024493519961264773765458269721552555052366391496329854755273529449865511303257714668092885443120919658952356244825447645348966028026052284788305930817393377670428394232104584315883161704046832867374027392108733430103434365569945944578705298638095049232270507272744442718011775552796009907960741953473316118020178472633356926832966248813497768467603752509427672964252026125101821220595152262104459416688410899291710575379101967126465368928844030607890446798844654426124552136833011726455574220063836373946881932980352772958421566333197319215380205768695662242642915061614921877750449055511810584905116605883435507602508383284321420710293121253441683662389070027573690447087624912993922512474431024457371147038213321693879037016655270334342297974886182714006922438232154722187903231615155824126197618380517063812475845784319199279611157471507790287552635172348367920532480060703941295092167677616898096775869072211896405649363383080335239987846270589731077935102072956012701182776834007253853293625160739384708877762960060634550079475418508441944217687093841583306304592667848092502056819459437336128094483242249968760686793230433679795300174323259731332483164605114208385118407105909367469130577549268329527433718466255256434733708563652535043022311009943952483799662028966396713917109200960750815398916355749326914314240830960345891622271666441334145869760832794081416688350358005771705400604009610827907907847277093542010252999739619985334392498339786661397129512576775615620816836894943378998007040563135278876176733695334187082596984860697028823972066233159294941880794544978540795058803006765576562616730624698397552036202541152741310318996618717778732599243707380007036015630972448927338544408179970916900896646342910758880253698235324660886938651301447298453293115139385271163159169918040354430442375641608924118387731496757825305408682043513070498010102641709361730277744233573009115125858944435527997970569763438515593542407155862280219149406486131223725553370531953263167382274114894229732107118909609542222066647482918813615201722826028038408905773030658334766419887471213713657226104458750019240319145016434686284136016322246935748615876850467674130843323897919811313553414112887651066388239673258185016293320237622463338125326565297905544284214825716721163222324954823922669521818288025697304890692667498788672600774889573547466560407726894317215928832536651609550193737071342080660583270569749493902935790496852752570689060567611057308831974901111879288952234537230665595086998135163617574805341692835391858836769160148795242230082831640824254149581260186946831003862610096883657147043335351746031971879183400103076308135826764020737589816009287375901903068952541799352863690812770699936474630544376300691958105318464657602962456195526148837585150834341636597034000199441025114705410745959829890301855858721040318502263858457865605726159034577220277332901439695715868648267003712755352752453611008733040713261597297166465376942209753719999660139214151764731429327702837260037900894973199726392593500285979243287061207595343562804198202120150749966767781050386098375451623339745436026715351330254696083816568526639456434460546194488835213866181447501021457747633841737371838821459253643467391290126009492614875489818793820861850743073395517203148249001244097036276921568599183853310875125765143352270664214449353863307869675349834904381542595579627028671193666839178588167191666986521116794873377787181635903575159921956498965601500465952360455086172779178658806659242055250992077694415126837266196540565135220484956772125473292035431840529335221739236644503618595671210765407981413231186526344815909360486559073867903632851959497540740558735741731247412665271811522241988383855532480951637955682332464867787141522248293797363704947753660442391265586709464532727589837307761598412715553695317316424028359903663864980284233416566014017228849607911801959813208578905863763623523060199658251440919309583904725607443975156718331795120462592904963837451417629066539998339590480779808942978035724995571642916510297315753273451660194016095300052241708862167519849136088506180126374780310525447738548955893574451150079565065081365917419287427771698958579269679973636916295777086571438401924597646501370443015054722584685735652002815822629972828638536122388825312020929177747834947081464414736124821080475127458126158703728588295013952011668423743544009968583526581672354795266021322490220219172262071548769817274931088277570160315744765831838927024071351690449211989543100938991398695506918825513607466848616006663812982702246696261647047285472441709230584685478445686810751400793441739702782172874218562094108379524772873698887552406649199977995931631409197721405154991445349948532130428175604978659053402037119848530832703175726267204329482780471563345054709754641182653875128899158106439524849606135028403896983132076527825295736913352902127156539485035318202804504420435831993440504916566102482568914842339850782812664521161131926577186432884433868423297942956979695807548015061162208299359660971171906916201554883838281029649569127670613930331794441195334907545851183734328238799461541188944460978940052710129241926682191621503288805224798245533624683666399166253394589949569952648007895984101555117291222244920086475640317019598547801361676716624525873391884243407627613295036760796227140504347102674074875523019873105900472257875885751060362186226905778007134362288751459427051205586824077180447069933310745526026765345313134138502217529209289603447036175624128299395939583825798333229541311045784927970462625682695821744884482944170784581366991100355844320988266295300882059775956283049822454932619392683478514598733229256669854532366005124735096095746881153910857381151016590026015663491219503035666261163556241165517448025812060088266076534030411738242744033890105812235214865722219022122771570591532206880499371289350820151620220075097436869994457335239424778781896466327067771926582923295786042589885347749965662235447889663798744683824432574910966983133012098007111530998349374511167161620368619538929026139074207200740120773824033990221822751236782989026404725819153432406684069437154164178415989994115947714970624143932192588856217092912364790403383104365933394876253319877481533446789328828591020792588628419085719659477760306094856140458289937064417698708016279906023696779459205359504812414619874859131276474463627013538331895978438186999729304061232628217441956431724297234645190289475206973814819470657863404815418429738003324837396509859725986449762404367615912412729939904714575975445087259191365635340493066321765887007939392401150814351990598659300220800620498443963052191287932312538178842500786928052598922466524896112242699843840484476581691971558275884437778158197232999044756904791199790749839000272685350353927202737492210928502331897381245698611742534069295764805876461718268617974920922756443677851688643828459328606648087256330355899070686775257985543802800269425607515874261523747119214466748322079773483033405480236324043835005497963884063125286199704294404886998882069771902689316785212447389721666003208085195910324196473484481788065258036991958312029029638260655316462449401159214761776011827297294994969439566470318634997181124353355441521924356274456924574553938209011342811792187055236648666840541767535265941237721943581332661633367669977979471969478028759764845723653845025196420244460179447450100305084252844680117747115545330169716200568434731358845663070201842449923789728130712855894000563732840749539342785933654621145273910457245714255141249947312403768593615831079586447145949610866318818014167141185069726328931560659691189572685174115646434772583044991369401168663213778835517326244089674483726501055618733407757573936427411250223595883772886174834796159729640131166410352900752443458189444403809128224373583272918973690457294439961716470182992584358901408954174060492529500634903823131206312262820055357021751049116977353027826108909301633356243060837381121313367748236200467452395906201795063104962243822715880883411656762652853383612577575322567433621040711127870582730114613424853579555297514266124510579413416521216925308013360604133076134140977865124649067723784000655171082329810511695858253872610005265890016743519351162761724868425912830311347274524310516545933380053026034032570674415812696967921975286548479367087684760660435672472585000607919276489520948842015726788857688252674274615968671632036757585655286627146582159698305082048404326509837705813068408010938754405714555567794481387882106067480319428145481971789021525684738632251848392418501629702100235878013774846431643976403285282149543265617399374588825609828688135839847494743233501338933840544575529819969861793931052463181679992397848750649974518779653600845523426763723030880435933516157163488013388764471900382000850392302192949701199264127218765972935763082797765823155782761953282449218064196305822630794285657455072949826463265256964676964638241413952969268638411014338513539727526397461455225826738037367702495699007981672836292310713362011210570182978026015109783026987554409534647840162076942179074058376875097035331116927105743623731906079834541902739395850908570577792417419864422037223614771344942966382397730281411688546277137576209969482023237103593022895867689168612729430378649479454285772008248468672688784008497729833005124459330569669546182465108734530810057685987921998235597843971284984282720180446266818256769394878930917311043218478486818819583048864246782751283318256523974688797303704366813353515417931869074488678607140757145987666158433798212168482043791333448714857344934894153823085365587385185445136862749560987236327681973591182081558660520447413904012770086892883154902379850644113033241929414542729472563130760824013722211153368918877906410291006699728676443423277467801035741003396765942945562131119838692546313487317574684352601117273161488933828120858140439518575512353875911801211858966241443052121151045910139382081249154480645123243831109214084631642683678415957758939830781334895772821215120144745313177588060250400686021537525807816779720713088844281845145425148735317007842451075079653824923019980678843318198968736652367715603635250231086103334281187261809065114228387205557020373953538271632144430060938032443679279153067874103699685315774727312134276911845208801726957455871742333381385911451853617161248805779482370024237969362957912685180756111711643668852737096866658950731198243626436105020733579415046824227354302045920070594529750088824804308518992717987823691962689794603185369377467568323298366377041800278120901963302132034446194952586967673500330034570546757891062223220181496071220721981982351935311572601884475044905622586341150405848887736660831902634799198860331188008033948398881937525357896772276404485162804859634367677384669294055288667617848299641292894513136730140904374095588631731938126291500047974624277094325260756481480941134126701486224979087382915207880951655200987636184244821268069224140512035950773025011221665272882455183354082013549564461295774428417719803639164772110716709379626888069608077596289055999880413644070164840306637651773952386399674560828347361760855456292983863491969009599837834738021190700706991586824040082667685227233754976414707107490697426182962505994927302934614394039850635300174054402037567766222488823481545466926659913734078640462632108886327711848238208428989296030651918147736172396554993058179847903494967365508409198344092706074370453578314155631372999480490388085668463517016875673286083601722898607687793624337093175515349065951924374636892787701829966144512860859467979855327927217881026301292688683346923642329545007334749909696813950899227046358832285349224769866786512085648733620470498939254480231685852756815836710113884358430805161133097897511344994980171855650631929127512884092191362069105923004703709586370481534372914669450298874016140242524394697929126287148532388625569273185511470121806830165920192893228029150961298359247653503247919137864006474797960425816575690953478572431063230725838733327348493898863463990015218885374821602440927740897364581077519900571012769132084416096088701060870847754142797044484962956336648843008512378813807389274499760665142327732410385587339133568109339685201944608275790777818769177654718484497483142489315150242960139004921173912034926903524642483491445033574853479847270641827908305822812715597563150635006296183108608531719887591631231118472960048833831234010492943097092012344151497114690503708154601273157086559117238315613760330259936005143108782169077316776545159779591307041453018357143459980070435079990232155629640993918305097841466279484583213825413601560406372956104611006694779474806607586797118443971826612265905233587221361272868901234612805817138879769770804707143484235924758897364733483077450957748026930971740309167412779335372074209347670350462667985240071911572131807303617386917112564435371826816879806700096896824352766812621652616776319186057710449695090267055363124445219821277737487865644065205404397732078541523289588270872836600093679181398597927305454659702967165000793647944635900202316320960483123157025179476075640281065260535135512785785189131997747935003850227422612046129486240384092551815429357305000890736915195701523022081057846539723913051892424513862795031841759419000709443453154814918729195626045221426322545226501180595836647239332715643372262885556877330759627201221142587329290489290087445959141570223599223753612436730637885399238489666462928154569112546818268225706853428536140253744459653157597359674339599808428943515624878123699750064447588145128344681380289979734769385214279399980858395888330275587555654785472690696013851475167453910903589598602194936063312791960026676209971098461835879131308899697133184360281536621060702447594607414154884182480378544551585736271179142951120863778144911438095461648920945265971375700153635035963483309449909154551406666782569160910685021800939286614153234802941368405472343585234208869847517257614803466934937960502163613616161831205591447510671103160437936948396960281700472737814263120055857858951791196801491827402823686301052651120536077896064957614850761550580081980292964107459741450093123650552881372590651594693483023753204721505134290291537236137448984674158353678210192728240526330740800314856202287652333112608153853976394128146573691184535405728064323199815036464465672429124871866785531045801109906248240539717869853691428809597799335525229651432328647026848063779440399259956051718820344562242298441410027996774884706914828159909922044663363683535995294465279477098177216754617812109207947433228940757584651142316598817469271093389649722980130296736189129928458438129707560154011817810702566031682486509682655924522583818787830167723709657137655701260920864014948101891175826281131520845887337304638043374590832553892883852434906748897305215202845391028709954634393771869822783313195142426338778291948333198557753871142091460383251731089371539715484845044791742321570244769865177463979720408662983212324553038954291583451645610411518680564735542683378061478867607927204237910966334834527428677589263186763907667592431644641862022732416363410271126747583500210769508581723521888708169237270358728209314523404956475879465862290105550243873604308775552249716497175155876763089775207787930292674408962002167229572841878412873888356946036487814293666232873380427689155629636293439021395938812466720416205628574919756775536294975061223594004285266822171720241532923061415475013762790911099867309736055125303440723878352075991423977859212379429898046772247400013778799163141226793919673485488896535835937838386677837190181036721109145347941158683564720234978424858020453513187120882232914172679235675618061119640990061812376414184973654715725367728447139177844062873681822001856198413874166592061795059547522200189628628276581033742451219508211605351778392225183038448393593578336965335790376365626237038480429097933525935575538361113785350923786536515841349815788754563932111747488115627526621907671707074318349510973343180712371892311290657324218660224210113212980193706584879400478171998806289316283329241810614051373733766221016705145531424606138091982078919128426197289631309189121928603682602184007723822116818547477058138553192137995629903345132272045402323561710073542296014077347653135419598881760245978199246994040630984703168060490383200509597074032103120005306570784068595687057530599928090653235311584538099010661250089619085056606634793661693089529294101205414569607366428238610647352876328347745571140058369083827246720266982838205550592622979919615045735702305076294545794729253849302116286714978254271859628070995123808142194986126931757468131443409257659499794653551027544480549861803019269956747136707627507680521083872700344970591841423316363679496015762345321631895594223553868035565569153680920320177287865963192995649475244718009416352271420663913426920055462573426093240672426889892634029970714959533883480750800181479044213903096243977873247194856275994561174270258385948230143777010278425748229794638878092998385506842666748313512536375215526552187541510969686660394576869951774945030791851072801568590063449340443482544886507988985768422855714970089908381669768123461127754101516994484272146886526828381093085937430504169386845881266696593458862023307024375778912669388703659384971061816003558777598895427534015518169173925899934645808457621829529219985390143371654289074071587532189798297541360195908015892283460729226727189986967614133059999759902873801375891891820644411503352835742369960134332808264687805648845298416869686874702204740457768367705795940006899981799381024533192389413792522899194825552037709116835516168905004253691558180459290621092169389895286556663966446033096952048148644315969558807450191052301177756511271197405974640779646206298044657386134451545270681541433969780484772724915357670547361531570834294777504935200226408334170775959252544802351701435765030355010387363680730265293896635333266002667361254608278745553109378689243065126484988082452689814447777198028236209440438688459719730233776573354639612506304236738681816690153636767752121435323535881641237201721387320375554219897383742525141551167439958825985868798543960030553750068795173584279016613660757423898502718998987157326910247754514953426232817266820442188475276344353772256635532536021267438244212996092899385511147837497540051716228405601327795888907332179711802618928840212169255684160411496537350494378530704332967280398146248887167318453963491804677021594838481413321434521201862463774757089672179455234957464152803234490408230777471855762979797974906189911301133438358532159888765646581069445074180680106000324237225964726986814308410854247194870419504651695983065187451797133025079785620899125571689048448912964693494415973840220490162374455070236816831444190893441601485828468062475640943988394830892725572451540372578171545290341981170257245082029390807776499395104633169385451515087510030820806859278973013448396270413286150230434920013656785469502654850349689105006650524222473425695447876609648995604235543909205637231230655187920593052980150445811303467461484920607473085090775590878618973720387536317418402900869043516847027479225243748656187057607840763971939281417887844996048656186125371859452115283043226216765067361651998677550304521622617714694651565275380209367610017692606497834486108099449245628509655775307807401459006970861127437560448524253484814138074170935937116793823620833750824596871745016909097475036401288432499429401753137972646453621354000303697390641826689851640203846938729363934508981105532567984457957216503489672313344972256278806900252600509640724646686833285104383546753755125759276531616980031069069643393373038625737489799839135530448724660785200851789237921957972570934183653318777928090475854432287599614647328662797042277509336886518418171477672601391295735297501781675493166685586788705744311182963311493583809600965883750335477611603496752060869977331113196639114407211954857974246189934553461780473943180093421555770077271617182939142260150956273168167918348880319977833137945243533208964049823612689013730672842013747511787214805653535313978546303796867578384961132982845862989362178644280359825620739047366816251664751264775224785200387368187163477026916965795089173928985125325702724550339988615919946888477990353647120722796113864920753735760300167044796817024254984477687340433892622608882231252847309215194933733417929133944036333376029718746420017006031736556970564346834535994350587557371039491044591874926388841035699490605841975497320976445001397771300928966350712823694492212139634801135973540609680822127910192813684464463936280307199691807686999835678187704863716839557179964134060238178914908528480824160080219722494825251471555131275918820922234053669076600761081251967779488764192158488673934325671571257484669973963615097594002432277351439960353104941527722241830756152553937464914832217270525382659018358394600389895859767186077553025583646731508809398422132102638772099587437087062350559067883355870505598900823319712314644255339130463002745946768638670958655645507528128264459733261562135080542456961182104942674186382494908381499847929765658779715047647680321660105787004437174554156842078075449108248360567869361525812128294277008470267351142785984174283646830612194320021803330694744304707769150769422179366793944648378158025870952935006587375812853319689014642174659258588784972329048776648637789624315886048080468238497128490922026519263592559665093974054754698659080363272885464604786313574124033354689782966725178832321157459307454445339935243090241849355876058692171757273745555212983439283813640069976337309983469411254626292017502446554873352071409528463046235339133909395581855605260587735437893203048912163017687164361541903762280247717195081001559600734250597815756381946707637524880477937973749639875073820327676552273907491642905674038683625952806398749825426303562531782237918776707909702399612549606691790441438713240665354860204078810353606950413678442166964689962188592259246360956793096909489760750619298684045009227489589663541626765136404637055784262211184968843284439891670651182315496526230858111369822372959572322438642386846977772868223515650540037357868875318283073757614349587782723425253823760597744209417309623239785457289674682763264774328741325732381845333360763567168616219170363959991798373390959185821085685334895724897465625597227252860276462817970639235942334290676683520028024536633722019836037169649258595142950189034947750921324176845699148587186712798346274439098170902753921639263689438250421106735663464478575843872918897222742880689680443583626483145476853150330723202431661297585401257818194774395467331052789033576959491494328760909766158905629423239079026681023501845535426883735046382850417276732055244524266072064069250481804469410493773646169629834872296511613724535112436219400527504611357475293175336088583480598979541515286399977110508319199791178683495020841949264614643229538444457972394917310742824129446546338385414849025377416695931002788656511484180110781790768004863821330752112813161191779253999463835845800365802647275374907654315579066678605273100451558971277558917241462465411867512158966821115131146539727879285647169962338572341950285460860940808479806783604465309076468761228065066956210491003418888158146639295286422437768675337282281232194916209967532801774623344328759767670347310700826741440996468611796152883922058303819841048885007017818205417864630579704275471470312843363471947599088497881065196064236887812164259719306677166848549681256297854482168809907438280382198538915473673591431014241172116487752980773047666180019290760055101792600538667829232733940114334295307099922889714351568525078573109425635262659747801975271548377350489764375873209506153564321269641880975025304681784038217166209190734687727106157803411472410995731539122254972989369172195000627155648998626203035905318140150201206094093656354325918876986430278116933110426862663542045220012728082981778914897565177438121510348708271655062456897430970476442738103766722688004924557927500180492936625028847345830815589388383623197278409156007048832106927279406183363481661275739106244593063428915734792696811250050920329407721368492442630420948237848518665286296490851360054048688158885023373956812695783698184259971948471290950680840841184188865022260679926059902824524019081682401929650810733233351955436613929091934504263131889663448766671459120480243150638886825064164749820966461076334037923370534784194909565227343433818324555941976016607475941048523317068049668346619019572447847589940709157639127503453456053754026831587609416144922929985242413466346236938417083181644971538595317237234152728616245706204315796997841666013773116908058904915708408808511080534262257367485031695054348681296318556111517629531474343216378604357658494710827058768129076544362766346446778977056360956486152212783025385821244106257269868908032366669533923219608022298780979099145742045663655965928831248872759774401838434269422898313299567252398519297149214397348487680947121535101691116783445195560450147768489553762893968926356180698431980889637757243096315783174984218586845224592456061886488388383390872101041098905903691347717164176830230560014145543337131647736581232393518252814814237382493409481661778977332242241742576263647064878904594039895682372790048133665614084132803701135454145157893339868277672583377880524433785520972571550062598741417694799635309405066493032301390030655370991622759399160586932271269241104593495283750080993252635690706946987585712490470829064444479528047044381182850753314318819511323450330965380090525873415240627023149313087839737506647247140234667029576717590091776015316557891809668248834683496352371967892917039745645732704504626038783719756287028878080347575981769036680572667909890972464941569513957408097562330680343972521318031166328640371026321877212023602442873229516124483642159780474330367647830902313680348408372341505320268148915004795984642153707457513657835031583791036185442090166878197223230591841658382905454470334081554826314844191432920892005793445135731966901344138180304950620185395748052828152451381283144225703035471372963551149906831738947632647308690380923257983490474427664622774446945785272914018213368550699280791916016563837126954235288813834830190678342148068702394378889207948480539516961461979695701753560748761399990804534698878021798838334546932480282941329311101270382602942955358898812219818215181567300894171022164673491622526535268421706247554887852226428100860283891026669333865946342597560792965604543421501171786920588654523638515134712497540046295249998309072300971778451335480312005581348095877285961068778714886897685854439995080206098448910024365736553650400439622124086498523225917599833979855240424330367693024428340107676642410270482565503869217525456185161793037685883733467890387101397882673675486808437238452150791559605164567599201128593305119839517958513013370895108123867134192961936675704385416595010023735522562579694731044637590198231813204667152244851683805568349556388205021144996198216593672358560038900862863064070374397052890227120747400509303826889597778494232544823899575477883449618175344348036382385437542838947699014645186799459713319469707214033533661895302043157842502637876700056498412550710825235046871472958953324686733533701193889493095427835764251822185762112796523744699127768616613951338763809668337104085149913156118533176868884003696766572230943973663019958864057907222818513465187608950958914551095150199951367987933570149743507551975953584243938827239072472940432635403188710424695015452675913084213944240282191242923482955681900947058322475327489380966306139899130382395388493608259828818080032190883280246396180274100151603761060709330410885147546763896077453525651169798474658411916227547190076632917479219545274701132408893914870509925603834145416407356994554016969566549081991052066249100566161552035968337162218582361959608940932156352401602473263825135675594718236341985256148485300012128794718191930713044391339558376087410457223610660192171215893332039921365577629617491381035842085650295301524194467230139737270308539978238518719349289908774545955173047602373838928676934556562807117318101720342100198442214245742343674851863091620404656480178855261207392332322920540575622159741562035286004663004541917645314209451457742006420057937842107766452307172161973492478948005038323205961630261845295122967262476463500947618738474000274269806401119675985509967854105396625162870085384443001263716098887412488440748707540478886963194957268123341436056868587386436042923886515959861916761297514135428328276713143557176009681505880727563999693928286809818528765817380696001265034001506017790927223076382100897129561923491781543338627675429972468071535119391220278310248804731957861657231959236391023612626202156241807549574832953286406498484748089936573004942535148498105248955568969869081881064251106819881073256763748058649582483731252925236209692755587291253208805386442861422691982787927273161477068289854411660285051135812670591360318999493703541732380709350555384357566959831322283056025784228528191389985272149119052185589222534932801696491417984294001537490975835777772119649194120667556854400590348630254638121288142824777233651935452893772819090202580678117622621914851058430286480098478068764714315527349207782530698475268650492430765478011267294414788047726420036123297279906503414720526539384391970852199988939801303319737103052742988128646824704762247840572851493398412462424504365576441667171754931850664185222767190545980365016450371415469182289722724401003590975473278051526867976118975153708884016293163261844821732167630419691786079804586549548422775346640100911890227505462431850935809820947173733595236819411468162876168308959663993095996792724351714339316813697439045288908696992814055699754464091094492085129071816308806215156049273219801243220441808677153139630135449562497248871679619691016837915958576681711688807857204047340296318650183241752161757245555854635595290003313756509096126196733025058984449193217455484064429384704980658116702796901655571759383095849621745366130445043224003486783620129830549800653853807047706654857091361776278575238959026249849894029870807289331187111277570071604381635360481756866904951133828478366201367617455846220835023749929408244730512486371529116909949534123447907238481690096776162126360028119386001343054332477489050119206008382606096572649204279528407507114317669350574552410633785667738666524922108329184703180841503294687050903722413563207248802786589226977591612806770967866764515130611007769817794221333445433166397547494371158971624217601464365810209520988630335387484041463875280612055260256743611332311128450000891458924872807073108779009076663782751067021733769950645597215450849756805635360074120558858745618955817358393468485625109447232115103009150854614714276058943884836586546172077852734956110224674307112305774243867088899185644876563328459701578928429469080245174390147453893642908568847485977736695766214501579928827477003924793530708389634969981436090000415933230289588286749658804981304748320012918663038611508847655848584819810544474359267266451972460323196044153500487762071453731247226833700616309903392350774911590902328394468190726152549525599049977302930149452513897031682473567668006308544545957730797001451603644211701647889164867188820088138821085960210412125069169898408023929042416215083680210389387976175687845353309096941702074112160613594595497922749257032649323557431805180012265448171871965760692159099231929799879469210753378353892847422447943547211780873035068030941555362901151027848753674365368974467443223790112494792295876220857276396451145868503649449218376911549513822288268998989568445660162119853323649518683189905487921886840953386066861405194708954906159672765244562864986604966645927392843110427967927716537905458824916497693627906334536822527809684580561733435195139154389349548641892569322383151003667256253597644699453341709180926673854699162208998315274175284634095243266238586277539884592750801317226647761512028005266645443801118277195107258756204627158203510601756762266186412485514477807674359837616305852097447449033841802715625373823571388708097396280734509268015083071315550342287611456056729022034854991363794488897064122536611924467950133805791134298307054467436991315067180580810654362232598181635330259191945089110702941095995716528716474443713544021995630270962779013979129817479637183122889897360929830149126520305355637346321783140100794068685851443040017872778123834541041350605454311522535311003527497021807586250939926121849891147961606482612250929425157498793573835069466177693867323565210106732708558319895340187940496724133873810676175279250802421004686599377096092394171768980678656248407163978529921993381959117307376128469632301098923389635645457381510926163386249148789217330156402613635048484974010866539059828826720745953016333956161605109897406148094877413544328690122893593050725491416977552828423403592478949483050279258181825960866827443390377149448824547339390827458430138858918815658577248896214114968595219626514946593272498146109513241352208023215903663729293109159477495077800109678621336136206543519241869645376434721053501112691459001374802794344122957774823101076928154669172194779826205033348022558439790946222389090416736448496097047129535174789483249127786629639169422330625392920248557016350287387127805572645020932900835832503127872094244349862001359717366160054703684529708019578952302588556678018548522912413558771685137671277164886959080582291912087081012527785235329968076498797777220235357313484419552551865915140796044416250636057885423103135884237906527369656149388052638283792247432540887781993117581255333779942386213817507689356063041061557425916891954702636405119656238108544210406600259231421060235990350251416028769202431544419499611446928421781293483407162068504275416284230307367408101797662264740745007745704670656355986455754724255166539410346582905172517596988867152191836544670152566443740291421851163118011088305185992346398723893064220568195343686406373291229745408014516031747133643015388554998253082146779970755551094952401997912004334009078759979705142731397812280452036815498262413110352714566057777429064832340397650487790140306782147762509153004339251275780830325910473551372641820831919812780832676590367815362259451062716586810128675779085039977793348050636562344378267221581363422036624800098726455383198434999632493177734363481155502089178087473607295242976267606921496135268029509143216278790564234012015793123614352976974118726054025884552157471311626617942391181494560087548873552428532563531847228102724380205371910811731390560230425944782703861348579621480620527557373963415015551352254394853880162511757138343624457699889042676566127881758568282235585317169916910217095366907769023208417537074554118485355345578304627151864851607372440511436687582043285184735404513046933267938615140865079536749876319653720129848366081335206147882148418131127617434248819909210695029944902048472385103553846668266780390931960700130627223519219156253503692327540162146294810259823364955413616822694868815968252449382641550604074015495594682325133267461111588886158449381973899637256979775069756582365087697592636552962686552641296638302457941600654303154820722022163945005245603985463579282926655149693380501492151701251004846006034446300423320939570440024200729328770185774442838072235095563168689043377109934323311858993455609918032199076250079211022246176610098841628524236572037450288024925232219440447258440564415123776180860487657206785813917966402111714718335440093104731565300200183211796939700663252871578688998474743990544208007812007871681390295548963072637025541880183220676359383100720952283976766994955695240297992858455737937977123558503754138549197925290667631487965703373756130648727399888980746644721819312063006260467262338361130760678793182323733714478206688326371408327339916674008878156925177489124290591705489363519906902943562369453067247583264398343020963147352492996587902917326105373637296910038313669882986489840066656245794803341822789986782478765494924846611047129710813274090017015789470912630599459893387156883211712574550165044987542444491683034938498662972825435973400767638020690808431237991950592250760647923162086652923972719638869828539882851689966174197539130350844298289385370658797501633880408064946083214407720499954709190850144128123088574498385376833293076416335211571197634904728188114562210377672148789641994956865148028721612133210169123015053251464207535790463958629859103939422970412048736729429002324101638356617090891806031011113973676141137501029233069083723064845498956105233995454209491265705191558660427253787771741930732546884467793291639463831499224936748164115139095596318692631627948443597560897521032325714494251204052780525689410395221090401058044334356857664032835732650084228719850913643296159951893162303209397266507399518552046246891568684904745034487526246177115017385394525346187640820448780892329132725367934219754136612211015601666501526741582764092904321237778233488189282560328771372627791930856466216424030305185429800373502532510042273062821157234730530331696207048484089791769400180513532978106055652526427845791241555649664449498703962363052005606314714938408802802259830116274481477778793167083199520276387708956623501632093361807349516254993317865884952426848888638959743655798159590810407246448195191249610996225585762421430030687526427016729393964029579722495407451875936625373560496926921460293232898864441966141297537357223965975277696101607218830109138116271278045449906662887782037625448236657633469817925037463277692063721010035359380718430474387527490212268222351217933638009082954833343390685954610457925842074241967695135578258392172974620508394882266571344624630834962664444036572365559610505173247248788388831407798717897057425651046295490107763897031964161782309525736673734862478980159755963445016145558153214336463589386326210748086299720332795932589780717633178615896510298936406887740816683832260288007701577303460635579589200328900716716601838714479986143032772248663558225011374926144117823244680198233553871140644284454442713197011064665368833666834469472654828520331203666152912969166507110214868697694231039026957561004882115087935556274090500383667592252519370788854411792732554812382371848428216496888187579211273847411607164455768137542039256282947692566832520549716736939775629986469660201092476905631346083502128110516320940412960451447948151666041438804529081783832607709510511427726915905927520556141484361544838588641442637302219176960447349522038648260666608364514385951365108868599576502413299477543130743563123453660035932022150453951030258885316204400954386236636993268364332586087671119665584245083403074744842157235899455820996024513920186720397175851938300274676726055027868248633836681588341500578343790395111490917634750166379887360125839010361486797309881741346921372012569498157210268559547875911618262032630929871262186871633087382866328611112179292559811375584521903977351732198935801254949396093547141873939963058548536758621857715366226982348552075712592421545552981539783596988073715951527875335468399964227512426969907533606754330856957081133069676628120041712309997182936409311726742458943730971435013155107294140520836429626178849206348279727027644680424034599375201391392707648195385737662480520445691397242121512351630292548119289116999903752250966977807693751576727756087697090245988000197214232236392110212046514526520257133449547924043913340693313895486585890528950993986953551396684994900262898417964615917496600737748883249940741220616284474606107420338396770922326046513056599199220313231732056440996985597939869803713490686932944315030066690136892386329096416291610701913631227525975183689917229326538327031043601834056951407812881347913996606861309938786309473292227277892422993288904760205891276464117076899285033415973216094756477823683898163045600347724524652174057423503136442248501442182363334506857055908410635605161284775172309441433930908236069472650719095915803128521914056373122034784559126166823319167454692571820403040823980932609086512060269707322823631184959733627802139865116378070839079781726339667813295069556882526476935198934405102119298821842264177663288451659730476867746455597913850347798619359118285939766833564784611840718541225060671899600810963955144461360940248701112679221068629066580143184203441403158408289405957522347658287149079734644086367106893964128369585681416203936593682562269076109295978776364401207444868053887741520655564071564828365431471312459724037214662824291642560270767040240492513101058858754723170034205199167189480724862242108314706092687512900989071242480354539644764625477324697564660378109870009401371884713545588841756234618334855484960655115117168113763731440918623545290691473554118015778298325005108730576644666111167658554390135716398338804090419744962708485085779090645582647373587271211606174609998895372025470188359945123071021574020277645695097204907463070049272112559804803674162111223426499518541055957400478493269224239376755576190482531157538411088218050548609883185079937325438407295240464281446019669522445713090021977141414434496201241642874405794250595673603623809452464742606912340317194279094892634593063448243195474815412530035529733326379672699372659949256769294430938540658014700623860243691722548419878711270166342053254784564082399231240061475857241303887979611423561869317169029499043464854144697744543507488698734877701719628632259310429742852297625505750202935177920047470126239696997378908314167084429101914490457214295716812462630839931110709048337410052698665670310985140704965402481774078289770689659362463318035831060409644701132523348506511708720120779020264469003234431969083041506275649519960935069418106867126827234859530131943663623773189840468011984597443586874271881332939265576678341622147166425191460536864239613926842277801609728820035054276839229745440757350427631617307784711925211115902356138780359804401582535080488159513318487374357963943964385374489717920902812489184979285081917835490980661509425308569337819442951745669515855017077027102139024333057981509959469345849338905081948854738565559738442326938617020825043112151778870180567272161813547237370156925421492862724754905115703780704155761906031376067757773267584002275447126534174632056204589835864880310401716787108652103852960204808860456786200267319308581681099554972552533917872014380821790719105945398606703180816797807129248565794878558235761301253805011533749972015420817158545989341596456379567610959321939453355837188475501607606636636767498997612468091210779043771720218445315182472869978113455496205649104596217065221631012448413135955459911104536900649270526415283919276748607632888828717957644789062662912310523697099805871200914186813495425345492094825775457672564400504729475143173617473964013796171516804528139843001594022268348579688691350447153908007908908586304397597925439943483404788708901465081959962287397567744667735567433999635683551074678913437114785971238531965186733526492931564799459395977296396166297244160431097785238294355955196448403865898390323362351503022075904962095951043915931497678804727916252240061271728423423151311681738116941517022503656963445441599675254160593747924358098124223748083626054581152781810619705848249450667147380489403499089341651050720453118899900835948794395137331290069028736125141168059403215489684846381685631943354229257110973947613549767787651569754561081101892832499554886105730554010044136600142416951083460004169369166226105937527619216074680031815063267277044545805153605562041997521556549158992720603377185543196231440439887910517322383074623373372139753717883580946576381900072484985277201325060574573976435663442877544630558340753029452319069581591876417640922283383661145094455568140394418244779084135641256072106526244232367154637742557963256142341903019201200726109838931293041934775622189004493787036857794178961230737454871800567667486693158559058495609013728436223236170215383141398887446120973887239643307247013349550962571650013278703586842422763012847976476504622858871772264554554716220855218883084040811793843425935730243224411047996064256010763648832657642449644432322086280825584765359855068151847336794571779464369893531617022607484390166514493145036016972087789508916255122779721202466959267677940588839384627743588986119196395603330512410044141521842967194565774177652605164024053866473112772144551581766614186589586388969345080094760542302248926560141620554424344575283804834556891567949189170647253528285563339634055591526877606950253859117689766408952138418722515381871092246754703937007126039888113122814869845824913332913453844079300345135933183369010544368409372149832122007774493420124304697234676853993483668180599741070067121266464998097558210243720677054466830808584679683299116659992953379739485577673842765466892300580286164813688107162215927723945147075999761565753522101658970894960451674060458546382251718665119056926169946072638930561816367900529017048159993606281817534573738629709442142745765191632592063073135893091547574259853304111507223846535664343194185719778953097967154656449202868723974249354365528347880515161531943655153372663722150606212087599052860833661353573229093157984240122998474932680110010447559146626239918058802452618624280375723391249808887310100548756921782420629059676124364029859246432639367920066510480961817900106841507296792553241688271938365759847211803963332486934090543794696525672136610876728616889738288378397007704109176702931275578435701435875777054145888769010044583473685817203394159244530290788093770391503452575719413461048565649309694919968620280299500223318752038534718624142548104074898404740774138763500399299788902236913680152468307225771787050949287373293619702604520332737782705267685122191183144414795690009319401749805757522183429465923879449620260893848915408035355207826021323345621530576845572225702334227430217313585824297651639345211498902696408162129452426734538725169328653391837691059474741855586841862531346070130497541558515655091867414330739101352006902337422623677666675972148775905839453467124531088833962774649550915697702700952544504591064887693663295253193513501096407007442203628021969338632305442014073870689710614638530865176433913640519102817678259577154200814358530754777379534746741993801802359207899932399997308337711192170197185467946310588954873853495777284132081568390868301241611121454410141961584277851056076185495728315526875151631374827984093487691531601765282222004830788460188579286123992682374592056915148417579050655649980558907168752718930992573197801541816055696743780741064645734820280137596464624186478779966432689648401084983142710080541159270893996502804995560249977571388445983770863966617946834558477873321312778903453428028801646445317871028632527349479286049468170632911129263193027639780769750972829450875829456177121362488856723478825519412407277075192440222975225399317470741282977193764405039218163252669993311133018610158232792348160966719268163231454974817098788092644996255386946075797410707398424731296209055295800919001322931322225573707346109076384930749356844859970873171278923605446306467022473772015470814235753518973490538316927717434427740222333183298613650280445840838755227553739512592835107799671166453508514852758577234219233739896068550723973042182511503541723637606016853607886996345195777776685620319374267232482303207849822086102069046528401381693562505470137246980638723823615992156626588795529450856471660807850026507197401413837102076798814858732519624458036942977977010880930697937236345710942670945133951238828023199762877001556487301789329345799321123991648102641058501039644200911181925843997670389862502045122822026581390375851324592563968070695214292920776716083790216724235833734187582217166166325228975935807620510539316997037259203553547378392660344386556645964253970002718203242554033434185000668868098654512924228720790967469906525763873833832728653888394286127733576153190012353858387617184633481511316586240226262101999501238769903704752844684960956865435164311041987615953322418991515516055742022869086751436852867489485952437426279720700331212987533452275223571756648433157961031117915116624278922636901288679610432255437870658906985582788148529310299541002806045711531058955441367381304525159585838998442492375951718613678624261549084574967491992314515504674951497751756669135782970438261055919306864843828911789700864765294368743966391809970940312920110097705714447709562135877379163847319777003672430718881887452847168582365194285074494111198650933050797933375249435766762371003240973694747332254107952447663626400414320371698510266710404914670121783299697422418816002771328534049792188455990873285922513782893012418686532343142892585026765077551526638742076057044150265825918788177192212315614465047023201671273035055471189012266989704433190052434053234831438514575153611077571515398927408171589051389544156555519273191053241991336212553006844052897714791190149158581901274353301586169255948329519807760717256051691886963436884137476052001048382675703610392325678063455623168797548680755848561365796987094002141272001592229470630178307282400635165900749180814005318448836424501565969800272795930861122962539699655131313887559085645752062245071243594342620111774895081169442650938533701768084100381275484819514747769551336213476459665059630617437662196990617167126035931778669598116226796545787190631548997194680518706932061227576765045009702724099736511048560603796099704981605134033129673708351639957053885831388223389482297510124622902619637338238506770697789404630021047255526692596240730671701562045997047685614421301058155534170712948246646565113681378389926020980668745675694887263686978127234133883391441128635246085291021146837155541861933211511707860732499465248426528983419593102995699678318711741469398562219226684693292875661335908287514478180554088281771444529668435564688647992612592094921488537910385902773444241549673016759887959482023924859519601729188147208939230645516553808392675262721436631087493351844920922645113762698380958193870557938237159781587017099075881827930639335963961061530763307646369223129501535751593502252912529244557861346150028539833442375745496514862425850356327846224606422950339943945704187840059126459930358465219739455312006503093777695899460472490052936511838098256295115641865134036579858965459719691427658081957090405965374517366260312017515629768223836416225218016331918521872742832975613964712259068611677664163809406064978572737100428293342967038418075338680028775273904457360406212246281838778032128797541555767001712927114370250592505223769249322761762030019617317295879447519545092740927381422544220092295892130975332918259659089385804286322740399073924246751204923908132707952381825650627989264924093443141528557210547235837460570939440876474811903082599122829321483515287782432653808866348190402519675525013101538762260001063674606532635326930548620232574996582563342654914141649423782987616850598792928144285595368884465896213601740724023917713110195772602504712126119723065643238084097319987760942332285699036717871705148948688930436186056738617257888223543998182232804859131385193727866864257061187212586795022479489812260578589863277573606774511464680867492558913385386881298243126201395206067115761005962217434075424356108751157157448131347694936258406382263162935203451688762688287663072707617064769360031463810292052865189662833994486742526594045973040697802747710374931496914201536012646524148226839916614995248402965854030515745097232898892772002501685967514142965037899277421850458338962351846674278371706455690532608635724180290327972381210318767729376232908184891948727165845586861813106016758667931188503404618185841363611108537025504168621425898699670547392178393100810665395055470813254489516965715034542504574539443710691231721951348253531220231503734587589789009532868017685972994310143106926390756188213861763725868200413078767664639152262348240231231314234616853816875971301760403830232464733558424461697539308596059290741174730538122161947083623940066071976623793419541242214407086894675468975992929561079844094858040734237908018725292565073221691885584396106161294644943360270946736432011237646665960120349789139934570368273249462601600020769467359596353766176469011295715865504677474952575577054580203218214100950376439410614175053950386718728107213017153427150546275765765266650053891344895653552654070069461065215135995920522243618633771434346572752726992501849893962438240767233266569169021419301643732421161237011798550651742020736831372579174271298657351193328030680743620122193153094724173659839820646181956321725619182250299910031563421610984987631863296856439906801088965993376382689142165422091498172985081585038785543880994859744482697714560621635672319050280251340424519814101762348026489946968078099491006828344596434681671504438594795534955219177255129797862958980817557451102665482034808586667643748352801928726290005608541608970854121434978664993645925673761917475902090763194580885608960150937990731139603009863095297769482329005079845329197271154177075385539907288206236274617016204995603131585681266731621258509442221263616965543185475369611581264623080457717383655454853204832233694065183371551340669049089939005924243256103858888156356567362791852591480847841711442418924986951796165947731547603637863703552015872114940214024015354855773063070302806866340826228414717618473817417552051965733557174143804575788640865904360066804268070332813048927598815527337420358939171953072564516618395552285165487324904057990893474526126026933620724557333066939981951573763748449202872416287056406862058547881076832433189569711767472062841808230729748628688797809582685853098432259430427400946375689298069421669937136008441132025782983311240502814639038654451370518970520671646153965433467113369960888100527720629123134447008754558939340691024126197839623298976495120760724889919271948390095261103362067279316441945640331617108996474417207568551785254358971315777179622985877429043751773562413625732502943416712407382536995765116376972285176120874474546761132368078121858184721343870135407053911447910207644875440908156801385830977539828621855136093788384370191528357764973574009270441540744833584096071682293418587089313509627475978679389001291529135023446034333257870017551592612105741857193846618039702045107805302494696550263389540834942075097757298103167625312355317011707417948741102543467505145259092521584986296450108058673658154190817314015236654666466473509071664798676498671660081024514277501986040105531085426335814987556186262320035289636835887478422264165194400351541830669751643862891948649247434133168129002332312441695810429409626675593022148349902096291928884547512517673531821293365862237027340810511916272120335848493841143649916110829216444488858850080535014815389666037956211942876431374698376127949228540143215980364375989080588771662903764858671163155710855986247475207293128116075988316154376752816562657134381732883886163777479174416723812309038768186692643906835443641114918771333715832192900721041064852386776982376118320165860553340819076597015081716956613467578099016463920468783215328065608994141014030544427504542476839023948759989537468931942724627677753217436005785057889691708957053303390587473303584337873453491175404144797344300102323953025762481646221562663640991363102858000829079006314033545886241669667878210823712599198958669720606406280847638166581818648077292733576168076121515298814306944116763202346820638471483961660111311567285871340987736044371507431604089522157374621653191030542978387026519380281645919246352939942276382046333759593046381783414803371549364473019220770352974045857960402757835552553919423019790011536211876476762851563629959330839592869425784739325455526342748601066065019864003841389260044822201266309849955695766635507260317336482708228868457987628426149319305679486410198440418001916001673904749247575977037452702387982880299600189184498900710781352060867390434597623527494397420221412369907868132579551124721230997144424474859196614579333897997459882770379769541041470671348901283859346377698225787271562846002539134310272062652549443493812518078716684221004848525942201743896019872027146485053260178778766386104947826818345707416850039118978311032967342870481005675998465239826611537284381752429208073264598935987953432695155163235272204942529028791921861308132312331792668720730484655531314279457091380480221694345280136167481250143154660973706178758850624350740536621500367888390699226556918291296077463561529786138987364875492932157243248246708128727438304314213322004848616744172189495191931367014485744318249081640819203534399883271098239659729682750516595114835495486494881733896887602932906292253599365289333935538983895977365515443609897103540698226400696359096230949622958609673561522801517594346458178425813754059706444339170321888176558327614886770607048429588640300569625764799005508149524711327404827412856648153408938462740817085555573970017405351815596308657221052530343349423764395992320375025529668983900690127877827261593541903795057067581032136075485902788523603359825798275372870528693327997829974079531499074115322181979674926564928667610215969650815931121516784065968508196548878746807742267034291994201443912802459467159563568874540714688988310269755045262816346550281123073187729158745067867352604220948214690064865161819402739976591597692300392739173655034282473655192576673475997997617974185932583172749862451163384285811882325968340956027080687860194611409536458988197524092760350051404185947096024706240484747455122629666400612888731625856497278867632297279341295774150190166864441627153679213191640409183667646467561373172668079382708193610827434866474772221530596580011180504556910043712934350971890380940979548715868013086340747227840690008860685728578493588699057073980374244663230749916121349594526707476940563620250278098174390752791496625923276794712256315048438079150715233687018215508678486932150721065823287247699387521317222084063899422674211396251487959187759179714371756088148997322093837281829741282158204499760849133638064262862823861009462764291562176993819488712975399507437767023849340065752862402539565510995416106671383336186111892414667794305863103958871506080969956552219950102247264738200561686130347640348676682258201940821104277651242957881961786492147433095131039818267534116158886189618673896792781876510549932997408048212178623244544306648249909062899265713858427956742466154519550056695910452397968080291613375939136595380649227147111052028715844424412168250773182146701521920125702767450579391854486317935222288154179671135509854414657026618785023609435323846588981288863516496709491651510656492591516653706215585472720382791218919257459608613926031806478963874413530087966748082291746679289185261970805467640602778151488731762835544426035508781071881209614683097603811338512843170172936900307895813526843026297901191201336758506295273574647361252951837625320209700206056964567554905508580701039110322163349947119620921672497578543164829152055030636703665147891585937056498127470528249731861274137632687190369566637787566401136747784556992674601654404693448508190048298160154490345637988008740869714980917777129938229555326920872219250272641039958793199296139644235828035584926596820824711356775807409712960207145383879122796583628541677068188756889742519987595081845080091278975411411512720651904816015761787392739095777489164815789605865239230445647364873706060284190082448130561041899471782751279139947182941363453892669546788113065841897970160554079221166584008569451018154273749333643074644350448842941924893075258431502506099484584155349013671374631634361898264856703513495516725312494360964757939644390040443634348004330347043546107087214462202529262467124784723361424731545223989228010560256002196786820801238648467589109673093186919623009426335472465879876217763329927324874533972626946321771587496641411255219709613846492559538840659494705062637436219963893166295521303556742897152061287701685818308642606898330930815378259371737188136028985564859622221402794515539496965055836089053361435186947105016688730422332382419354781085549731719364877141711226071500450345154787391396130758219349101191398610839697613501410801604339818478701509292320303526980316612797324483118740388433551879470527683393415877473878028809298401734903914567044930767085168202511767413586511514065015415571346843046434548273226340590338530936325114180580949758614853239295893086927742517153848965249079271922041520949256320533315570673959688451788646648028797443157199109466080738077846458259246520641156804009678928276305144916440946351476086722742411262849045616114843791849115216672676697568760213673603797825689725005401635614114116539047697925480759947243219026311126329134754495504521590395561371096363987614521903468941532564569310050751841001177307379362629526281162197228777161924328619421054155563438767246189770278145532523637160539349759096254014354311814255872226939794040484212386924751193111066202550323694745717372934955839561198591826680611344091028346506351690203073194874213312076612168770179065477878527230888870772867276319034761691706615145852948785671449138239315169416502508579225071877806513560158190415460108709710764454027205033711445674047205546539869155291221618780244787623445510146016328256878405421494732545662765653488076340067018114260638653354719959445703829316337295345342669896876831701535286114517775241570988686063934972893355415023209439434577293712388407575378054509252693520976172736381301368202149765689094832550094525071909896424726193088220836364822803461921191974019343046060278996694752567841256976413749107749993558874346894148125102892291172695532814242822416796265041029893674857956316118811725715507518299891190073625720453023303634413809279010422461187693887666771091565680596258140890078023882090971372240142061647634622782496719312198756160749770827152186452804831106519854560560760641731235361887014894927329913549014645729324663052706033156920417654190822852858930595983704682191046198509479155387186696518017192217994851414666151216657395668975680199663198006444978358827162230815480725526124879600551098168526043142975543569952518418178388262716523108083317893682670967895586464171839705279251218086767715875946914259609165861221317832029733517180866896454640257671547984191816856977200907456784680556769770916830567102660347487890140569056392802609478906503913571170546875415195352163860655674022966419375152856323561052366518982327779829774033659339112065184467736996576253418200612274025829642405731269766089868172924973420753276310242956352880294560180962435502843056987607087680795222739948073801737186433927449407069795840111339085717804656684359271796243612493082606680167264432518730432339416455059804973003589609225926203148836302830322804379594774317585282685318674612236157869239000401950729473882496986072980684878069897525956489777727029559329330535395360350878100031680142914501400199426729708520420566779597570128616010253845601970999357762818953090221906325823529575016733647858272885260021258585343298328307427586813441134944033140630128538526633394302161376864016842665612271002852492366876596766263277596669664678253970579127934903015251645097502862950831451733908109530454167107370421775584426456383837484529301353354308507527642858131110652866111916466545460338563755267751731416878928002664652580156785606441244638108014623464494563004285285113892984205092823680904293236764555250092567651608157634023846936170306330135864652287686688523566770491751066203685029064016550311615199549742600039060655787022158052846567304555187844301924640358172854495171017486335163183824809881080246995812915265193266219757105662664455686577378578285498759601788477972465848850924678698012222771367123307957649125442078064929080395474555287653486103482350988926176491968471614670751662536925020699618350223471719575481146209555084082656835036671782906628834601910885778937906242198576698857318634471452337329324366161571280382778756736244163852187481330200528153425647610889079104556184498037185306969294319465178949598243250637011943651929040880733819285109703280778804903913132975929034335795468039803722776735731660138748528462322478916333159811904912651210962430289058571319258624721016172693972082869521128134034548143805470092913089082189825733203992991568417333605462360871527613273994192796152832211054414710603500640723134328087528933732276901054509199742749645588800174361934868932768019458834944546365416884670861349509124824486505208334046543477455366256641047331425775562680297888539450820036538884452198359379045552358369914685934944459958631407372886975045383951078681187296342632087925915681480006700363200470164846885992459383159020854006779584762627783454459823873058302697930012886832115658669146028851598729822858604136732335576583652980820526466180588762921879022661282722783851667597016818483136541947084543483492432200789943542507824877515067453533241836453565861382511927018886483867544047723562918725765001147969251658465070176998479835598711213851803576097483174799708827964592328731447670899918255310928808330506321092011702451738093780243732132593200370194700025245066797242808021700890500296806756165177804848311494335787999098326335828639072288442613909687515103787007878011250407968733927953129503721085253952592188601501353952139710775298495983037258879232064650784490836228071593375969506755962162559449663706622036690251563414479700244174613964251717078909335189408941934845762144665291022569987035423649371908052298844960291988621260815345106010140011803435006853436286323402033119344947297593589265065527239578964892057735892601949112551594273818181461726024626558571527592223338966190369827935691251918228937366450857219360052056509120902730838359472909498673357512566607342794707462834461041452514053903287841169149651696666702373867021950469063176828297475260529767413258692314501317912482556475185233231865807274819446334205265480531220903552709337340284654619484787241294930632303684537029053137430830432505547120373269768124145514253266170521591795539333865312552916376984636309033598034324130069669164763334669223755884690119202246154913796912409135519346344718260411552429177918601274909997180987394266762391054934346647080745486821095989614402322452144671447146664633154655866714320908215762761160577892464187599106498685552213681810496760384769986815341469643644615501011368475978960281400086385625548999578771237715740176465922239098758169798128534112180206290115995678265164071783063669094196595331413692062004829444978608131161759418430592322474123657224775838390418114907323693600357032137056959161416461470115999948975352015617243470590718733198150631497097818256920939829514157176644220899215910861625595486430450071594238604947280427208170866719731982498661171611302733679467715362763205361464614875235462821412922305880606310584395240947898733388059131645657936672007921949657828458460855150851421335107090035775657621476421948678541082208546797951979399077695482188985890081878694184988844726544473231722115808441911534275028578795954557770075846753721706043700296757238837121713170299743299324935539056914565766731842078564323670259051979202640734684181059658544438415450874144492711004405761445057451148906297512857709630566781467709624963773803975776434563462517800791877798198202901601183707896656997430663414087669774691255126365627935443943366436288335601130966364142186596254249796281756593266608294415932075950776097855006451501947084642353119534665169053405683304056705137684198733614130961762675359474475767414085992212702682208726285066563247052169404425561450874477470819706913924896502215179956079314665958466991383192688899307352982682717164490882658104835130461142568861010315380338810415237804406678753145454315154692089545913556217746483432476933194021297877214064553410351187225627546996116399112512476417058879593946462254077875214632746768065212727871577115875726143700744684413872667922421497809969826963202382859134050878706701821107729986305162791392327140190213910503389740353894546656071106917296975829702097092810703983215589176989618703652038785832326083631132317058675921765945196666341911024790154305519529410061038316262681636623266798729902110206636624456792842490544653701976056783040549228019221630486285432355610984716093831144022602968662806923308487475710611571156421520591967937586491472866455746316829487078665900823846168261050281461345535310387341420452395539995205168032258956246056359287774507359872720350785833912489162597670420863884178064611404190917462475719164091356931964712149392092318519456795642922012419143791449340801821269763145228247253722889849620650255909056293365291709468851990461280677098139783394864643743490159599563388615307483814099137079489663450714964481729771007552660561430997624745976290613901750326081386242690844053294476891820735124119061595485123053362376519849549336934431601067708252058357206886971599803422452303338427789001287336825853099176560736428046956229786968723962505463694995792325281445514931807894406332419339961887340025470887688946584358516494696875505568811627023655856244676411144907872026059574475050170363695401921193824198251265858143846383315511755587654656077003860686211016399749499005446908943230285644118507162936765146289218766227306458051114139974752326095412968236580892309832203742462450840164336180953165026874939788129434111978879423311680654023116791790273068304808229767601439075118293111616643484275117886614013190655500289655647847475177909302669877061992210146647259688771645678547293238636182238012267945110699760305613032845437472661959507542436113489557811730885978459179893510297093306313731799609984274772266283353270360315411420650556712157990894849686644231892056837511577710541460683026367723181647868390262118184459845260315053207651848161934147236862035617322488185933924647336321316175385195787704997280644387038023725133028070409107846036270056820689035494259929497051459050151527543125467336985936612661174728608563643102517047995573021121877307560338594229051517113242751068723186915298879542747055515298647766289260962924791128262636879956400825841171860555434597232369683177751375151146955604868982084393058262839031285392176437478814700448445154289384917273153507605452902120853279538978477905711579874520113530533188340328002429521497759507933815722564954078981848165434073879681307443487653587375890186416496641805406743878839240294916705396895475914369335864520790637142870133448758032472375618617176377897351119625928820394811312990843394220121846457104248431421734643538288268513499011153887763459541256967401821103916990328303030054820694413855043766660276848920055910082982245655478098991979242801515243905900750829352416968069466671015174174893294725644987910210189129243448794198291846647357170326595494548196433195236646880940708352274928397166235362754985098419680039541965295349142677168204169502471364911828836231636424380241652862002360883803302431976096089522071460431336398011951599016621961621908582814179408351968835595774206079427497415754423784169778704862573033100251406165933721897036199417649831242300215727190385054435596589955637602485436353693567341578050118449091396645571908058773184422275069233198892707150290539376927109747857966640492109631805120422181803366059463931009702339205622907504110915676949261077272884300620288968493304560813687856025944725791414001145842979208998894274043494018505761597076972754746777771469647191964419095054737696521182926166747532255080447645359660318620421750469126043982108978397786743441821941679574974568090072479868465164412379387020329614779909262288153897433617807323272202360200217478433335070036473391355566799200625049541411745876429210009706787427803410103292990294792268411017464628493398587337109803748274353664871690277268035413645923473921424001645377664279801266298816699794946059073387170190180441818143553410771175498598982826994286151417548211305323427677732864665175906554629758373764414165441224469538587975613069089280135496699065988993344882321414655215443769440574092725715346714841466451957484357735466505506388297060953888388999357983360867521281739087768795735383218957854006821618786520281177829737133341167533059650014840250079872707510320671787336117544657227076023459703133724883988207829957912165443957393876972459273963653975151345194369992951330782843775969926811792706562420076854916405523003949959072578099220433063241660372067887401336664455604878686938869587258610093888834261074322492985189152791532043828656491121095588892523192831359274160684422270837757592258113990612166045411397917830677273543924114443648645579581801877802459472980548075055083860022973813217563012718466411911441025748603889852529025061300761958652242632357360714941756083607741723175140712575432295029811715608057747242573837604104707738772829082541842351684917461765023319038274992420444079102669841832406860804888642817021632571906076741769691335675886378440636426593686480357365379223579098278953927032905085797642375635140312641973430514782164034235079309630269597852692135909887474227315919201099179488154054038550825126084654276884330619770480817028822829641989676569184388311735905025673542673859183039812389280913984063085329204025483463725771877624387950470050201415113808299345539988991512927800803517418589173168752759326744310882828820977863728830462646655107300132525073122916339935264971775363212618155857039947436020145938756435831805263866821318743800855235768784680709332657840309286199088228270620691416138051227992587666692892862894900354936875442515722809238776288389507162806246525855660135812064069401107339623445496612781438013317742473295799789316213890765170256247299598070591709535931690801059191743184998936838591244658740189155262020312495368013649869532388577884469327484914124993154177065169352192540838061061867860281620817652427128634871548677388062114190486716199574520514776150705747581668747659218945443566244170062440279429631414138467959909126353578082843254753266244653768397332796590682800671219926723186799720969035256759940009092620074881668112440352228865891024792557385770023639876909941413398684282763614725118567638590953620435676008619255098416319461658804130316481743342246077183225888213988165280427840689260486827568368330207696975439180043598482827625352226497835330195521152636869338644112157245539354531842787585286911445332025576616398795107878263289370360360867487980679061425203720814930926747043744695391671804126820071397260297307303634090083679809147207795111301677626155434824954123951098672122476930179290601946959519834372514333525584132470687885363770409023148505170743949173560017048410665798996902129690158732174142185756071471704779891888941764996004842517133641530719457207172978653817898925955723873957203724965957779755742728545595410060753199801341532650949222825594733590392808652169707469436691543053524449493524249891327658856401893324381854047973017004304403497223818768462247014219157564977041636358235913725173538982900048025360358333679979327367450749035572799837032194615550235356067753564135389754022634817783780819366491718166600720444205597425847800763009810231942540172125868427282772007408697170997362112171325298279386888720549098101122648553463267201980133624542225593353991706933639504091642062868709596927682287614925177599325345102404748327035189608329903914503193225394632734116487678944906847589922438617589155009637061810918675487295836941136678204063009211990734540233909757345800659858645180031966237007002912221739027904915706043484135944344032275278085068211057380868673539812593167578333879769297104325942318365184967465350810010057407761392617757524302959259210387212967178440650601228648812290400185257698459582391546122352669669758233861641748415239605809576363599613682622445303790203488984253489286456516449074758125276175066199186476243630198736645489070765387835649984329106876617312218286418137192400662449728559586812744581296369181711415252108940046373881320655393752752063355662270394205527092315697848820644871833512209044771729497777362749428867084835248944024022376518979236028671540027773054914573303227775682351749390168240415843575235837408821284332070659697884057634178759008907662212255129750100236424374323854645910162810141309090769485023815568678258679394224913174518258645515588742065455626886030886607632557818659885567959524094818462930369729081149500405793341915078590313434990560560425804131203044764833696021356650885595210896138138916372779684685544345891557340208237542505967575842919408909886967671248967703107629319577149543649247639798496873864897564661960625821406108824767214558560411328228580762977887810268945454486377363025572982392534476756797774500327983719652173443197189896036312107089670469475391485380768432053661093538249354938120344926963084213926225509312222999763440911372313945810890148135878466190275724054870744579018828906021528685800264720463520434949349541397612417510688555994411090937144583278517928126962071462063462188578349620541947609519877917744973368576733201276804244745114992176502880517234796326768523705993983019581177450073138576987814394929034441502457050950996344901845121420336243323784127464334660720033863112076150995284552823064450799896664348125114821203163543649577563686474619353637362986872780114417291627657889062043813833286454496310828611886019690741594265809683147697424497286881478694849709161667865833039780350705757908216085922389468033554219717171432198148207572650273755486475618924183371086356099183766648864999235426281523399289269041892585142401054785535200345168045972990297673081549298814168894336733086539500675968529488880593082815372156582355625500884965948283000737254963903452458748300640397251498582087610579922331755359790443526573778100407588627095255641130085061454642013692821874147844108434192014938918885590602868092440909869472211956329356185478232576815710461988077055241794931856693337358204226634321635645226445122001155234074780986614404276584293713180498177982832618239226477432992215255811888719617627651797273107764432217887543579585308704868419172027553988941494811291472675154880711245439946222351050513221722214186963291419418431367648736097597088525096094838326817802320610545557812353915086107105263573112380995419910760840089851628435295831127798142803330276917768030820909469028091817716875971632796109683956334308071243077979693041458746373044741882566523400924883884449489508065072188537036016802378282247775873913035226140828795038957993619491375316206429511094875375560238550770629648880013566537187138964033584106369920388347238111934942598253147402307453485457594346916367594520664895945941093038360745922895913655366284875646757817864827733659256424610167545305010633509328079695520981171908119029494714893342372262045067872903339362582525612050404095887607189426182783842370669940991842621107332594623662233961298370940412385224271287469161053941501365506976884319401343088004513548770517075282214837703119854705576567672372217156597993134175824233268470996841736887504976588465748905443318358701824219801644190377837255658500074794652176710796215736759572030672653395708910597149872518130280258021965619557225157284979055715226490723791133413344740838737107832849597466615547518651059031919699836817062675276408881730226647045072305374324749141467253740226578556505146793519128170046910329780380583585582396663699002074845596709155562599426096106035485073367449829296703920386894881271320092837311023423892365698419739827005090985216399291966238295796639079830512916478970730399388509931357589381526416594144233408654324312696698181685821527394679362468989019571165762245370599184604692060071409807985334153733629514621665802843019874704857135186308167143570719801123113510909751658672326215821283552180282379663450971187652546515585312928619373685738625066171653485876828777534671481298751705884214605766241355926441510250342023150806664447342243262031617856404788344224949540332552329176991288347487201327732030111162945883501132586805750507304324065262937784301699161089927081011253060472996915451643683865942959379185065728042337398059267958971468284828360236135585521058238194220740600836036457250896706532675690186602446431944204316532148520880332553006594963335143336275922208868876779797252343613218266505687204433348915204366471220675113551881591257394412304966602023981497720327619958088214991969450222044491684458655303317803035092892376757451315191369903418401053025189617167196997048475008329986966015180337178733652394008118445325370144812567233957038141507123415951467487126556063982637532507059523950436546114086478975950735376917995182136133736919304900345191416277170626124104542971689122856219396397865215093813469378059212163632704400187408200813772735866709180421253147670761787148304496762572112562419289411362604749484798301395174772349916866413535022449500578201542811782194973981758114221727979684827190539285787800158997525249299497670902330546060062440592720613795638825703024696305291397406295822556848802379108987211607107551254415990046453634377021650358613714093990908736984301228735370250190845371909127269051565212151198128906025655655222850918183658863785113995108103285152518248022209782650538325494019892203740767097717020930599929667220127784971059172126881201498415230097552705913976074936172435873981286709027035118529357631203261333534416198427711264482646586172262106865401739203312008237974009772832265022528374047186511909356684947988973681717624220505534566980337529744588815530672369153163497216247387257400071673173883533793471802079643950353420554263078744035438737327352100605413991742952100668233761222152121694239465347244882689572498063792666679844633296020274239782986850072859155584598543301806697451128874808817638454823271833261930484030511044949567193053378209319219591947436769954360431260017850804032967915622885849657946707162628634268940262042126815695449655129703416488445433822677003701087486177205188740686029145850198514227894931031336646871535472828117065815226980678668467209798401698462306060220397933575972330684091954409505331886805254247082538131078779803554664434148689061450634683060056212550417873783886903392302548739681288790603186993852568184420201611927253688319826999234243222970021075007248559902405824596334473678692599509597041677995181555490245065293148680345035166224419733315280894040476252048692696234497263301634059082466359703936453671142837653328849003579539336378914508527407909205392078541126230082393176181857942171912623294741748297663316010510478130041562521642457491528344875577945794635618340422842439897259601461085413957680086661271532505945221628350062496688275369027305019858568090656643400631049431303250315824644217311451359367048196528612004538382083747054176700226644461415664228138666707585770058167685118654180996222813080642280746053683647916942152469436546005035342024816432478708675123231286198154649076236519070884599957137112731254653548400651311949399381606153887634501496925580667575866739508735713342710259529068556414993101207207636814004488908142602268530880286412538861992042921274379425084041350593190049982948479082222595142033810474836096600068689335818871523220522812022078338100663001182279477829863310205319680410282620167665514673610190149411823593250303714154911341815511596164764902017160219359683713190711590372610032998937706318317012006310039687416206489579916781947740240016704932344754994611750713857658050609319566870702144447149581992987221745209267960523492098551774785569581539658988683207863752224196026558364531725045956868884485894815870310486886536612801093699385120472829711259965746561359425413204963660891193986080774242790979482344921538403208994602248406026936853296501300740264355422850804376580364843050750100719238263689715340991273441979295634749218110849735112573321755564319570281694758032217437136853330897676594835334165899241274708688634695264078762576364040566836111687023283602792648077235145835612041442231866520100319607975315201546141670088519263192436942998154071826822960424591462362705258362727744133881626961000267296983406741156854619354359070960397789136784343329594946166507030388371258603778659129530808604898382203826325789343342996168344170937733920167208800728239692050439683156912671171082781415702997864120669525030613676369769185196326494572759883696300650436940210046071861124385061271771880413233390489864177063666631049550156485010417595330116801492573827200972504398405986252568876019653475328672403528709039965671378849901337861362323055357402852153070241422267389252375347905720847078592261137996641120978647086150729054148387358444794322866304436818670279617972780309480489437547014585017149596871399099460077748460290315173201202260063099969416784659722205082432145303187497823048639621588274470199193088603945337538129360757397666306846090447252461541587957686606728802022790408973511834057015273181298086778362966658155582431591531387178790002760942557871837698681528493969882314381600800323075342565149804495801617667375965765136274822128658875858165499368636051877065278271803989739457586915722258423801980103188451909053168046671030382860685795756083213207678538678254022121372840718722433961402523022660743461223689328140101180469588636758697649945335255468304338137575558754393053798867058496306953364555081206644341419794934657311900735702501888472178627635408274404306753586072378227166947094312390388675024062143698163460123396807886445646973761978725661168215382774247398205232831567660641739961780738595275991204603921691422459966773396865520551989073380109844228733305738248267000643457254305345896300153580886931645575240495027209085497754565628609189715747739845574637900932791838622101464740302287309739810105266413725850243984608369138395556541921479203712137811646184754636094726104246139135139795698352401505996929229762168760894109232172366472060739953678655789729876180500282103378579924361573970849544219463848604556359550389687228808014065399298925745433198464634241698378944777509567468554572571309730738635450385423661021294255241547418432442100398375648848317754450164443738047236869389731067577384123167152907730488647211611322403806896072423336945737129811006388414861071891642617231472748879749450335976970127507551954674803025253868881927955686371391674434782382583400949498697473062341554272516139324927929679232975581518636815652719344195965027668205183117841749551897268635845826848210920845307126990535571820496289127337550152935150562266381880217453043408450832722198608557272407354990723798273317616842396427803015446460330556836410506215252512658760115121450346434454694762463697666833646677773221801986200229553638520109318689118918447661750082830915966383204908354145357288030927884087155192400213914026010296800541829352047194505820362640902735888533512851300328982714895244392810355513039425330009381047444782486037571479777325064183936178352534338570958090823030125336030497713221162280357937317654641389258143817888272606823343444456148976835599993993021513900150084893798167228369993322947296263628082074156386915427135067529484507763691102345437063577592257695689936745587446773882720930422034271380875060188793523274324999772172057885490874084224014504338923366695314547002094985345845498188096996764165302837088920610675641377566963442695021695279228791503058663548817451528061893381064073359061676738678276180026945264259548356254012841714822334829642284484264596561126326358621216405893321285498187230407194393031222261870273117843199944386051104931838752838587484135203293742305208640447891856643002595248297289937171166775577315614231061314179014170414568462584998916430384199430952927560654234395227800424956124528406139573927623558786705523832359501928434783865574028145844710539644175443368015066408447038873036640488916791506904687329039913422315768703652777292412098318769726241075564080999133761157034963661504838034242618252041808158072747197758303621584187766162894204162255759046923796543564618910025632708556550807792143882779811831252532780384098811583759153089565330262606607205331004719949587291636799063340748803296912979603121213677922356144954312710302050940643976351368918735727689097367537865211394400925446784203829662326442025454639321308438295482211427745112967508235557409018360373527448119760168033415749491867509245782635833383423273785539028894654705266071847245321335903961280221478691808543939612972640724254944797242297345871920441440865399489302603542910749215671724568303987328621702119123796777375285968983056349846429840597306419196123886418978669663171085467734980276719226405479541240165959336226098374441303800075309098857191139831446661267606360892665372803211431429061124076121920338710667667491081603755415133836428424854110818826606052480955972632207316941816081085176696949153389323411066634523133434891955537117102315260649894351159194321808748080624219749048372830930080142261830398083313342607584386607844704689107489212626085347600270168562169646393805682914650707417637595655265465807219020741243540994410209619217342698897445472427271398978853824672583275943958144434371429858017297447107236442951889259998765482464017986988385317058982893571585371804017017977958883325876826154674727202369735078494866933195945361041834919747987260190984302693815388944393164540011384556377077950490955568222741206217765982661010320651788565076642418635556716755380004673662911498271533288521522393890687969363844777780938493858613374179033223886017807023526237202647906626363779064836407856173678217235921469778543135302108611511481979050900701052921897789364640283864994113453319570738679750165993540151904833882093556655657791744477228961838639822128894480414828098677852130644178502718822183337405993394901024249747598851627989695815735063850080066699539044441135800969194435543354519216533721814820223442958090798466682601635001509884357267278317013054734433469727911072636122403382857425007675695402199873013613063298093090664609352965417944025294040900868060544392956545554244987997750831593227472183136324471673825868354041308827410743792943434431887645127901762640123407372050427142786593647335016536971271926881120676739591644136437187119801284762926689876622598027607046069693503281303434684367660319210749734650111947104548850639471578221576629751527493932383965605716833435866247368939814320022483349020576016437346471874430654295064362459312316067620689896225410757647739623854076891364211801728198117537909254123509578350212005186905605297636497871197274304913201587730863760480906236821017823117075423970341428758482359278237742703445706445615162820384469333706331831011182644418424189461793773865619415900136590963602806684845560809146642841498588831247973376749122488654366965595970495503320221747294424717084378512881543422856845458639198596354206264647760246365005543713341015000671144233219220858979752401578323225388974041184427243704258276148587559049371412822974214279456036576178179223183404747636659183999944853445487679813917641181025137952480672280583569128570172935160716150386427178748301144050166972216187786121854083217442151503164864187687144719473185323538574034598081161947957385480411364566465206780980477547067318376446695818542119032482285825942906732427077526781868837643842255960664596066500643555453516585105611547383016398412217601043183080857570760258715412872388854031055446795834428742804978395923274081469991113394188342777326788805072427268749018115795078870077114668011793677158451116343639828187183609572632221578016915938760998524081987249411954501840824793507167842081528805926380289777766871921524888379998917283862678744558228373141861294239567257326365470874138252259283751326818458635243678246516241915098594412151955521779243446586684520648310060906576352696477643265978448604535965795454761263054722743715570319797136461395585075662465055984378507043082389095920122431222993532547329169088400075536338919811611334154024481412690437713130739789640146508254363188082635551032102441801038660233064217550380076987382173931971914958041661921155654238887228847042864493078135099304835118284909001268442997874987586543912561748686795200336659293772206817615543882511810690060125910661276152799295770651434792879757253877200081847223409528804120108453053059146652325260071589358729626551614830783950829747240606350852015548587863529134111856924058950427535161107085786505352007173734447995243778475745486624514421708181110363287248123228749844882257309549622099438281241142432315368884104951131608326235464325021048708177405696587383989589872100418347992200470508445006906939565646861455133172175648505340508400699648827766930589091835364510652987192471571079277630512919118759647097063498957767778531016415388430225064448004639153046589421848589432065338979191602842363867444841294475088038841366992969477324228018507994062253525818538393289441103845937424332619581768174155985611476374804015945662813245671182416918625544563286508361461086881916420858553203814796168842821292581466519732461723219433009503180511588529000316103838785854181036016082875355050307004687971585426176814720247840602695376892852848172309942019130576259763331500580637900724052541677665677261820432195286804753445476292112157597646088302813942237462038061689650149858370441635721604061692339404242830946399277283958590583663392363953256283585362963964609350370277882051146081310280865809927706718865238801507869094259269842172904780433501702734741516674576931285968204738389404274329225900180863776615550449199999225749000444203837819619195369336967457233559418456315935920269499404962271326900684363946219536833706370212902306933013079601628233811456097323083572173620443399634559504546080264889313830672852975834948608095536872600085266905105447645673368096421548456877473155569232524168322501797893798472324099840048465428255672471501738048425118747171313009498497328877322108322344533891791322124935988979840375814931704003144068028728121170918284512292276518571672964698256998072227681636406480069472254440647659790466355947092144767625941454201985393507448535539163427585797678493619918983973633878370374829009419044741458236793216520203827473892671205257362667811847653622929274091232465688206680360944763836733216062432964029946359407032075423449228233194601018706888281933213083877777998018034486108623030483940269196808772198519878535474769753730469292882342847965285159404530719898418620543463742732701580233264030725460204610985892737718818462917445573999221692542389547975018564845443666394514996338185485943924329272370382047438875906800429348690800895117757341822544073249620677806009631438988645290515585178908245824955969864150011555089080580378897249930052221683234089707275795923777256305552729647381607918782811179702310263653165231491639208593952144465965344026013183935357335274900541967414420469700612178037590062997074968805885410961806426917556840934287997593722177952086450643377897228155378810637022929729585394394197886874863687686691100060789648760792144695167476183966575070543291011544315484811656295010597533599703132484293878745387848442612089990030625737649100472862572207811269109449452025676960236937419727458719679363834852122979649107760554577804131555241426350271028795132109208694098667106645508890364138402423641190125991229616143042389534669306286083686247215935431098608074065816446189353741427480528402563140854716992264742163475086351975071813688034677206895221490881814337136484979034448878613204355298500312765033943235013516115318845857812386702244191098708848389429075200232378416842630444789171262440627997088733111460005107939638475831740111761491428765912054123109929304679110397741016467956244988735731225787531487084222462662310782152890580130614717023026463558934000442170552694577589262609945530011842198408056454591305893644279273439210558225160865941752626081736652081444262815252554098181171281129973159170299963908861528965826391070717727000463489445735744120059540971489580142622443440172059281204736229227639229397421866913837862210060207441191541744137891447937058014762559369101775117888884170600717778152985116799603688711952174690738929577236939607182726519605774873059672931623008363667246208729084078520815317180428459138634845565084738654466438084960615581418173683744488180489605103082092096986696189893335109428237584189735769690303936434744556240604703571197079067169566637306784268994419137782473845997197691920547013057379670367822599683999585129926907084109051668521346884365953732198158115051400032873046055633092638649782988183452621501626051464117222680193061637637935178363215007687070248106079223094813711935805139285268939380590548598358457167149420811954883639703927409102807334828595322785709127873617517950837109906973944115002972378502388768688227718686021318782885782274110458090974130217356482469826449118023677964031295792515662138670654965449043465959233767625632879031679543153089184879590023411203847463074387285843668552722530350579864563625315674392810591464261842926563910396508263883680251807794323900036038848860826081957130254914166394371126810533449414112474652183691497459117229078648242061584634533974320278111550152372475058442859023160012171704469249441190568794230870751672720676509715871422280652637661944172746489548422415369516184075599501313090049207008855064129899110382081844247007282781772709030916696670279865747248711671386212497184580816422537446913687827530060208252506824269027513433608168735611854214203492900351554372432309777320645957374470683310767577708620851966530698913529770633885792944337653149191296312288329774663027742742343911754517900036037484539560848919713348108927464871503270855346606021898121125434822846934430071361168876629189830641188480388098897961604681461087654436898502627114765870998966569870290844833321570712044255636297161044299002026148840744947272268927454783503218336355344118909330049166978337329749908796518204996040557538471971340423576616403922748323231682358343014594765452552777738282163334022502088186837907905697874245250804745933777353762470998367739667894252525775439025167140144484217294594895109387350125477009991970908341746152173308190730157654896757304286248284989124698801713784402209556768777137191999729729420427912492424343074788887700813727091056121907585408698068422072882625141521074117291277180272272719276843763110734040883096123798601529636445301286594100551304505707425304154872230383816919835020351065478694711874223187022122124844014172323633365083316634325170422331896038616664627394103138000996218096339331515377545185148488920757877261225943430023766114879067713023103413701646788138210479658620574113532568505269810526883620952805209086310041576939300404170214411200857908842991454911130891812694095844125358591789671068313135045202758222913690509092790355976569408916597022268130354618108697471533786686117205837157846040626211543832230108686172949443450622000745792742426636430987440101844947585166654289088085899273070302873802278255715425918657193012798966513828559522658322269600597753670083841321277659754736873233673726996039294900899007846899038657827787909491558081856438668832673288379460810842482781829611183011355850294095148586703870792417081867192538696901450981679712204695981547375738568187086626973137209870368725147911516241217567368367766697111113620932591928528353367374548736353079808974472299699140171452933392171306338445495235139876337114977012451826136012883480662978331235850741278194515089962567014512566725094360024660347975085211399822685464529096526500877577806381007196382409331500799776012790641072520384557687246645925698509391349225275238891186833742623108874386065886094824004625705450584485008643342189721668383731930351792401432480079200971566666939423771790689583867918095778264806287956169986770116514257666157312534017266115979623771543522682413197345895042148718325067768970937488904120407460193564859751948277976092821903771585049535909765250681322003040743782800097533179186913148741820520534312599279226206179927442218168306964872240178553751091902342739802320315904239143744005878009506174000889550781821085256984560624787897028784672297486994209059981135734602045403119312653115980243028966194929122093645674247667686565661211460566761037637849954636548416690010453276545062787286163354793184319451363314127371794191725501679258888646590612793522255578317683287708277350009813774607285424913676630016229711776050309804476958169220393916296367446669574197654639762760970272835341867976536856546351742805684994379672751469500778315371206624098380765644605926412448505183601978541542846737097296357492343974234010071368485881259279285969938532554992752272759804740251452218285572953728336067417867284578336328020898552794921608454301860306039792446318703671859078783952017966896559595839468597669872300759993988037853010815100694774345666733451097557184026309639864962015989525205568410249636671689118217083958625539467795607338804407517629072062139081433416472694030672472515950981517995677356226586727691975932332157000490299564387765983305437177279303950514701829610253648171758269966492332833716128524151388224765280022097723962965421118334991015597114034737661378894055653326372234620532665536941954194076007629259668340555949226502441704769939578691972276861616830840587442526898424993111549243140762070706780407200388801435645005448179460677101536366775714595732182358579428206388099347044035165675322166054792933043578184812668107986626877957956187896841140716309538793419541335837945235795299510703463843671120285643618718145844144846521623119467428897699488298331803427138920462749253886476128620626414054299235826365786299488653663630615895099119480003958772525449833861344777490820252294914605649311006048121644074309465434166563403306029436886427251153163815940423897794946919079653235115397765455220744323125482599345633948529228268431105709840403767241912067175133651416637884102084309719520038441937703255433904953245632438576973193364472494828667533049987828973234479872349879533981055721081987923227431714002706842087795519435124540391214906799981838229248931148829004857533568267042630804344976159438719761710324316383004139212391832626192744996527714794815794277522163765692691114094019115901077676436654502759900047047044380494342172649088434091499053256729576811329958862834782641201739495986177044081989814380946536522266338020816451979973050072627888446715258781426228850632412251209348914640749566301942200120637583400976200383499676438678694741585371306722998322950407258557801195848360822824242377045722880297798305669648290520712202030166872589882590726494042899603815927721572647052496540084724028710496936794404948005443622160981487503742865447739868937810952359359393486053442741140508536362572461293966487674757444551583777517324711714838618114144040886398408306524882676575416517273405030954796359810555054465721100432328450556622173014704029832118832812198641025137944979305860591287791719239380958005461841752225376661456514389566511504111388146149820371970548080888912034887646914225104485435350020469303432128028088102683043190174010474861405766669162988417885686999542362140580050407811001592264767529597526456126905156962477628834303967934250912002863971171718860241032738628195740487689597557370362902749390164377394516498131008316908073454039227199425046913059530011071988279095231020354117528256178441237612974848963441134926344008689899114640934392375221086778733843506919773933458506115283458885717005328378384350468651774645022690195382481157750392707118089009340035593380134805852336149527581838611414468070438521818502238641849643173364923198371795927546851735037670539930627364785234129225480527991165253252090177711454413939991338546939800084989269535942903412753000504154529522334981263031504993124121488921708171939968004746929418655765952015188702370809560555175119406724510472490403333795155990589308948672390054031833320517908723912983332467085711554307282951031846270905830521830012651296829091707919090333472731543197992916599480077231612482178182016175788192650828106189141107428254658246296558131979361416383758225762455946430670302092534867016457154947764001214451934250104166828944790449314730936730078218207092815324390748081901913623847494702597970066722444527166165028586538955557030566979011694989280958836165763465154200542829275524293835594334432240281859732708134852044908113992184126779271724983268040827172297932292831566095061359348630866789813586940199478042264186614095940427136029818545558476101657650865875530251912136390876273876788833851116061479729876433602695394409427232894573488441334084912777163221231200896593442824555579180893554793486123018941717571939156218866266326671101076835529512446118852921604549146423085938182383525719907787708591797726067427535488703280510373051212292537749529300501883174388397387517389255314051238609093590318046391152816184441013814883015107183090272074876390679382011214401130345092957094935965642999305110238724183690109289940721940726649125256066419725550104935665735660321534241604019302206840965646600518937171181024269215687355876572095834402347812210876459908382991581280104578933978046124796579357386598278002877889182101764119384119524582968949636861145738076377814893245380693274886234435326618867141588280341142145851911580482229363408553555631641215019409434296769635303999514313181122839447955633552912636392553271893669969188408992849553249707054917598194259535396304232739746934168621187796257137688960747775571802781021743834890439495610211377278824730685367349583016611282564162399549889935788457156713076640650189008100527288643299436693082411832698745410790107375981850576293562452513987741412173360937721884571344629527836078396856775378742366845808597819036660952884608570134551932818842065548527178496754312258567392237473221862067039184092960108146593978518825898906367379344685557723288673405374930887277208737103709114976590408310113338591561541580364949969947807625193385467030641395412358326955565712766453544236454428531086725714665300097980862954174525114198793024908234529219105286800263751241606096644784304006019276814696455813964205649654981002772925638899681338728932132094933336544979911120180140416623439954900158908458990421129339328883451089855920567345363365353798082416299951486429727244222389668013383747566140521939513446239974836279366155719907654551604056515810896258452639669097832493562944280988240264283504693588770909523448727909687907884994000842186481105674631732850355365924193660489705679367230161720642750190004944828783551281314134925434031717379240726020942458915282417624048078184644597061458281464947776822474642416629185358529126755356969943541918510173240656165221020808306847001998203579124355558677249402247210680649447036297098463232834767286132348375536670285276079730879082840488845761037787515691465740316267808362056931264723097552825364818048213299777923289420172786458865272574376891886626234901346683626022185630143769529846714291794982948342597759654216333352553452901051819152989621676898794790350661527553339339783655359447531459329634196924458812145645562022640904130561200259201013493733797403071637852190674143166313329175547167376989879695533999068903335202890470419045604932090741971433148917517133553751021714254757223591780266291806410672312125342281472424682069373154164911579835389405375154909763939924522204700696921753994092296893243836587404293324342616921876084763972900546710526183254899515901303362338038059709886244658598452258823559082012403130368171524078488266310344832821267870170743346390021219496279750445762922373179896655198049235058412271848528190135606759560977122310046941347456602450668577921836556022916782635104118407236127924573873777593784434007433919528005182934019238980076902558075417128509810635554953992657289566758799976675634443155951352290493142119574212877780049955560576849171803755262746021785938541328457683821023865294472169725389151498057230205012285282206512131721333808976234697881275629161858074499534656021435827282862327184157497071764823849964691773324339553789500070159710307698726876525870650603758365952605860160153821243899087114727800442489536404702344017426404404293534445011727271770675242757584719336810455139324819762444096245004111495687470743139593246597254392450120828002020431680402588750784297586463690599986271092679679656592008941648015182057303000100276567023784607119784649291389470891500338473610326488077120144230894897793105489426033441402819607541743497580881964023624001290896534598423906352246164379508944721585346548365746870243092797118902329264346027074926058456327030902299938892486761162668064726433974013373395938454687823752280571596171938741491658251443628187006805122673883151568830435491102037682227858000408676748967340085988768870512585048971734358202281251242678129858562504713840406666643614314103580487865995389517490200875301969354593632083401761920094014598421459577645729005572121634975624183377066514552645016186693306777141450252200473295128969949361912516892456511326524902351054825077846082156901379184086219275619353655702050425059609625546773738653926396338089352575343429234048774776185902367431278794028304968748857600577548428263279619089007319448579754459838154423195340403599863188176985234691318894513318434209340293191983274965546987880098169790474385703267976768383052046514239380432320655702699917094984847299809067597162688513671648221835016009121758523564190226296884704800618978884267247127119442314494937036981584228833201809978927091352150943573829090765089064494658796479932498587646812225361571785127388021670776656195836544908793298741802550075026017737869385488837176359029860589249864545322051493514185659177949269370028338801248496514028951627870770081094665560618107691371774559908904444063813815167266130707987299471760981399888065389667154157376812151694603654990456485412080707482127289111410858530606987667417735728154078413357290517991761795114168868219246493788146326468258176722640866435668335084946150234211773250765432866913419585921836936846426768110865544669662301841683973572344444446280070447349478504726911030146675953004809308996551404266298493533761140921399547064042552834355776468176286993941891207122525108731714373904033407324008670605145145689632942384473234063436337566843285500812341766985695982255366534024038526161402844490961006664970850824213070493212155123053077357901138430771109739413359779591310620143578010183484917850330877430235070241804793687319422289307181939294945321592315939994100288285096281016356811773593518895317912165769165124168029395931173118425208654278434445410764694867293726177294302924379037319047335300390033199072905689883020483415913495145255813108908551491937870253093710752224601303496038688109114329533315212595157848186889875573530069485695119287513481126392214602021229790589143913726256717994699511563430605599227121238827133434546358043829438595378197806764147656337929602681770053220661968517130637778060469803531927476888692841785147752298219988537659848075853179759433167879125140933353232610345385297844598673269368889005363801815359566220689370143933246628217420983772179613212558087025159319612737571041263572782020130643006241638709391753118789751625777231892840190235422444056383199375679343726602633271031693955577831271609834590712263154722660837480117774272376505620193848057870515239553536884013318976701713901509377594268218626002375189677884112546003806505123305342019350142497993789978631506390201525460510497656224712466466976044729054103199590864149969816890359573157504828370083998645656725197428530467383781478109649177453188654482706972824825519660969087326968200403523284515672582916086813113480828595535103107173703800279841879790924925119797957826991380752772992001987955686242770558039407889287141824481530900335211980939857684441413802432603970223760687602833749820218721207399130149568065274162695995445030319460350738841930179190518126386913054418251738140858157304167779974457349286709054573838877154682229156107134208765344810407200056735142922887010745694805296501415430142137121465199408281008519412973993002215343581377611029642438985262789889605856655703052821675735794136777317865834056293381101843581217924161789159116449203905701056711008136268179451957034080138055284376929751801181832479668949089710747711476331306619095426521647278360103037566760201761364426587966758350700502444530469610379053389932852306447157766596320551353467867971118497384876284076780225830496686542141770244389917754752363790262137456442764648933096931091980543361033125232293481645540648027860676162144589548616685914197381273733420284533879458102964974130784799555978669710115839220577191373546824972594701835284338457871865066328433408186608369912079930539246735795780762414470410722771309188848578878557798684428713655833986989537972996285133020379749619682567887899803746741956986306367402618639600759566278179816630723533615103978203174336418922503811687939769275912413168193028519580735315934319990073691226256802316328149639233182470161888348243761715400239952588123432625033019549967978884551388842716489255985220420952467764810958747524209194827271569848807947523922396484547503027233468211104502891479657294901516993750266098793055851912490436904721727763278191581537992916878232801717190435543968030756734250264420399072124001786388852019028979843857915415379425561379020234692654033617467697942007046985070789168198403205507762062714544089094171624844172711897935798570164653039431192017100299682535669809246873571917375567230551648062891650808391807468133031099991725074015580975022847122866259364728246358499769650126036918475298510162695290746464247741669737800285718025403893645773515707225320745187002800400198262177936088065955858451551594974768117137369369363202823711610275778693698625292226837062300636195589493646984239209699524407399494601375127248871469852247053733523531772643414641669784290380449684542597905457378912499801782450667394770106381560367784294368950350336267630821128603884611050786685563405359358743966256305984452493208286077321902006452762091361872733193553331906842698423974479456105100210577289406688711509051659121593206367516734590650849814472921891275406165822995499771517256947075773911152456533090665320715271138658732025264318183257779065869328588929838518195602869626551734246318169605848201395955418565051498207453771933242088689567703092456583026823704258142597729095576144465357314503901623188159694835968067459461648094913929955730553944748295011226590367386571499948726440938041301078814728540553022241367517871985679092819677242693324510581088295717252979477224181471542391361859426365362298665792525951085190729987027549567808660216636029428941469785680399545872090137697397405933549637494240673841961411910516363746243094396489265057710211260254181156146862175791235673252892178528586820062440755388572424518225294752492161296420370623307685303550802900563934941517694845871767106724448674306427650418835953882474182438426657516043625152969720891728941081048037545739174298684979797820603297914140809943807848959952879212800127050312196650008194903433199783872945410389576872665615198112100400977899346498684212473921674310288633894771164146688477003300906448993260021646831590364768170218842729054603118119392540682922796335310251655208581004959858984217805427809806130977352095420273073368034390209344121180182366698042549378074791633204564849175414373386704472728259922673067165256344730869387932532304400498501189256885239512159447219704819398320159697511356812525145730108048643570673319165849613029206617396458103393944288485595033808517624930198747612804896050903857395165993668087346462724262523291069653434463217509312616342007675986173636204190977999451886854469361651908887179073282019138001818613319107060625717036196830276948653300779676823814121509869151172377679430188604905562348908488382593287934976567853844267225758897057746901018023685332004076322247932524746245463998723689127492559537760402339515352191589528422822817023653890763935785890924610987797663537478912551193150905352813205910760042893860555451509357041947383400539997367767794436665313226478600414056981886822367638696721164141964513434210347302554502823312944370579603149649502383598341660401987251505870509550558336445060771401961465270881523121279972777064144567863249550513575018169226882724877505480122435889800379253901587959702684448053038122200447731243495309229951207262015732319851801423825945261517063922770257909864115326055947765010047779607320308404609312027942196007920867898424981909597268060320856429889668644713518913687004484009527452094738841875787239027511752053976889301109309831442771280567846848804740715996498402194725959141065813626614021049462193763721791487665740495699509579544267195860425310462375880579021587574530294802491108691619626989153756617657128717342457821890812347354377320151943437598175480752088162695837853461147320428304881250624208354595406382919993260210865314815947923503417698132844660182870382507185611120944668667085681538113111700283360921328870088977616997144589472451137458264104322027942720079079810243447278784285520866193584201900314308904554180775967854946400000707178557174177346172439731491104949061609679831468574761031568618331022735824308388794175534114823398273269140924048873985760352247631751539320525282460813352743267896499742293071919512783233402956627659207596490809898470185680901914101459645526376900760228474567495161608988846953842838720883510227724668645040115537278621945739321800354411805548554935076177840597540595472165633167238844728877360291134592468954557934326367386078737187337569698488489688879664456127686611554606768764402422686611919240809975514436662820380778744944650462623955163170728643642483765246461658636867109899209957080587917926500837510792384852137693437089453244889458730584215053096283969935224495067559912003560420091649979336578099293676562935998544878070399429106600466098475848056780525419738179381333452327986971194569517231028324222644347361840788228165531642329505165451643825397540153713742390039484052500182158456004730999588667179481023379519321066044392214806175761022386056687809361708322860449869053912963313711419788296450995407715578582163879497481936489647821752262116705094563799214756017417605913346056444689801723655780910838567280904891611235937960947657191514358946611182615786073301157220586883295379951614667878887995197338561093846621924355326489518775804737199083224103191277529093116561628299600217193383133095030906275431747702723520006342266813144720785179575810591727746501648224953922373150066717799363225490095222139447779600019891473343404175007942468766737306179225711121916892688432264254460810068981360539396902831927207089172454207915082931247898670561755952712384357459950188852654092564028277343765960557241303806374268035054932171783431452835285364835385333473874063138651016761962192468423380650086239708372248280359000078669135668291447456791074220443657785103194322471781206479258836076602609776538931156422396039166610396754454102861409295510370049893007676960737473480129376710390653008119229537922859262154843516686144433083121254265011024404636734315127583059456903921510222489491233018179316701482039184647800310067801485344448256533102193165548916656644629809302924210448464903142885321432023101202327130655422327015750311877028462927928048225253720987022887490498947475673050120848943748968044522183402413885016778718966516104205463391785393753369827278023153835081841101495039051419020839139632306319987779513698559507795580509563583376985377272390112502011419862205051134687721988537348155737679283859429072248826616430719540226719844570803435342171608481272707421797109832736695710009709083889020068340174947166748198894256715309127889006838054207413617780463878658311398056278787241829078433109349812240895186785101360746482577345571502368913889664709750262047159894664919181193534575189711817693082336625918572776650809998252090039878947006077948564574147703699070910247584626044937683614081515621342998111629425276110753618948246440420099588106476718380362068461941286830527168930550245599341580780516508155611304889846302260505643681266848045198368596547226975380073121532105055004061475196706905261113735769249753093943388951167068129841624357887463855823949166318092701470053636238393065228712135649135063237075933547752906958849345582715360064006367386566018457392791487092919635014625485989509016267121201233105881878326455694953950825426388549451740805956311644665983404357912275044383235459869041533819841393250157047596263610436138887937282439383318745041788084849641445453550365894040610861449063506677335011789093435159564160453515562647490869829823886625512575175808230298042595789036667856975751652914425582758630342470332945871108609257353589382430515809046149411439937313838119200549394979739332207302595885466729784326357754311107063456386635271878231515821208295432483010884202681084708967522567276509351488878376641956743933727072105682590776340145672240341743042726432761762099857869512935170283112400581268608393470578105752506958113637404695108686621626011744671723935242194381940892221704217319997763873067764220761220961996475578176769530134435403042303846097824543120158776404292420475454415964083012641738966063300199145187829599965338019765007281821535877195064117814769089831144519243770864104571546673228971337205378388710935225003208812337355756719594354291238162345804971883113940319946616039211454490533867869216352244797101444374089680760278604606383610656310355862985619634245624871822373241849100365069059442776537469263680825738132389559248075817982047308153411640937254187728723845943552354557635105306702564183342596095217460444513740842875139503702426993692164256715109365291118094362232882669525225914563226189140911215695662440996859173185344135034106894708968073723594006967787527242206293503309992580256630616604537764967305202679216655577615014587294075494004664679135461708775134245134230061214239991890447519933583144383148237860672775975471672835277539742891346194019871783752126268851780985208173974937011234997277458855031942431751809539491275316562788332016886348098657246624772464180881165220050227858911429257538777215645246915916970519552367201760684853897016732016371629450117144420771971569574882231072244219996856110281305221575674777423669149636323435303186680065467277285802250943021228331908218684486713579488573654847644928716431091012745199845539613505759245221333255606512496157925680592865916117557343955585094213518214298934018110861830644462474191609671386663807226724466437655762862600869098644439324520659123254527208445322372760953286905479812437950584200464595141328469090004196419824543541486981021198901455161349236463765013931418879443314005983861337676831509615069966231799825453801630692173338986310602830682654697112671866604682201572367833919858887488956211071810516870746519869265264787881125433078062839323689277771966536306947682200653481587182712615404798142475620613758956580410461345653839467225025307596643742412215795050069907609512179043952946749526944829582620032447299876677345104777348652839739737459065099356832042066558395838063332858649155973747501812068897365630047040039826183516071056688297500342057981043461381835623590627227135122144015447848160331318885254489784291384639206139130949520022258560541729882217163705932370526808318381278907924951473552657998829839259908518590652499165321479063380404363685156668936033693440367109986227021358053759282722667975838193568683892900574403128168143587915201378706286017010228920286107576537850573891907093638761121023804191867900599352216945612931440361555343153942542698175645920193248951015707778820214824920031070080892830500186608732341086358019441520067180841405822303650299590889162845311929782544858433312092116179722624901238700809408893607356594495368704416860905575441454127017494902997261782403886638544737981699851121591303174218059646791175162364336676400737837620858387848894081770005818203369887363779689243895600407862879928247511594614987566628913547634126537215449112671949241132525381014639208262091958998489121793127313090347553524931641581021395038033156914255690819673794720524346953195776469644458774592915183857565747963741109351857635829377023432038753781314177976920959568020226620227291482593601860836566103557855261806876284298692259833537432765292804386700422559672313990406462001933468363225676944950688320844930723498637861767044066749683777109093094575261226592858055668125689462702571079431719031733911858394202557561286533391092450653504322473717207323133918913962496019643393871293243647296037222629812132709788394806371177446192427620736737463231938395457687746512692699042958508149646189915908438880048945097495083123031833688765364067077313451431533973339126890898591288511787206300861888723821596000644173869710963436600416808398441173033006017078553205659666722185868601440925304496882034022798787073897104485070965259692991896051350805657661667886285460577678526817721145881794074773265652356785798156863429364836174274233631342780928269704686487375651027794934708381942522428409344631782921138047355320867271069476040498274005124246312307826775244529136250024354507767518614014601014769502415085793906530892674619772885647647636147584881326402970291591476467797501918725979379908987595128690577982944238680614043431688937635799220392734525260586706053252896277751155122482930479481435024695400103526759547331926897074204747934682899608013406152888838784748359072524391525900443115911333863029268691888553096387889449156495987638136629554590798967188722670231861655526303253490799459938818848462942663438340173062339892069606021899949271115371720308357494121500220296670354988187544175602413210965117428071722974437959148382142035348613545106248089603117594139154623925394843724209421953026377761875509504444932562133785589287941752685464745194384711591155049634523772986269285413081157459807686560305642252623275134303616295799968475401562850439415964059503226093270793630556811094725209820359755157845785936299610558423529553035290964612908192559874410251144889770149041762657913500560142865804862171208617740184595366543905528579227811687293328987280636495067726498399381776059146635362221213151747520282620617130899952874349238022777658900342772380943728855368582916430981688780343448872906777212703149980491485422048275453323186546992953751439462884011769816139738364728014371052482828341895980298916753119483036969671488748069368853948450954221700169687734504019840695975420550385022383130142391251188624850722737817454341949727437107132332496411081956970849278296637533696991101011541618782889584470315230899665615278002362091525634479654305107628481630392727104605872795115735537053521339626820665337770264437984731500113395766613285336704892620548476258220528430028590677102099767565378791941860177217046526378129338204324860853804519838194603029815549288559750877323930419200732009485149733438696107049209649569010924050645032098020194522876906853052010261015466701452471729406308605556997740851710829238001979810605756928744126885743705967158967161583970926428838024361821925364418199382539271669127906871524590203173414830376055020214388208327855294364085742362114177700321433874803780890745782191815003712556858301322388135212086621016430953183454671453109637572370348049836053559118578115905744228226102827634613232702937823203580510127165037581319308415888173343944874357717198954268890877727463986791096255155353106623312788503136918408330717572792117820983325674888742066086374150892648894330358251959168183588471377763436450549157724565334380591799067486307590745395229438099578791305932291194148963463983280598619337439155221160498520897839383225219458130567934820980649753089632274190851266067901074100715830134141468974977058657684446428626694424897469675081932196594389353537053068912593969790205546822195726578287441592840882209286216436510906763679797885133182175981146135911250800469281131884564972207128263536796041977762996653794430852831504182859930425335438354018587755742290406388260229522419415339124461731393550673721192238296988848501510947113093844739998558251993977531478694949694808259576021779251678554619319207354411213206973460710047833962081592410571892609906041709561415589657970009928517341713785085815061480803894318929862036069157936447106754573562023414404935551226507518628625462161851623566582782728398552955586378653897854115690165723468985746962693474551975163948789673621775587518011823064673210886944869281446636914927549536216932694486495474353193309438876240600587848209467847317566881803463516285518862374261019014479517221699291108573827181910236162173489516671448692197470494651426299810111135866732682986300224234250878931627165920560487463140918206835182588094064556614912615239545195730541472999367051077042156733888218509464823759899027695267145046912117693135365344955133311124801074683065147288446459721467999145898477769152238941202864669444465211190104157361468194070568345008449786334767300859558349166527784970459284007787252014993234224001891412576452304324967670421173888314181685805426075444436359478505592083585998161037357393226833219384786103767804156806844594757310034810638984488797238796468903341256236598484787538398045271305885766379066852554032857713858849878898632870866105975057979871794909714800170510435951298551030101129915449440496745704546449846569866425274855491854089411901786910081868796938807035402694476349231073084385463488956386269352338082963260576554703534982661883510390002894908713477441288988556996721659505104772054847271429198214236336741921608213744960254504629137575925456564464040253169609148566008815912768083054962030555282832580323860674440844128772850266383610251400184753915334303645207069877237729190229671856133152656127260259943962513375926713288882180663172442013507255899185510979964791338550102685623342959072598392315884691696077108794173616065884126128417261258821544994861217606001590301874707207293961608241801220387975990842711009975011288263298122442173846396311373508482859966067006304152378652790213919050465287614988070225095938294128819214547970197528101692413742379488027906309277073337548703396269830920027678122847846754259959351963862075182751826873327408524407358198992185861773338689025515485748003785752611874757075398957791889837120551341076783483484650733591251281492829948514708365950445540483561668569380881652616245750449903025562415747397972110113710448038828667162235934714341778766452368101474116086297604711651762320010645566635246523592842061068383491386142452723825871180025858554266827093183274731466131716942358437119494362901246295378943216773055774220298348634519959845587613266546680329783273608634177356295050537325911288780820479643556944447873330105021018792430257847524887126449836955659495232914445682142833330831294738775721209529820762777379104402103278672588843133551002073606177122228030344565039571812139745942835992932334856223389796227181727546086918864208914590677086691030518720742155492817546005727590902961940851792480978698654970670412226009057600247348225779406661312869092912198759813323385142040147422705289752771266144582969258223308190325810255998234383932399069560229795555347958867155005395437638172169010363390979697589247290903620802789456911782296987356835558746360087300530553606921185459508300993797626163178498707730400806646777425388852981559408184936181502514473044443717539219377586092661354796535038533159329812300253308722413536528895079907286014715871037245736571951411067991889992329549747272933279493126365068165003065798955019333730645489488785046384973975058338822116551004285407024707933750625781243619119385045038200322078449802990328407159929501948321316999109687561989409515713641030712986290289020959594137862669704376340527241455258541739868825663235902553157173637305667176976962071681364756740223180580337598444929072153371916595325012683213841709273780175939564350645062158235464245441757910616776609747584983098178588075980333159482426335124172371682368409464305207488550403195466284815280322260861890261651712186500684229840572087856585105558843062002604251034359104369776394716445143238558899078514817536728328177134842009208143110703229602872764923878274366358472413744981398080109939489779771502974065467986425179930836981096550251126398226972463708160373651925789609469447921366337118015500219724007123709301061456647894581991667913350606066546649275088158571500866787181359736698672687236819620269427790299581132851042493326001317906528438036589181245606568688455092069764011203314567694530047654058828412679412692645389444803386021146410976673278958714371242425554862632135463252687124655321954386453836172074000404560466411764830297413434121620421073875177388158737864294096284079262036489143681048082254111191758517023578040010123996954615433608629820090117860531560514003909607874330987366011409923251760532893016759797965290927937448743097911170458374858637260840015047955846657963320279747993066660307465603550241505298189837903840129444507258009597805323224168033613556719621423523856059782507678231931158991801387124678677601858022620127352267202729352277843257985999651209655911899100491718565869297450126637791122180872280268506623450043179370855966087861300996130983036585803524586746898583941936355761521514475954407131710605804066798469651491628988579050876431620601192107330781135109652965602953703826204117392719840281777425759333805441545923022555534284328764987548319089511258937367176881158653726078692458543241725030300054951429311343622967115686911188291122813515972936637403771552395373712556346837831949962377493153685058069704609675185114233778394947606887956879995799012876010186956849372271857939356456398023232598351606455906535063797828520426279921697956945861945957633492919280618787680389452348263917452737316791060285783993779844131270758918163329628922531656154049150977771692617765587788934217384986162104705529025641787469569953355616857812942540012470066037784870952975129844033475967691570587196790287783020595104222623733638339114655350443949341534069697747678543100028484879203968232712577075630214450937510493022750057245308477459540364066290865418753444457267496822977675221138358404010496248337867216293175976260019594252154093426764284349893529177769227197285283743963944783231222616626840615106840317986327188349203127830251941192092535910288542489701080177375011186826854388645194505946740832031759055338955080206675753235340468674101185280571833356770471275116348088702283711763434904837420084893882420541902853220864235736234700632363151117263177495156200020961964028892305066235531730138956225764546155496479401471431008526253772868291275714804573191764975519031460497456907564079976112804060584129246754098414308754294892792351455548581379068027011471804122950562483924006413779120710402927407766150595975291402417214774261318265156209525260341806476811137235002112792517104722058349052990780151430100672321078932153122265130495879523321170499347083124188232857452857317302718483148626401563738458819692386037348999084203885550749744998321927808992746242974003311933960211552686140786175072256354552702150073233051176313027670133160921731972411607434415932414943969787306702400038475813716054864149589191364704751971680311327710679991392774366996269970776900056919827184645893067043630163559315906568788828742020706909992999802731286557895944287218673005075147591037760086912106085762798041072334644715191955170909702012609732827040959240884021131779952991401912245078703668768791561165501558921704907229243775123503706010947931502560002862070334663443512305439957796556570040334413738912947409780849523198689895276287689040549812020323139880185313860063407508866016486050399564634148068168430334453736213808193357387265479561858555162347951994198081927521182059278658223090790363284890139033245864336746994272326705051268479495217851155338928156439458030618327943230255530681500505075929335389480903656281757464914451479006357038660110096134720880785795102963816791474071855436101426233583119069648252601583070748317662025388932620768041184676729448345632999093083568190634968266009680460560657584981682979514737596012569767422363660514309201622500805787890730697124641560292175372937431309313922660529399448985625773716867727307833023022369462041255675086865528835368340961045199797894771455031170759940026508731980256367337834931461533442519292993950992890244186868744852433037627118567120733116188236609463326625376930920289775747063532900495198689757743063483034018074461055204076234971857501152446056381385580872623932878220643608150093326333730004764798387428894833481270979450051031363667904411429359649623101518099005327579048633185165405403834879998412740027387697617471196091075185714926122917212295824723064880692967299395308909317121486325397174365940156966923519236616120227505803325369197953507596129553754206189830517098005432331248286841668035123170895899413922693079466982051871909384662356158576763278928029635656835271551879105294855766318864144420956454858095166682615266440270599560226005686617735450983871513378361185789104208493384137632233974169870379134938053955690995114535207521495743288312891621232864720619506096660205220601643075614672548962102719250831891172214340934150788855820091671051373119636169213622444385025818202425536525950389015954270753592434537146375735411595186331019749013405936419174518662843472570487420111067531106839788446802225298071930539504171025231989468983409023024611389926990541824122702269770628740854690904314390517656890739008602343639575073584351038847885886048941925127637287797665307294572731184737558278525413052521780624407367249498737546951092240007754736342587671459340581930720559675896737561718509000611407610473922963953362045823329656095380860185924929280611802727867032186962304241371778919208333350389657816361068944736394198249091582204033927112489892754240221082343804611936313337893759898486661170148551142412569252733740076061772556344259514832179507565091391491526050398071699839909486956932067558959571666436588744109003544774070105920571662715136453017635406466431616553345589002283650958910222138670233883180291135128528782977145062974685376768214687986455853554920965177152289889482727098542270147471835831067717908336137151247606288538669858726938341883791026976349637696835507546552531967015958657385748104370837773547930241613233581097211922852412448723289305094645948608690191604289564344478887617207338822260730683164697359496158504552822509904547546212821165634044491350133150793469459682478087417274536147524818985060815162056448434393129424790649973623433498105121161410671704791040668976653826179657479555138551522864210923192851892498673244703769876067627837252472431242633046140041966744066227466998441239180040352925427760608146479658810123626389930715820658329055552732768300464866473312994058309605094642688179506190737631025719525085512214332727050563152925489292549947844656207042960718026550674649233714697069132777726018558016053328280619028588171884600161707098823775106573404930300415051138207804194869079434477376412872159727665182440129434823420373238701202914264006823701197035984176643432372465828401388755026322154076684205061152306776855623242258456905956523369946145926647072396397169905729051655950908187344749863127621328330087022562110427254140198699564882680640239849564404679943795858439648314019223504876286068238624607952880767948176992748193607898634901394522535729542699787367105165017584822073284325975545993527068113840453676999392829064557490420863964403495890940435105916760812565795712979824058420355799371457346249014159885358029057273315599798787945424816349330199290115812381415975603123689640635117083897040014156158590768688506169024372901985468756946862401763731401472948333861888890686782983092278429716882992154647284043078991142924656628155066073767347306578313650959637231363605630665042659567005946856595941394490561106268429972042470070602765453277633695455016305386803698292130514336185428612439054440042475160624626009646885509453894625285002320482358440931205486341743718127456984831681044509360274014338746817438775621935499554133696036849068251307420769427464100087972379216983289642476318508568940859078649970249731840272940614493764191453111119220078410307813509853281132227082240729453604434574008602521034464338117658048374665096800657359697075336350477611534404636189895205797534577367033456673163158916233181863531745728354626324277819411850343761554152691827863680795820790449795732597983947341353203036967080477363198327612038685550161537682774628252557795188329447693110047882461811577190252633124380105067238883170921389224140974183816126365677790760769963526241233185159847374684544411629763512805593449847396232395373639638486992243020032308880684138373765906972631949600436980613269812881724612524000440698564020265265936516974754069995408626726534443104267561931271352402656923871740556585359388186528762586304384800374080400520300852654132513405599790232405278980215827454898400997811970715385169925836025753756145505624614034857712713989929175886425130799275927444329595959376351048553058581941885058822364678413772857155438580481353711602353790057269355094932394485691147581428034915319068740966889708724440718119600926716774901560457155068938008613462780638249178005861181161201815626231159341124404819243177325328608492926808888492269875781024738666510249219030338975670844307819285425955692627086597346995212650663164963191572048158567472155346375977753812975406871899309553755849246687680647926686172328840261414171987670429765521979429273739975069903783951732136245549618602139904685055936424452668728815343191043292338452928518429660242138106184716035794968089693644068637696239264192370905862791007283458603523601079686375291359470474822047546586935559244878900924343568921758312824858508100949838815028757469175127673024555331808138322686376545799586627380950418995148553037070647432432335077819534575834195199342343781983145165908902848514845333313605179168224200306153886551053731639681127588427912706959584771797254590892487694929504219342744189383472922895982418170335564646845312878704831392903287860367015566651478886609390810129102373328425186112328459858800463980294983833896097225992921412870849538130688582826404616665981736717266442112804551632522742167810207433339534800895644348590890307834964196632564284450096742697482026045617150212471845616212851423768592957951359264369352096276649126485567590811111193467312505175050197548918130389976384696754361280412745007746818928982026370818425738233378800487586271232445547437371568162579722821541408936031921465188033235147223516602545517071212881720415861116886192718100853712532970367486710211683464021739237664610168324796319590917256686425080943442001140845141685940601443698370107995221653229377349289958599093701962224784778134570236708542603640561938687188173881742392248539058948521752296254483526508957030047544705239821441042843132928232668622008217969156182674198476242860627197774546659691653755154874945036705396967313315934099629999516071727968702686190296687680593374328414214157338831061065080546036492922264512008571604689875995204760952344072526046298061013644804441910112050040430836142323095798310898611943881994596956031781239768955593618850551167072699671690970848814484651164848901609000146344921104093545443792764160261788269209147767386078156977245547631137741099938201992084455490833953886999338967514184284680772472482822560040242477865948203914496996530012501182320594067107590794565131317010402840528999111902792502287923466144345581049239958133338984027702811664799386115699218385314378798594345411719264634598056040082179310217450954650571550541585137077366790706969937835613474363832259700733665367002779218091135763862171247627319735724108141485435361029951201648971175278991975431850289871321143117816792244525874401836084345689788737533396097076694573216867929757127341886835778240728535168154161207032253652371158753836236804197342094328646209180587651184006143687523279515549366355826363382602378793113768411847404329538201300089531170439553570073248611231428591918483931214055365161033656003710210045468859927353582355200082009699246351675149895228099684049982822725633939975060443129727999580976472544129717582084894191108437595857797806845534183712264614989287201252131378476040345829652754999558919028532244812991183669272786278128662582105492770842594416712425542607318257687334732808505403835487946162625098427244563899017369046472142106837364333689055992355767862301294981973638757630486228182354369672459468314351044842223249073611584479918767978937124602809615523880447201251621754386378958673120425012647571873408468172094788518007798894938928051333638525659564276262267604895177348792131373976156589084787497950595594210008643881250122953650637657759224120766775289423763540601700577322437427057654654030841668199182587309535116325038159908778104041972480805503811503346990077875237220830541569383937972354115705501514858605634404402421190558841128826214153048485549882951386668308858016450245607830711678209651690316962568418067117943067543462927220656392559823650302353885074039239180634522642215851657885096850303556334290593260036814984882965229709515349530531748100434397016953150630663640117805565203714371677692783661488255152201676847385759055791312954885491535412904594247832741197894797126253161610828719738749749002759506312313111990423934660362755001158113697770193382803011026126136456705790443350775561812356166223877944388316344484788557824045724453888736776135724319773327286313195629516842304892489376440153983082731993560548118941114010226982795264255624244838205052339380968111510918762571082106485305792641709366781262511426136117012607885385338004961981108893465115634502401476232771985794884538453393182576169948184686152817855022764288374756670093733659239337394777307641831478487425079137556517825690857122944681822331177637420255584924324861493689553671355299245046378090674670918998701232042969952360429120406906148110443169953319961221926051341454045692588752094458172647166579324133753299009868475520077090970240305852211295576165170336249644412055779479512114267604351291121253150802698160136029604018218260848683874500814971307663876679515019283734345980184889408351645002538509635185771649004107439391321938352013381315063464657971865059236001443152052549632099962539855469821065400499588754702613148023085456944559387606235933293765947923003412484146979260236056340559793883812355836345007764425596891867814168099985813242595961232812285796516289055421930254926722604508574339256748886673832498432052302896778414402309195540219843163962156412668788034015251396402167828126915006559482957683984434142924664298782840650392556661970303510033034108009793987764553344415172192012747362404761969862690831261113089321938093311049190457665091525587159559626705797276456841916257453213557910670090139436243877838722278742322972055311118846447949443084782188189533664049862845047306260633751112056705529458450210601710772966841915661751907812076488204652010234992983445159235531427329450224883985563937204870937136868306861532149027525211012190272111173795406576642541210252792005456571848669828351673923660188772982853191897916120429985464602248738040100221994224871877064833865525589653277297548299966180997643224300137746135322921596565220101987387532582089693802753755216139723812774596031137351872752682806568732628472523156390185136133141707626259986760872489837195087629366421564471485456579827518057766660985891414295417027685151816466506712981976407717261829320308461306605993364160693558225838056199672968129197280265321691637848850536792987589963120882105327618066408154818572437158489921731181265559090561460011287127077271890546157591958531602106999912708138696847978282890254091418020944185864769819379144682403783254006562548277286606648245449689335546484003795489055823783425044721131454718076140219035292926738583459320670364321448402157981897170651732197245972019786163966386412124823715662507555255687333377019392112530815969764829188721993408814247339302219275302634056602869495390793638298462389656214691557993596382362948555409913973209690205437027461212403661253073556703582430547253047178300376606217919482988919903253757368731964346844962596804226309246778882439122978734398734401395992153773357965404076296030518779123046535601100368201282516558129248000394919828023899241125287322414380720646276765005578513531522065121149977102335590131415015213953272247954499455332921797104835719866477080609344708709525738575780246375259347651537171207384362690443463363584295786982468833194756143425621052600521349927065945200041686900532279599705139891350539905509185623759696896249068233997646417784891305568370586361226959657788993291881932925929658977458173601443515571504970943888434513903146602688815468978483867158326037014421331327527147966445960104084058616003466367720886613650085223123819018000266847315201413964939247442877789268931310691552095490383283197669216375259084173542216575106783811409725363334477163674429580028125716045431832441376866814674889856841537703742410970275798127449350179448310448839299254436844064393407636088658912981829424657006954485313614999189067917995668036276092014321340852009082375974164997972797465279319810282210143299948346782037507729898693855296896155822960944685460112301329101517482101088803047485859530390866289896513414895502330382921949321508155868649563756985837296592892045480155596098302596322341755900850239609941878446573616572876636215773391819079743174058787361249260606098596079096946274559824230168052090806052830343801634135268473783521555735837835968707819845855507022990714480582465444193586657802621206798923160073483963720007953871905288939651217627875914608399035536980251030413905624171136765160882274415252206675820033126118073892427174800616510082970696529669552948101047978593768992324962814882360879681992496994904471733297838822827988509845374698360128336294516207226114021325697476322767082567993653025642999193627075112331122160118362915171140346836638136357907133927060169053101780271423068023667175528377813611415080901986797684921640535844762596009571918326349100510562034978211644627628255623291690651437767646108823139053129451814966168877102126960144187492416160952732063457198913768110267085984615520510178928689430166992431577753839295956921122889146717010896245983808890406715627158651832929274679891087439436721186801567079496227967763629732347946263509890436407550238474277748193849229359158193710516807383364641995413331160235150397072675047154218520776255796602850896364692849924552958562114088213014014784021164745783836713617958721690872322826107441256802835647191442071002275557094298869948256577688392316980277958921348315348956924215824032136432328847925511452080792650637064540132205552154498207085210153744790792319310723143265190119028385801122003782563136814255829712441672718361795993063722685685285805501730976802346468568331571979317126303416668357856529959814985592928244023938974269162219422313243218063715986936964221824998900631957802396774567188771854975981554720152029685692118156585926793686522830014033546469739858164661078231339301561029239743456398716800546085946987136390533463342784302964415238507366708867571298534397453262783137790633199177492861892446043522729608500368109881055056121801536460490906902394176606243550652364393057461245676199106759421223005163886166636353595170293279861555920740098783203963759787119934685544214201749010370524367259182589354618758308433878398078720026720698069210987095189594391306271911358265166416131764290821301784015731864808391836974446879052748174123486711684515104814408476791180149685774828438347967495807258403625295520383197695348747240372848350199565036097378883143143966737073966397224442839062740453478554747739185189579983104805710591988369098567571459426724432823034417498666941002584478043570134437271557773747097617333277165001087731642520605239812000622821130609776724028981600811198387624435512746572096491024318653547188668187062100173470070693191565088169200885833913271768266145858933062525224144394916302797552224436323738050189324957608732884386832836442095966733675125251842471129813702252334397405190531377728489605508774475378480179871919539922113642455251051242121252508849554499737126747843957013261116123608568799988048768143695761316061300616015665219733509953600258075687712356507708938434361915220247008475500732877350848490869719168202356034687297389842553625115932913988050371353113900203153152450011243924103143218949996329133415523740269955408583685354472181527979516778051674513563917902137327370349556119533042992881493864593240841637587283216146091489417112999282337399077428044646742929773529329866657411290654049397926070887007720637048879259537379284071352434048222755378054681695959264288888798983561536905000406995241062324944216698494913940175019675550584969235150792018357626025294935685443654830649218382684228782067545412418139526990614929269371242561890085372459984626420040597113627549731239977749782819016707281040458486293723305011560350168800626310951359414210250470991187941471135571238497085884086687022912453504817579391341119274870822012983077992659474066257434378114314151783056130353493717614858684326478358104158593494892173361457068450892487705113626271818899783999900630374976391007452386858990996082956974525570851249778484283821270252486838341908170712414404522543424191758411071132393929649003909214497558037406551129708851543875035713456593658548742158700050388701482806523003048277993417350630569669455301496350548044394500149064860017387404074052829776336826389058610725791005596257611464632191737917792175899142050651499939972435724805702890031818716888401984202328033465732040920778524441691573380334290214595967192586117449859989999844631301275314406106754496535247216130630429271157779673474104580774959327380739095495275518003112880790189310679860157272700694658524767243193276394843491269271953038803151071964625799315036370249707402199839222880143022613327243350373253105111107101863596254090574509489609975611025212611483779081601913827428131185578455668276215778486339321677191583164250538300343592064320769558634368882916590313970738919438908179609089232913437839105307443160416610919539071832135737155323369334651532758497095732959976701570613672192653987432233388987952948761567882096690382296011573567052650578842953691541512926167951455916540134759448585712820654660275520862469383530064212602964067802790116290778184312531285063676426410688516090693868106554600016727927192107774446784194307095483610256795081136516955047970462841463333364396766301778458826001867496822480685923535543781217123649365544795994353270341885879944129237504155861852697451776259076278868911656788977130961873723526623632448285026652906751187249775234316368533830509718651180758456975984984743397466668413654712394128805484685807961992914820231385246411605117754403345075372629962535248391202656101334672451945379155904692328584541119830575963818912613057257844916851507291455145699045583617298591044681151784031894504440955446365015255935542671450730257539947462929155506865689795823533175372978627210530262781597344241738464242395909179781959194190857766779855535651123417987167151603471685534377184984193953891562741053817338363736272370399475844867097485470605562420404798804459218434070103434890508766600738394745176970137308001383278078612568549514902817035134641811788193556400798730776907617397916189285585138091734595563700887704052041610262520547632962021151595881582289610431685163130126386884934789383681384819590786716571578788158289977434196355698469616418110342731250023261589493996582898595466261299751668710939289077180965178724204378026757147152720403882819512280287806365735328231878971086554114997165612143318544043138904755140527880159760632206841016201226399135830186484040624667348174446135857157186644638048358595994885709172290793027095028368750290550051311886250087645513362291176448323723401529444599046179004030978863004068988616986273989542769978313587427280214260648219835473952220650912652689556672933945603737874895154418759350337017387067627464408266697543238690830717398944300096241840419016218110370862529672447488513849557645378156194385569112086311922864761037277747836173264416089086845703750265092266987686490633360535364973317957670082763166758377619411407991230998380714344725487545168001828513019489626001099670897911460995281366437203073498034309524906169652979397831933144378738272367585507288597758934725639108311558742054135619449762968471236398107989449240965603246112279994355405785234832877239558180118254701479747985001928014062775539035055506170736665574663528795265387361305602297079423951648776712411570015654648551065669127352495862134786133034254021529634371700422543823505858100860416935972252991968236370054300782912009164570476408143378687472816047421543921929379806386564195726110092702238738144367216237990826605696453545719225441296052419520695267598874644086481687925152103155902831237956339066473480685627879674516734040137527720871383910296956886349381377881394766956021168406493393489948316995988181774237790696194794966548938198520345644235574006298430415163929869226305791548625774876198869880996261904325781155148872359547541793776582156267531338617855051058815444943099564131231023555316999695319608264009182100902541660680574286137906070411124607670344292256034146219279762718786080954509543441789688375413381616122273426462210643469700891694979227287357730858508946268728733366140706258914073953466478590801693464755662144845568634850972533251291146089539358834067645938316830301864566912446527032002557376197027115741953439929593758671829095534168124533811958941858302763429868550869258219304156393814385466279502717125534025672984216474355192487923347395465717602801563852634046078244605576075195178681948446185025299282653644865863955996576330689585727436563706970256538520950697760900741359635717511108656088247091983824811352721236683173741359088636280819246817711828372252834484296570159279118728590310072588436537469737554560680442568629222698541993740490968198715298180431907398914042806114136236287812799070945700615940361874888784378803882966074617966779880745551044764306289664236252323528758584514237690308401332514253648931537951025972567457499224557812412677149231562327375014712223896891670448131598725986872578457002003922017595052881713966304152478820271305644255769281072972491504367338178025063889495587165861962424186587807627610270165219093492111141241590300633856906949135088849942779653021343259282588570068229953005121353272497559741415534365410174711830782858933284646185188052470534168844016561924986315484968803944053996507739580020432002647394175006389187739349039043970250072671106108862357333774288874337196422731207703406849000793010671004261016449785314887208752360445927582762632739499538289539422398931526150653352257549045130874388986806940386604614859924512034610802353772091528900812848096702037678860736101821601415134484517698825036625660067174273759187174547238591904336890989388889241927186498656203763825105245578254725535896896546465553477545159125052309783016127571931514246618061482996216943068307784762491847232573902012583153002123245834265483417047039943608186994818205620106535754598324774630491252291452955938147026864223780510971151897071949901519687363246341256840568572676977988238714316517221445498321492496639341410720902164508506474399455587829287000509626409416629856513272585324177086178628014154297715408766295139247839011731425211219264956703696408002169593212730560546611066069017993815901368418818968184897446134853942042535123874805018672969431189913919492676431025281907033098893442296740445846605467245831723799017446740265145675926556047775518585932802336252939366801898175205479347723771194873574552247120143353137220953061508515305497434968222368512298747297012746051247827200913784009941837195843335821687646655004985859825146565662389873418443564336952957117670176357885149661023928319504924232812212688625381139252912105370785805292071550688650171142284911441071821479908310796234164774418464987661597604135854665594976680092409475052131426359693738916129924981375712930399480937364066199727392473923621832487920231798350858018366929541302080947146751626710963346090138064734767257107669364121012908709440772635658349524003690706780633606602825651324067092081997476370855716973492089978812482117645188262961743202783417648546209058858303799998376570931508212355903048426594238871616349543604641073189259336015932735707816669577278849454184446795025522817264447046661932613620112489011069925555454986070203176633381321119039668733594123086716114680464935812096122542330055621568777925785528208064977325270121401562386232561836171564058615087156135823018166881851050841615753087623844083460422488619460068842077207928925181362781425716335456277878279349846830386319701394553557756800023827201967118715508719048766903274973187222088642262135767665441165819010183128320628445358199887723486561622408244945293647511754057856483569645812040485005456643201918550429440534060486139467660835873288700317792924118117675530981876492236594502813111025212193848954679089569968123389537774959753955684424892375271857864397323860032037676865665429296208630362547847091052371948402777589887575981825344577201303701127467131260485688128615849119215215997421698261130630078387261809855457377154696198818663041907787760023182069187837066563865307843162791000703601348821887361713665154742117556757479758038851891179482685600030919673620730519512019008796673397308506492076842073804531400978190290992699764376063950501936881954081591836863004026974292980588101566724508600374505797049125147053692151992613361567320831838020754701914900047595238762902566785579332611436812503635705020869763973708513289076218005198316832228789387717438343326408764254440133287359431984171393410981508459839485626639298125832992483721448478997527768203378212641499847155012869332539214058129895107542858699101219813191045360800496400130851481638760756869306280224980842931287977172917239811726872127942097006020519358816249279761641811024688041280793028498958023394348742505457804929198828842190181318957401678057243416793557699753359345866681553772307661823958701190821353222206111327780509026886692332741956846360957207693472213763265042602917928558482574016286447072417325782436700890946061522852182619630748893320261698389362239877667042746388628481944525397973835110958005303521665495078993591144313047117888405895112334554908929287750112022300338756743521252711835479587878700656280635131651388689508409883671091195499746820094417353981902766498843266502321112048634341329837384804550069773147764162895197921495024547807308734498007651190486044631657667278346378394722096354339995048901336912872986273228661072598364796721077191010171283974822260519596328696355445026934945915573514695827819496243535825192193557968448003659971674710594019888316579536092749084925181223740038505089669786788353966669304953702331715439242878142342841458496303942969940844661880221741458361363431110150837644477526828308185371095445712652823740200611021049465398586461195873829080197531278554247419056008592470930821096890612039488980095222662222847561137097629157808035161312178159800345399761299645494266884586079325905520847762772994662234555510490672617364049679316191865979209535349752749711750062728861212391568043493525964134136400579672434281735320320745326306074427983984707424204923172101462529009521641769965377733245135540465084723249869672880946350787908650974848898867641395664683034615397879545180027813768660582789859244562177486304556546069717423679551520767010123293425373993407518575314690089796884833060636113478668199355915682828895620236198070548905679554088900575567151038991081686916485609181582377809275723321998094828516795258080245215819417019223615645995100633924456288900559877092469633196323829414217819556159004238218865692489733410453246979309586526629145073757008720971535881904008364672641504056714433437454541216229398308848565374317406873303059245696510197048633803205111363002196622092776816533020736328787065573621810797656881362556354402323202995346700394534549445351002675830800671810348244623523382888408498560771629654780651466403090672522757360579783194236029820935559002359508834599419361051790411562434540847010483155407538327415534954798236467718915172149460863716334841609157969987684365169497139735213420431765072148089993238338394147658864871286086133958965175151402250751361119311652498935564559971804011834726752472119151726894825533254086351810832895969483666514772371535491376561188786872548831790265077311377543081664250241039076014848377842486303196309866871372959141379728975207915924673468613208399778953834821543632953164340752202215172851406944278317815880536992270324875251891304638210406189058298345546799272810115493041351279535502037265104901411973953938449320917671222195665309425059402437117436007656694156626728750806620418868939756214155509387495265393674703960121241276920454425916241237768853612025183272210609673529667195442156670142316316514652135034169986248769684647864850920968990283518653556457207436880572001134972858676644235743119802855148538066345449918780757706883357409298347539199976670931596958251335132536045604590739941696354554717175304302442604018856745721849239070633572317837401288956126636897285099440553256454135386482038374176424997814773081911707473384320878413039312086243020935263903901685240649069171898125666764351080984435161278161946406208641387941144499020411052167866948289378953971965822286674784059655281354285793575710628178163208427048223495558693389174944567693006615323629319003411466318698316262255439811649884321171914328003226094604557265494191089774676151254557923381436082448768858983482098138728065169411789459435487092060162321992798188037767234802553064628518152443507895132415920861874163451175961238632040320763624591796467390195131823678769893287152863288309584065481473950821457970750304413681230211179620280185479174109337698290229868668780909915104966756056498261028452937592277128792193315230873538017554167073444339635669429722395533715844855228840601588522421797538786928998599283250698908842788844925940121171537417808906136579351331500165906145419212262612755080340800974521478573040815520087563622806023705994820712282400217180974349702243730465902085455405813157690938734163315969284197365162102140069204011446540216139319478362140403159384134386925946168700029755660378285903532938265533341518870726897720557752337183069721429172179333107710344755822229369987600162741129051712522963354139781591018646764997972452017085921899577561570406193779741009803394459033769418405345650329417403222792295236374664515162594277859807796370134771599388714047331763396289614448626797665603425915475636040516898359821462386842277325771858864925054507978696355366711945374394710091089921545936857511398068875292490438282183461081727485144141004243592503956197835926291934259067792629241285841166886912254996193581466119953274530841840170386612976359694470999603896746998333117212527002056077718057677522043814419970106289475331832691959622737219496472813811032771303083373655736660885922813267000637461840146920929551991683522269728759741931284581896790939756022912571990777923397447304786197229447602624941561389862401009010755180193879116353151733726015248847628320931108157659705722530290131289315477788806044664637828417155221395187512511188207620071672511321170607679338224727454535286175129942825092199461905052028315341201436326101756854031722422064376340100698813414434477131708338762975415512977973907351442189100115026584911195449734606844236949591500315559343285333450907625218363102646724246566495142086433225704512256612467202583558946594901941675767063894421517927065605941927402600436590033628907154079116713390257618666645101615409255391615303790613968150872721278658513704549471432855338649970767218849799875806740905424929255295036456503255852298468606383097708907740406011126854918424918132530536954845575593453641267063165313940369330195529778460183584384158477573123212799605015982913340227842923955863656621113275346584246081403112157245899364796578572469282754082246064921391930551683659069302180273432023223905369138330706128609453502063906350622956578620000536529214733284156648452700866927962719891125622901259055097529817614852844420162589805165711313065877175776110215256269062310523275193394570877121653280847620979264526988011773776797644830535929668302166784073512445566802303462053918360205929175434214823824483191190011359022014824037803220902614812638654803389973875481810152300089123840038061086798063742630945559571758632422579334719804555251752088233690683237765560162903712320265061593593948175374715115686540188629603177496243739733498083466237106067852464526976656399622736026182968148791517891373687728202773498128870887239298268147528934423572580219734597758143800490344419221478361570061485391617438246637136836721467551290632477307958896965643383838213798645159080135278066183197372473469216301456981045589038952291781244241869400179461036069270824604435009849753676547567552636015126781549998786074693847230785649151525789478610772604146896706487831457319696880603864281861910719800371615760019314264485654084928168305301702225304138322098343427204381999201650780226065906474110042244690377103014465988075138088822592524072072236517387316833532100154279313314542741775387288069020512839172974641283041399683583971269540180964629794469681790275882297273328647072046024461710469965766766807669071029082588275926603141701565119723611762997840156663012989838825211097867541987160919164347157852236361325948545720132771239358657151220577235448721181032654674277369451236528426462981861039293208033350943104060508840227238570579410992204091797589248896920483091011992560882889068862909090256231610953167097584363141835429813422448315758960598297941783593740640409703619126718367840329055371899144372936391918550341354613068366685336956418787251608924057717220534302257351960026119654288768319463010084851084784279590123137289220725814216500949011577639785221492255417073768401304583624116879008610614918037254409396540245052176885553977443605864098559951097585978944936903696149173221564431659989766712998035447017834015762186053710541908845880895184623891697112039170296581656260938571009476351098024970106075291405031574895235809758283346748406769267203291923791539501856393021804521870257274133121298092964505541316777995691211499109428082313885362993131787067961752552569275632768820727427318141417129234370830101365714554798743894933208590904693557590364156499332674796155015186837949567831375029815469974291918940080185869020783076173341845462071788251060298379006155855487509003426214518517284481222966375506394731964231916788389432767238622233371214235024084492255892765639295103461515885816267558323420797873678413638170244127851801781458556570194753204329202984058743204596957271591598831836397111636629032643479636628428907705462801166636941901927207402778846508351144804203606641906349265993700990790169787380980779166245770093730982337458085038718345128856765521849660890154365031145650745934965568631645577450401622366398576946509425956604751516233883318417636647591790102420150800413418680280517771753689293652555843875175760981368864948953616340666439296454995167679108571912845336072864662918734920843979867559740483673296733138669104925884489917957474179525595217842864173712734930810604615678109701747140033930181017063675073091405135896206921152788288404598222185170002815296441170832195889076239994197963912958210745441189410423728076678130328226838695556690920150393147152454996606789026418828654528083713286701235216822420477179213441795826007262858741330856292222613835799940786091398555599325015500368699487092444165918534245373749078293170131956805353598357685575942696353806088964058574224319819403309551776308259085772563174714988537743737716465076559970059775587017118843724265429732297689933107562291478380353508303368804025258800504722249103901462400305333943896526814108421785296444049812220609003105469700596973320546093480506401706193487702924418353823097243782537364986067084410967114388102151192107459987473068912571560451927530279411274504884562294691630258974359995063630489807507737583193206397072727110988901775941791546494237647773130990796140524724588334542917224496587463783327030332418080275871338260426500297674368954692125929105905150042798383638803744612905327692474705060509858632497105107474236918129509159184998377220416241237966328734598751572471051668415412727835625554913874056062091143548397124589093089889010213874631185732942586404405402435615496433207956366884415378200020705136603261440642702925311405300581236373988296212104263242392737289003094371670549302453409653806934619739170414979831845171818203504253063658754913548713679682912992889348670806110868735719208125018328722560018485734448454847507843872616554399957063718613360566523050373949866178338611145559217162130438542175888778213661143231166898461812825535166501643880594160826521830295064737104074256371913972203439122456259076838884455460661638353445895745461401762439965604118351642262393702540259154893593830651740794869616267267544369964549935713884587943532428573914647940555486560021902107769673699965483394076034935618067183956303661829638056838035331638621570487430718902797777145009125150318830092907717745107995909691486026662164410464381765217437850676794247387707815992870006649889024106324885268335764423517770916292328846281865879427756439444438535322048149908553832098986384884254251266466004138617805820965274262541345887370763076154549287231245511518757058273901815239574967153919811941635985991062877552256205108671489257119179918812820290131467578881842197882883651550064470064189432053099868483741243796696049096291716178748909775468757972826656412604155149956856735138990558041298938455625755839583957832383811179631599505055932354864328075898864830539562207944481865750425811026370906343227459064040011477160400283306013058900084362542311913439072336055531962489798879524318571640310871863698317231757834980357198181235980541156417876796025152162855553302213146858718350895871687837198183112173423949550988892472839306372514513738618680686294542557848121435065539403716440031549625798275955300034636248063956985087750042494179657099871597939302871604791790078947204717564130015685689236963342824634313023908559968157698288193078341510629154762843081301866618904843179599225752037881718004814263901296886358179800867469903819335687886774579012919855989138682999365445271753213531385462116531111214978699372570783820856283822223591785343636044823420248184694376707495283118452585731017839838244508555747238933900339606547954491547733379987320965972840259726327599197283051363349023498564875501609652853491098820970536583569949747680575238551070737813481730663955823363644795310068133720347746961044848694330980072685803675990232368083336547320421357705270593358456005034132043119736658127992662323811989589073058303806478543446112623922705366799070439837907564789754378841764759857465925626201873989298186930461615274127605952231962534015427624599396028706579143195061177689324406795963628802829434563076247967184429602539883537905497707041182748514723544510983516321006377486547955697112292089404689687526582781268218719263031576822217020474998059593337935008709241274195904776368539392821301995480711274409353700953882762061556586589453015435727659361658560496138564518584892605161271990309116928288261000431151078664130959893625819806732186005375682259590761614923896609038014737880641377467998971035375356109843107863741779596380496839460334803448844465434157419099366785819454386512401816684051563019041062754065093902272678397697241504322712618626269447850260715681528912929997197691507862572760158880063495166960760377708235717000854906951285192926298772862168460362999352407874460616440465445682906423135868087057614137015427191941844504384146131151149168725967065600262546065597064930670004966521867605561394689420940850681014727991374057698611697278241517845134377192107636618254490607293246490051736479016569484725149951434507830701248865815182214943420343726581173003109785221747264601181116367248566350027100956740104796635106513193072558930351802714644755931277211455626037288778937085717053904631501474155067195088132768736761292186732917685435967408494089361077551175407042282795596444984924833458573890247869371123814600240411535615143002060330190681430127458175723401795186720087347968173521233420447422644522994921229173816746680012639205812374470653561211234779246811534891859302607630947255381701401486326195757546631550750478199586852374552336964335245514767704821835743189568641099846562979846575821635741477013242533194788047679140952575825031972791209397607323299131134391349831176229553860857521548235450819610331288272060553125263165801962364460371374027841705730817134950037928551203228025240290973149226084187427143518181666593625965755935798047867027603525157696340017973433279639055272738060922838368523830412212427240132188639538577130095499888838780008314192002461627038626377613300816190034325772425398116444546729109260833537373484237505968701350505938648805923506642570838913663690352799847208944942530911524028698961219269070689721328906535771247864343336454364645551208484941010873307606274592078498599108154743945737306349662144534064705239038236726695705990018067574618719255482122437595933194806918943722595727773374612766933154833647121565778982878616257251476692450745805161731180912946687047645456600527468962074507800477541696962343534132293371536137749743345160116186071172191821160320250601324238555553225733719843644616096218541736706348406427422889205494957632436558545985981921248722987857316391027936584434624561509312770257747443274309355237598221237017901555331515760228532248087847981576691001583510028790174866319408157715629250369192484796244191640204981244619837520102176650794609413490959107606460344054004109422729974179409927272363796995821655532378085436594317979117596602011283408649394064274243006545959542488958624963197661727175455224712558020581229488318529679835692044025086574279592112487581575357928518831992238419233600763225353317914259909270380695087391175618483445091463720341688755886452662275513735487425614102610915991915005158724587335332805118384506368815162110887025703116090914367380076404855833430424134130757928282149493399881222380970792280978871904761456768995254822682048642984415631157111858588308510487205615292747209929078084885865026507671515853004565294228934513259307626229479929368698569264263175110995374805980948120896264285401274495547025314627760247659334469014110490267260880901093009343205024438817595325130104280466205226190466896780540312242040858547808259062234478641754448835406405206992392676125615505255520598715991632101655631294106495006717948290307138175993229144435100593691052785539752140496223382639767949200224998829269898494219348126592473761912427198324961031934009805109502211835168414105389054942223147149904348482112511190947104429065258084360943941894940617171908757707896905312463298549973145734734114002216983783095445158996835481663464145313872194832317333685910654407220672703128713019695342112296384441707630852789516815093865454173721111587379898082062250492264536866740319801808714435246329555188232800988728405731939958739885532410148721082452266079982965867148664113950770858381328853405155773213393597920459093367325256740410688825156728410613648550393125661810754698926553016670497533847031283921481142597752015162215808605708525723424086904769265063831960960864962726047090259885106100728173442844179750599171935040170437064856575616751778720507912117697604116183815648136254118639784654921737813024899172215573857575787294516825003147638147145254197994066272307069545452355790010378793654922737645038123100237137651080692471796436896272727294366301660526050415406337255018374553338085864673307610998621977478122871073439930469968692715924978797779090841316431923729559673964576796197373196816728822625237879723649151621904236831202221168297845189947517869271647986206698792192487097076268276437859595674649326916995876801939725064554908247880842618892881979014448896100475010179952827061280972215815610059112220469006663419917828502820876707045468520267615136345134224165462816922315616064228222929457737270530117915683998731040664024388401188651157261772219488528147833958594378704363556968423653023231044066063606435886230753503600815645998146046785236312076023043758981168267120246043353389113274609462856986469670768441385559412117615096481435124357909712030704294780593739940397569780803049433085866324214812251678030035433817857158455110077665130614701981902055890471659497679551861020803608320572075615090311502800704646872756690060825541925347696262022333416123821088907793091237007872580566834910251685409985621537713143225356606912534793925752413940977957182967858653527051184747287910679550808381877016000532743408177386400321629805864022886748538604036297237921272182477554220010918718441668420038640947450564779433374064159122175939181974061964753806365803713610225281992411491911801674074462502674793959308264134237533481115408798798184934346417322294487021221915972073229784048913463036497556092698382434001314932454404623830206284945849124867497010032718342377012897044792752099279992788537616606495495282717869214318995632174896707380693393640758319684538203587228464995307876101826199416761550213726470492458477010661713825123664255849017205024697521976610443139541444003410116042185027535073198303250243997996035158047646529968049927543528471140018943301600433064921310784041042090929437485031537401771114279726725918324078757450106287001595376484438532720828085948668578149315410726897069409249762401272447144991688133865199026565486603404230097952074432559150951984748515270660462326448455956137028234015734288028954979780733948493342973620972337179892186036471841182145024829907116410494313137939404296438089345963153202378299037249093840275474103052187410740978853138301371167225923293351419176278430135446120438658553685709587821542567522671847997262882948738818009849261645787316657563462280400663396729289131059711189973558314151654759970087023672787501702691394411077332798359718349199224865803235317443331037475925730641332160862362358674307763364318418595014721184119621472112931678743330335768581078437544295489976151611714777509957721013916873471783728558357608614702088594566424102709546541498136830010134387701910460851549527513847812462300004325862430354422529333079307728310479281219919182852719702720345399827678297021701112899886966519060633534873131091324478968699301038471277430839108602910572573750003013559707802567891122021443238618875230876462619146099156983091802844386747099770339759480605975822333868420487515535443454551507438770544085809904570736713460261443218302162147224948508143353136234702276104629772658834212801865793992460730824421611736498443591092007516636450781368597233353728233402615141284069234948958750170492870797536949135662039124316720801581507373928516988651277491314664583154402499679971281186702660239050162050487444394891668956295602290360113902263975735842450545275800377342461751701830896153530096056388562691586386059589419655151310505727744074639314819570991080461939676369393341710173657573408150960842655945275099579167321640923755695396131692984907094916602923008743957424147251178181448836099077053144352524913908886749033219429507175254394496591503256804920766813750672824481050760079781380251566665320581014113386323394732409302277269199665833874881078016269713700744866891255930224762881701875460526076703492982908013518731810624499584184347132226256657856096213622095254201546775237744765446667539345558893718259943754952688437242536205507609465473217550493163318991057193732630579732314221461972553446139339388259044137085831564822140348765557501178211864893852975103568224776866944183848443394220524231291331692936478285593007881593932255894093734169255622073025301267957543302545721120940541775882833798890469824702277593519840902011614448489120238754690841702563155747809452271416656377791929615881726962377609567373277686471017046303405991169222402116799623849853799513494200251804185630335133570049114913313011929904167906723057372906644536210268084650765869258115133304439624110283247098987120636301480261821253456519615925779947046735417947603532660031476128915869840565980206246427386381815218388462438513618372247785029704463170959838188260950847832203169198199841914119399299322857770894563944279391981252777349928271312165580524831606450951062293456909732869937938076171099778303065601820664918130222616821208081776620050714210223959747716523298348997527247831826231373874216348354468977526408960757340965722275467843500608464763639952239314090250848376598700297827677393274185998303351812592455154552524642987333300610641088062634328665037972291344002702665467950995667049602082151953798557260887186236562089824550549534856558836209559987489844845291320460974428088401453791956275123093503527670126982904061961847805981541685036033870728281224501161495694098303501497337523276564046451476286678699542012348230707011207801421663194378999555848266971248733931829983818754831379082655097905087062299954820181077998698289633922008251214270077830412268721770216321134918075462885002269520736905225410810099518466979114303126179052652025998797650037973822192340202023014369187594666736281470726037147264673230157389124616996997740147027040753929388407465970166803498147763713753385630553409886028860269225869392473730843672031130773313687159816559704604530953062047068087973326984355971286112546352398884667197543182335169072352659689947546009464863219267612560697822549404620023726242202190279638555429492635845872905909149180950851255217769247442408868031741361868304506381563271705056952005465189610432028544700004268637697730971568838015924303489193124527958066992064577481163452790445863734387155381857919975846768970141207780668412542038088782732058880170110692204172127627871080047319862357318898372069858569091981054852889558012106810192003772804685860321564825304969521981819098402707806611702476117913937819629688646105425750723838520337935518658775291682904413496505170306092434803058041871425697548665304314958703705961741804694640597752670418770500241683956168110329771286733849845959426365364139845648861677162060428598812114022596143645263329693589696929648283196354863893519474127819856501383186707351160387860304640228862885533474401042773059834416528370677461439844063436931246537159191262010268961928610613877300495887315148997586197329717877744040739655491394249870202212052786471321397641243349073122351297305087162680971935129980496994566081747945797519008987049797272638506297818700464343340761921480076278900136017703768325994327588370842389481675718917564173373631213734535124828225893033202412085789481543668372978316004123904793306070617852493017251038181827011445348966312139668891091703533546149829668634910976857504351854715301309663984111157188008069740199690369078976103487157479894912094727534995360137958189294083953554331210971800500232662102425858931901315770889195588713441040642515482710797981594115246699877928047444100258521722652720598620611827726042075890086073274481810687415269813922959457776349581155649042238123677660034306991318772284267099635618456768037438100810425090950859729970005887445585566209116517638586549906189341509798959719194464232269604131522952093030330823154526561039576059024331704186024374536741617496223622349932356847422003242461937955651223370446964637375627137408250845438298075821966751222853817607006577093163330007542958013298208656644370452792011796979519435435666957656886876160221760210262215872540711872265872922768963336622047217165537931611756583952437558726192384791337087903870715621265786511819292421809678695366347019938215447710925142570262962099164479473618618522363733774903995099916244803256264222771295165080203590245653903362990261754619123620487204127040930420773152760524181809165756928976810741260826501338057362723792733578916385009227073289205307914929195477559555353703903883878896587874164256262044820414443039484361864753000577469320137798441434728785628505483735581178089278624969080964452809889619211780344595530859157684349984328407523820088509536053922523762529921070277917159343141842038718242910311868185310825903406121434927694326506889714270462093520905875094442305165031719603006620397285152585647569192646184780891802324180671045754017339980739639577001334427882286587994554713655024529400170801563134736433260698127063148141153152151994925385295525897406315096892856500103698591182983281297645368411008170806349524912133522919452569526161271292749390894904793238038652842384965324836082989024062753146422932024420864961417335607344556058660562604097584037974909490870456161887858888112560893159430150678334277138027175694875321898077129087514711759123183138962649043110668559249778044778267304740256137752372125657514416875395874696272655813942194734401906829013823813816176405647310086292033126119707876847099562253595551080944032941624899660389277718629178667238574227716873142017719310389261885636305125018187870522387430284492617970895721781706722449391692786445062344446832563149258936520648881334577779345565462228416201427447035371001896740376936063733141132377337459833254595459957370304849280933582474190927478367556445000681726265630054143089535392262827986233652565588884441478311637933300324379145636629424512965881533315449153171787787005129756582960160251218911458079471759735649640618319997301102105965137598782781193877442581836546206313854626856485826889066695498403122149429666296811927791693730756764795236285958933488852069465100816514527863743983968553547076570279584046295841761271515976207473751520965434049349710839602813949180896101167751218822877530579622988843884661914397367452989540786971268736048601889118273107815372247300316447851439039596296503924414306294038946838510533035861111629049575941455599431476669206327451825294989188898258688071787318327121498263056982677263408638354659929250416390604790846029870001053499667649580300829163540904128381279680399553676281614154854155498926283829915885898824537035257791569267113016240409723221385807750306584702886455232452044441049468909389998895290216445555207885051053172140571202155200667699382880112052450905735645980833006379540918168074510741053255526396418115797989895482928279311317617437775675165440233137975379713483185086633271846916420003445650176103777312136741996243477256010887130284027986841078528113029990575748911435588958232228844426535807917275656197723772040035920678584772375053263013798801697740532901179621127863398121582287561618983165022386979685626644202147374817351059336056290350515725361476536794873790782594745681404163858363196985280734547609009049935457285036100055096165240190012404222700945064965617913516222149376145298241415929788666395286566811579415925110109583672769655861544912969430398918956616054009155593919764672227044797018885417783429498886783532927079988866916752117935605284317219220495137501829338402657960046232701112510684704766523990629809320407893951909313636540443660547084261974820751987522431301850682807028861411163184827860985857318167925647461593516281243608321759148639960943975644210599307760410631156220592378007418317531668413848562792813542204894356153714729107837363490418557609722831327066324829911708204370846958176649229081410274129071858095715217137500653038263953845049979550419148607216449366126378269255555101653448786651639948955901510377409699692254702231956483247387307107756923209177746712612607744487536471256691496357001485690767784787540416764644269280002195314199341938528903510344772116355362345524231297584386932746182139231393774300576109248938219011453656233577396871085196998786668583836042775918123937160505524871562087772722805469006968563185508030382926926906362929703769435686990468716601484465940400364281787375929104962228952293104294832406887114113173891959729589606736252668764052579912963131091410078974717935464747647726796476820300517041521547810187802990827837047871514018732514941072055804093592691025141126353307130626247358829240108421106906241326589653835343609897257621796728590283781557761090258723615202457539033774170802087678496825586796936136204364126717436654425943463831830135629002248503258664306961491989303043681194051105172536450981757764386043007818034925490263963895302727894494435050819148091850873779179760159133899777351738439271345775182635038336928115895342812780857570360471918071444578162728322814052743318258623660284974292222854238458520284957005882407188178125690171011874964702865796404709132093681189864143389699621540774827084023676311756369563321710690772145252042426622454962663965280391464314932572134293715642739204398409805966093996044386105891613998243752251451158497614173368669204706070302193453237521395788049430724477684781890488778779856874041413206418459167221982746645773817504325427774859703440179425913379165460326785070913217436999667631597912932942232202733107844862701022401946724778441646190227632247221424777834605566108139758121698809707044362642350577055110347777941902818854328636990676230875377932043346733378091512507658513190964343490783099420342654574378910941732600805273170519664753811823683549447495501966515992099705665375427933235935434501847382820290733816679256904651875547507789257536822285242877112986509554712549081893177775434103862055703506877058596460402911843932568143443505033784150012070727149476037422434420532109496175210918417206261742449426324992509721860692252348296215220297439710262235552957816758896821012252254866744203119173143510399584034535375106666382958187506689480233241190213370074371560270220984909508524131949556829372193543307453434538166669320157772595115246767816464427974554757993396474695844428818885212768262460798261158427590568720177946263093788144890342332349263363157383990904644099291369815979130615830942759895652683938271482011524285910452103427166874642194108014676372687342956892221208249754122969219265218060622807555083753573088284302826213153254391332082316346498844418235629517139100155132620082205054624377579400965780086413059809407536135024146474909945636687067445657205783188917242084132496044756851864673622023957354332579532971142473947060120119654579545718453316455826815629504308673217938051975993897098717822706694259801518265428541981062928132041817500208181755356806108405592792022241456368934085292689381223301845916173593330264184459960941438580279893160802271004699551617915524568654516149465032567448480018918214748713056210963460136559341153171333091948357393965152495363934637037660276907537304950464679247881344718541182446597744652996118525927924283877720299888941753037190132975423960187213307533757253125773193803512500212186077512004898593016276867372699360451748007392087860069477294764107822598815148780022307312895477647158928018626791647409600892793171781290005770380758878316664384706718212405438706990966326780692894145457019461524989401848584340750089991494404674646264959488169356899789940074019117973799224706868570067709616072023754297770265060017095029154564895240977978464095108999218742659492344399995035696111951460082675913014838738471502935594658089537498405040874758271868320643830246613443488845133593536677832616718346605792464891956913665403669293692192623955249667272003512599868935480060859391977380595441830677700347647267799428962480898964224967293247727042472430103491141226277609288363601498413909826547743810409850613808344071058521501633163370411202367583554295153798043555864121334722687628387092425379624790310781627062052883077549904005745831660504608646651984475623245276829505995303681718401684217198578980548352129983383442979891568971089508213299719754284561129202584614879336593410326518712447268838143047139155726297921868937708350007373791931322568967258709845093973342831356383778916680129128676331065393958436622522782187750624762522313228583824325698716149820684308656387083300680671576525421623761294203114618402485247730814713868789861328650611664841726063235889798473350029186322829493499915698841624669880926100564423515952136708410789593200151585721283289943487614029809267906575659846437835592843326867628654741679450995464069725221922063382114435021344949141893478882564821168360205907396274747241341567952975375757811627814922786922055699533214446607340768778639918229872334960267494775975162289091534036604571662380818124011465871926373837397417414067950463324331099538166468698361418975228640350548550265806775160786572711772889125807909849147049441892202113786080699124700438152468794215022641406966659700319295700822416441376533322582149376605047167090150831149010220219961374902873888149842805477282346768048413992048713855162733548824702888315412410487585356751093742113034299730250828800319553512968230658287782812763477848291158309010171640077461180151566420822208038736275927690866162473393735043066508525052702012247015933513129990814852452983657864303610050424352826548172703817016065732886692061374648901321638885144188001814260156077083985793948476858207902342340628889466590710445202322477964749306232349630049752157225046917209984510146542458822613889485322398954048374078677263852762685678072708163637349772396416684213040362652066267950066691253791121864926355041755109323811582049541598847720437936386078994163693396287352283720784423896694706440195489561147506303306882703706722264856672176539546886919174821272469727061568667688083542260532568163927290467419312029921831883251871144201667260411838675216109922863429932517839257851130082593186161318635641843830407732691516322727567737725269655711760837731823000679884511101140597991878781230385711943910350677534352650631683061312395597071629546010076053279596771444595934544679545218142035712271343357363876241546845994367471860103806672840406310719241244734899962409098795528511915551091846710113193410499219871671940999221768476557727384659836768989180217050941258613953175121871692046599980786310662510204648962738520247254555383995132220861329975721150982573606780757440543846764226643817648051722053870539379731778890659335682303878536879791855211779690802880051134103377059106755516310358648212169141244962870876843391438838773088194756644181201953194096035120739593042888573317528054991166358858712447502257894454381596276832245675241551934410522485425344475958807040668392509529864941314220224048316530302260240100147695476017508978666007598094297075557213069936210369646373899516335139952142872823879245207559235536017307943495227176653441789079712620730349477136265090735065495502898462484300193457829842784992196324690642866825739030364235865904413097102085870249989768759919907487836185441356486235946664587469786451001397922162294977444387674202036724539560392065109056691539281362136476152659289420080615163444522580595475983470722501861288036323154708748699210039081542917944908727303748146804136054661217544622694075776402911556386927753505191050955918551282655915831172651398674834043815245274795977897441226662107313575344919388299358309439096234205203303239519748646326960823249793203418091411785124598609170550655012273563910702040919178095006486883294331626069886614431365559721026346500226399061086800671547657481894795474277036050910424813563032330576481256299368772995083044032996880759281101710364008910715398983258592116311152286944513759802992919083145361152697387377301073280965174357092957351769322358721741224313934918972759005946123520440303379544107669929638192075549592834458223701779903893269726084764711293153941034379329827572542305536170011827584827310800469253969230821162759813557064875611688299486308888157394258615306817395252542113731992648829394192594290261172267350826224498666521999014256469327327023299134555910173834621140357530969215295947610296183014201372745173757675303577638922513111311467064932586528054390011915375719940591623452867029783111910457772514496002708132533014666327659010941953810115870817598636848498586410389709652350241295570086282922238942829364279046088987075401993359221529019373787024336506041455641324211076222356284015689245682545343752086251145073460256619309972383554565377570705136375398219496471507390668220724847813069433291263779226007905646857955388600664496682473360673379573728300760684634710973526319109361800719912848596235610865063721812772327996188378666140258130976599827099280529527968128890363655799793052192059657665883884638002431226383061104844134487834165858073580249204639733378563376787113780510461756133591275666661179119290674508961523432061652592223823294979188438113913354979860757731092626446833495396043061257198588470578890941626877067279937088011021579642209904964750671662998649055262202932854606397052717053194541337366050702756011450205468047295766703457548272198409006794320136352475385185076465017899801584042636854821719951152315011416908714156726908541380289038242358660575421591266705487036815148831250594203700452157763973983717400869748964806350454708787154572061573678528916877797450211455937905073202693734029220943752633014661054053737507935353045458634201932086712547217101786791279853901420358504294377170695721469125648188130809158848235441325882874244686518142350240498718533769277466314009520012489438871857776687867277929183608821341462451864215393253340921854994238704328485164399132721910193924321556031384198313415291759082610882379825137616013360627953939829583800321764232682088496709269540687132986749067913120217373749233569767085205036039693993955498581891820871040100739922667971477731052321207495854331147790083781606547355520117144961331868983176100414620534013506178421920628002254461635055142435929339871986084753636574428362887258142027407444957315120827689297138341905239954962541291464753222664099421987674082297419851700492732948560006993080143121650564909704344419694832330260426114680427603777492642147164125390344866503848859025882653924418281281050937296034554650920486663213356599828005794493300223844939483699268539415831877573489230367645483874964960595369969674753822204713444139520636173445047408772934497374026420089165110187730735385507380845875328179548098846935824325864088876471243020837261030953707990517570583622950720078527238483708418222223690002639004655499303419946018806112022500092194891172943240503078421477854470462582361911200828549315574119415764740371140141728806574379066646773036356617113485535513997872320169194789061242918866800424380842971879442208143847371686071604602028228479857466280715912964136535525967829193945569666069578432542520026344901736766148495864715743478011659960314055108099637523700375518342497147320883648103602788903236598932733038840692496907838554810998218407704962175824099226364255567693771491233594745520169293860194985528038316429284809228109891012382843805119939427685757342105047503074642936232414485861795347545912269506286106394186225646791666864541657299183337083409709793635486211315285452954639265343084891955852239171393463750509808150950939690164810632759086066396625150039022354317042156989147772025518722531203368289526950062360834019643668427334126767284086561537342898739144448307795100562420629066208624480243293738716035981264896434985963746919144074907409625252025127141984432670854618151587415645700543793522397423587095686518036273086305071841687965616846508289395399337541595640635346396329054218428254924969942812748432977684576619032906918582437668018923117460457796379073020278498953598038914187109993145430885671873552511113453883351857831896071065674103129817010363308535313641832717643027874868615588451838323143447287117853292396852133066546602919181694638737490622053769082322572379314517566577188139255657938905794186457664410595098303424168541683396967426385514307224327149801089071108387081451765000807051148945855055990319266144366734999933619148368478539388204682946024594963407330709755542970733061328786604397102363420510401984506139811529998944291038756285112699219768711293509101732358321090987785438610197903567586608784750198612768147596175694632106577957662189763918467441708458370906919948219143506133172853817094036458052337728207170730207510138577394853662703097538919437368391726834295623104050160508223479056974647994537452042381419872650415439624676332282620841476626523509705238718256219636995157996848764097135532853156228367505333243087578649981550176731632427084132240304811705825023312068232398075532077849429916968122362596822077966560464914322221779840857945564116936796348774753566177268016977900652638549085301648921825014975609165808517005739261578750758239982543665398299629083696361792955838879870001207424410702234648535863850800264150789377732756856859730646606057098712446825735934428609494488590050159903907412849512320477335717843798378907935768934011646172416839023198062605688056889240489268399736752687517890576550384371412403418857119600854729144463242427944860371368773222226400716007776679990876665897737651702850765034320252928889336371743459652950331763931473643675170513973626895741752792296713261711950483991321482147154615786209404961223738700473307587652790247976376042543039325483944584049207208692424221530495696246563617130790768375720491108930705133955840723185596336085568777268571616497930814739734881305817090107319132883589087469077956230661706027131865389795922146595475237120927022629697998108465627793583656533434167201174097613664926485353636543096554113605354623602422237420982427744181597669800424722274276250246106643776987803015813498314429365665221413593158897373021934790111716029733446822591835761779383443510953539728639085066934330410545937180666636883011518860627603688798839727510121485684018866697536972778122110575326350262762115902523116262230555395384375118200086325154761176949052922281965472769136629614025089871501665619454612695959333356671193162753759900289375329917622395653522697128440677896308096128909614354731983822923896764292109085173461170939616988653482721930997166254718470736086530884693892745762330554995017653609487740085898038185489341684611218736784916207341249414646802335918992559170184908685664931169258023874033216970858859757274101822016589563346172946642616806742276799643825373294907306836146457461812008281889263538007576980829180243293654954173860357681247050250721714263120780007703287150667580421790439234089630024754174785194948528696845361504922284101103239950786758500338878781567703657961850473314232422070626993102339591646673151808642986414727551663066900748036815840705182220366761686817441453602360452009204102336397940480178898943739070073494839381299751289272575134958096600491013453959927259813808024691194722133990845550947753818976506054515262882475829138976390937612221549842225979895414452474324414127541782125921477913703642315852826643982518527404972478726607691854068488120351901330600667328043125869741138296777376946434807792149897851288295260182865463554094602470978642570506400542196821409506524725829856717858812538265918736087693546827438888632638952175954166227912846787334232072494714124103168684026744478730571202288595725165862486068886534422379582523752839834255520633245451509650923500830411957587801337751192196311224095042938935390257820983641354604857739689734199746997568539076721527700105457484840781911030040576641720650205655638848864234354908292339463733122163923004556194062073513053039185136052509944484009845549633676388792469279240295770145714860663133177749456061418405136370142027745337475016593791564848211718075322856929589040485242993140972721818194164880318105048980570492982333414226602217391493578576054290640759027624846125962031045035807548811299106849588518011494377305625947205304606344972834364672905664820870927489696679834771849645976624222343894338647895510854349553655393858953513124154991123215133902354311505298627430656174637650653730427029770953567047177611589189973167624886944012426374175721118918562344366220472344821584776498170473792209893249065622488970167678586970757400438520621025580052639081186070867766254942128562170575057515695614657865822591227468885544066584035467803141581873994587802451176726553577585236622775587929912273770274587927965519663090033577750877022548023956512513475325217665355279699281487608521390200905723197099487734256550782324650775509643379852101050343371663412232686837789741159076467251553288185346490801973624843577020854353822818079511131746273122246549150809728480813044737844813865505755798532509008231288017791739435608194606400994833060536779056546404582102806899167593065339985266953548672398345851995206483346651507540808441413783625816570426016609067442364889981616891831084838067551118203154178356756325914497521442023775526826694161811539981615649317755468953534999981443481460321865004603668406992124093262803019650493215634626290443781491172715798119093469886401550194871412605101405017594856057337712356519901721453796453531849105094167581587101639687579158371101164435765379913060853204542583000517108320111233770030769344090727100313386015487681145085302462973369322011601435182955905712100758047686944845545515062611099214002128983471369598617659652005112878553216309440605067257983345624110307648301360044489824525396276085347285074216925838349777599424931070356463113164284272097373762050187036309697932752355466539369076973988710854764628235231331710471962530333191237826126287281620809536900417698788653310802811489678166208607406899432681472272044557650097405124574594012319788485232271688581856170922084661462047026314918908579932980047342122301551812982740955819959979619025085149436669572696490326213882686114146318891419069922255715480822407270482738024631459351343553196166808667602010604102508599352607639561639950966217144934560444399863974264925455016731731956627540640975588522322655191169573946261000279244113180037439044339086087617345855584838308368943180113578457869529558309891675884736156133771527455873939168152078814948969062280647410054833004216920183015817479535024187580114486381612517920480742610253878088568330405555093420475505064743711392191205195295769390261559522203293431089594759771494420855857574923923030533840247061229669489730872072247874203173771431387871751144451913243687262380807337052207748610203394610433348093576158653949699628683453892023464296142889894745216327456979251829641851914613846754052315646137163441882277133072526877161748779621918491768149389008030385514258785272867027991789973137012941100642998222636974307295143909074013477535404426834432268292633682100102493553750737061601502925789445222417378593673250207317366914916020822900352349652431287589819553782112971865888057141701663894408333079456927236708588516037277008677839161838264919749545477492009286096376474297240014237902903229731163350980298073237338255888209339846973284685902472687427118668797175118149455261907009930659516563318241897780635460427552938627261680874352677304937475288459321988775538676376466641160218526593198454529987047206619093428192474901577205121324880851927057193712577771801239486121988806937013650804367364150253680461555150883725574497263061275482243252360807327730938735336413756044624306814276822139636217983675908007342975229784000618527934944886703692467830390928568812777500012830684064924090068847335164640262009519081962703307512509025490933141321490360606426604355642152223356725291282727692693415945319875561386237237780745070291590976404498893367415631823391475200537304635498397761797699067857765208230383016852664135154029698659993634084563139087139471175961204936365853127165287505716937158607915494373125712988987475204951082571019933054145399929698217439701944082672391897216876224908346824886365151334945520581781730437134555248442797608286132978225962771266437585444735912019537300624011499426806190455509939281987049730057893596690448147595803743321507716424975959115408948850308375986898003622146067861899029358008279233879677950158814863955831193670110627014448071912735171332181362966498673534176185730939234287349515993956004516337240804696559269976957980528937881245556473717777171025459618535352184394142854793760511563729486291828045440684244112340078439801593685233053556920271779361246294118119237365341341653498647149023485962397750943208096737099220744263388109836304032417401574692185546110296934907742858337276131523904283215590576511857945793599752132352323791092570820650266285397898181660191206821822609744465485292585455560092499104082897910682111304630562767851960937090187734223572273648779891814051548791662193726476740596368283540039928388176357111468361287406774484766005564758811411284645026685080351077377490363863433165735467439382286553388509586710839754282707058095061551478237367624196975073930658159785250728404179235442510780915454472566454718124359934231618979443314270426498192400680564697929596305452218496738807562199485117303646837211576379842996096726149586367587175457620033691293821027477743978032115030719768681998659743324161541488574894899905316730339343559537486521693169899749572892241208579250484575057344373910255000462505445937843518011569736647167239735685859158338917599897028752702868316047491434315490886958955102868524312065822545016269055575822648763700060386107189998540342000264621667110488828392719125614041697938564087862489804707256314641894752618872697684801679056985312891005965074359200381184019610790677497823469764307904427360616766040086465376161766061568314992632848193105130260537037386952338745621633320621833715005052494261217783181541294517753451696398791663512916504197165997209600362986416089060810394933962687747035739621125118827875598846425322536497893704266770340469539798784222959685711540867381379501242548347554692681877133483722564738777705881130907317696483355991009819704291446035972423852257091137787350807050841989261880840388115142757012491762619092892423679616758564988784058999439027780098373116930065656696433281905198138691632258540206288023419511410581471830849526827892194787102899967483020728484437703640855942724703078238651989241879143266770698506182412070941049413371838799534831855415452250527941566620067048213817698926805408911340566295011001181992576084013924412639681649184542498587447370719950972032908665813719004624207716021322849778940847811756196287598151126239803145997506217235260505623326359583099842164155394562113948913292990789917510497340123888010411633820020202460039257062077390672203518133398957557210117616470560061560148000298529855051959599699545287805383978981866220590380312616604413711426054800888404223024336458402904511704634220390639784929839894244808300157592078436766717905668776910602739248928619287455568246100799505558354766800786249950122344336373256395721244185814423432866353648608639142699542609024887400745891471976586366238009638576425151594392428353555618610767406250720201161766542024054099973166971858620745995694339200668512463498001844502630549759072602316199962218087802673989340702902813641762989358300225639731903444802433565482166339666928974385464225373111074562974733948132287885126242106466025895312233745211863335953112769719486550581293263681196209715482129237926347516970147831863424286236371049658248797678148496582796203563247978834643121885127118494638248437830661258862310614720236009591948956539575693097733689295042477073266179667791744915356495628709591281344631963161425638909709558364988443116047967229582685994123619969561747896234213043703297547690021062613786429844864727282631326004986422144727136719661202604877552681974776709746779340511627827418036225103273594396189796956620778891527096465132506869891213972905185894335617201608196265793146289222905966273659046850325712090225510642520043742054462430932380507971358765141834483547797414808961702027777639386695433360499947916907158112614075381788541712553932676992209897498963232707393825472133529206434640181711447406366291779170940198418755661301349852790165049422872922600575131058399784207187514592019218471997675280306082190761340051686980281426068598966636614035180605838381119210261686284544636093317009275562376993994497948383992281335667088327102339205693261416231962810196476322283544864976726150328482856132277069168101971069186867705006224015842771968893753677295388626992342521532067767032371007997446919944309451847777723778678694660908182126739325710367345579650000968036887818032076192784433969121971940560959336515623001785319515114591846027117045389398119830069500261125767207622211313276957931345114448721515117927649866087943700172121372404232302210725598637825938001224057935290365799370398202518850654654308290794604928527855992671909798729771922576816839462139712256269107258641765316434001989647644927781703999425834812881052714695446921005102377627654197869720233097489769806322647934968076411985330443952998168686956013239160721542117933749436920541468292230246651561813867157511857864070554205944740600443819012195077949154112427392130004980613945629228307958345483786941467223702010515349607208805147260316433480745982827808562312007833028834500793156970230115090892739674411937855488205530218546679347834742472874498270399313711394382119454013797011203883339740618169650358010324048817323858442725150219620747080920030019082663378382513373004519243793764818887713238695284197707743909633793749407542568735041684997262143701064803144487852254912269676257648685922563912999870029511134764933088303783779903998358724802404406225477897590084618259737376253736941493835942667208339229457374566669898811556416440836988635751880936066718671420196417720124150176915627502686151573183522256542385337105041224747740764925037191009569506301062339936526298037533830357963974966264228609520227782037431080424015501981900113669608208100759629986756238247658008863852197909867396822138748488303389141082258076504725274002307854774121124843466678680456523077041248398163713988674726443553322774386699911382109017840086317667189626436773159430092084150674769633909835650722539600209998439492853927634137249511686308975816817968416847743239122920307598957289463141728516581959316879481811502970893206485377150882048301619761615664328018358007841675097962959846524685455270507522280482996820712300856760231465082167402612155406049323340705168437626483956905416411021512199832756875639786954322055480576048359534557100577630952194882587379587736290222609617544508006493699136493476555901389043637928146413524816628839523952666178264749460613504163205620640335625681846406848789134304216258653081611730466315969917396309463476339541855416715529703979598975206759692800016707518385810176083065571684267647646253055074644951339995266759641713655717246615253154081726547061878009071463338875147379907317709258958431540427725286264146166070542032441394339959371804613897773187856249959403294362218775169995782776571634998031099456871504826240274039904957939360889215169731819337543211042192176816362829221527980820067068764853041367484933008796691589089093903075501475571405084863705517843654073604775362135387169145908667645121423236439769305050359469231005440382384465155157046908259387767412837444177498402772472632726566106099620566524713843985397734263284574608268497445051547335030113534667653278631579011937601040310676417831963901484984529885115843812907445107824047467600542075729237371675000396157237716879926455808577290909405343909191355485584200063931962053832069642093252522273564574383148028100245359226665108160920255632841066979041105911964416736019389156762718918459385320452756409027547709993400559412976773623741696471643714258261913937486468496959674188246144794435303723717115110212438246631486061173835682896926518510422619238222256888898440848532992492243604269501493524663003345751841217346297185429020435175419948707630251776765846441603015835992234959383798734629276390274708000659521687044602872037479175793980182341265664759127501745418465413822619880827423790638193590902501346873389551638010346931038332571984724943798572448746400669037674449493416311769560837319700484999767033208294934586903752954006806362218481240270535253119683091874751000998595829140573453834711683021650326084139276153937707893019229537814349108082692884668371993210374921200178223219723515644009585421343158972284353141049528220322574621103560496078207202949485505620269492487220580063542126521674235693306006010099577851220080225471148474075800990598382074730584911316821529255878511524877642451491662210145707867435153413378303426525857681660556415887702532191100557306475097912947789771883945809077494948073421840473234930407914627677889036162760456365105002987098311337070368616668601750210775273174006700417391985667312785686201992170274530110491715078089369102697908081040908890489288449563406171240477401893675818974599270300084905705220016213063411389066624572564878975470198807080059022702948034832122567512086409839973136809292583132010569880562936942913568515125156375271912060953571684927032638628142660804182394474863826963454138137300074338258947458136444677749315574159425298636235913002892635374269703748973987146582526615076048993073301853765933649464193327698356588820773430735339979951666423165645587152737371825853315364584971097231596504079978421485682041813154538516364590423715612329364651200245541743335171388599054643315039845688388086072886100448907701796744846973250620777258315416936616947442303644503601316652281372245830833736096586039078158427753997678147453226454798708870257901744478907298052107386237177723730784119634415165424791575789115268670099335332212261959665297909953177594562028946896930575404716674028058774315132882533454931595810181081019275980161564295307701004488034435824942393010608871539903390544247667883700013086491859961399022573480712041061386959276230291018165241843500423801503646742835666106577222879458355994888203744201467027948020267589240506271652681808622202072552186129323753308143626030133667265883672563702845489244311858748662776592467363793782824127648367282742325011610184621700338299968185595244824263796999519175562101801823806654441620256884822466393642598891919137746027565552463387056147675904916291222288151657173008695666316841314625864201162172796928074332046530545069357044101738570779788257903588160008486720464524623124623586285677068703737442143789274714982891828454654876961149302851967915823854867445260082462701114636867140273840323668469412012817286334475231020646734997611425953345674692591043291527224571127673588037842229122042225809063729105089067332580645232774514242779933042407130920421922554241943404061290455293427689666523764696197206524084835804184503597338452898853041510502405317835313325905204359632009954755642221644358571164364421069888545462942035596824437029932985380059734408437154495597347626874731422266199836226907640665526956458451701007280675307627842965911917355393835159656602429487660249680495699479599557258911295147752333877699909124975670871939523902154707327250228258074504682654191184390916617349714893101209801903311154482695302745781591280896218909185039279132257694316122475016555862253215492631497801304529866741982301226621278767256319266844787047427971823359526156512128408217903984640959754595465763900672866635141947252781305143069637611860939358084268854213727158246433571341192246430671624580627738789578769628549338649033344481447364640864625462800745466189632049976181785452575375836491612800611745176974996946749461746568524081162226612220952513982458996897630297485848217275661895292501168320938723926288118350807294574346868230231445933130813703361166474839486926504172180422211984758057283252712867311801176779251839226579346356981703296196077503304250121110656811228328119402611909894860183497609324429729098516143510173964581568911960752053808135121060677696192979558177587997000479028906910482264949734813520521177019767762154079538345377426538031410856579770765065488001738603894864429045838585255939465807144122022559830143318261358514256788465341992058613397338767863017068139638040628272016652238771181110870203626523030499658041391958850030349210016867716134097499923032479920775244242650438137438419425751209473190101859150346033370026823072283968319212846507874546576384498865484799261621491761123560244699891417050751357222562275904130369991438322695816113842123777292692036300463067161692373351742015732240912585158627525047296441217053868517284653202768122113484167222229688504154488429479090318435868404357638601844877330804871052180067146204847302914395802341238333448204221853544686930419621082882442590724335122443774782851507455409996754741286030139862417135410040441376935343026148089505755856175793678425793537848393793340962582373640478517170170663642185266045576468096436239797664444435675110588574159132851416852465944434381634910923100542572630116889311295642228542625458496746601984687726798120692676825302059290017473320623277224075803628150467044576871386704073908155589140837156986238234202718812357477910504557229613331876736186300039167597441903240615025410857635763968939019591251426266648000654158058896608482011280073722716991668908960674488525062314870033370722052782870768047901909773431125603929809690623164168553841668927586570729421699063679282707248578151316443624342380919346377528128697238731146338181215885892141911495656411733816760520922490283871505991012007042437186519896898853528738471892878020262209126987922651502922676414005461775468301191601120635781904297330791272326967667733184814980794792710185237817022597837658158047498567604317844627128101713879585970787078424214863933616583747274939416987495437082724324693020630721263755935112528535207592370732745592239209599197671845671061166142004748186215876926817921436663019122085329289441994069999771237149829444361022523513720261597087063524863395351849473430413551334883968680810563748728920760267727368843605547477010859657512193308558544324394430691830175231688523611771991963432203991180222261616512764298990376584520592814244129878750174333167666545551411253058034173474302484889416817571642982668998074874588234366766380220896547968344786297672669868245433659200407895640458732814071348571937601610819649945944294126551379923143371259448073456191553040219275935057240871396457495514028521782637016934649056099234976726286113843281265994082959953391551419928494803424714051893722680987015683277656334506661554400803331309776543063997067778300182596824823124662378212189704303954426288504531806975382406090153690995377689876900925783698173609572124130118640628759426645382604844107806520631159517906349002586959761840191090949473569113312103256029676190052095826471255152333144441964053562646711192711017783157426847934684768279680777673670985524421359470412710506097826014920642431566895636896347593419681121358524236254235582468745467062568898182932465889320309146173987257832294554557826626435196466121836076928488300886927485983367663230679596701026060090968420000077323494487769697936285260301235321533409061188336639234841794238661461333519831024748716734400725627278715597158795001688548010918456283669567698645143254950108457580027112282803200754681601010118210660282782477171114582547123363638245003906763477527475568699465849830956997004926514861080847001534454657544437845372334931088030511680360049782647476332816981649194822001058747568608236843990117217930528337123730959565753528657197837753016706525949201241896297815308658280397850817063571963106554996268369610992124596910990241370828096176878866614681652701351423956697711572537831952042151559718471630276263361280887618033203903099463131242203218725301013254091898971628206887751130139190629469272020664860362309273036544510233150044513103867014402224835278950609619526044257285084430684325814792052340995836724293251542814984348398981022503801081959814483362464633233421331634922310935151704520764688122154150803120366139830093820756320671667075755093858115033526220248842601436546481059191275403668369938024492228343269804558258123536665350218605748124752533490090229921758092474881705823126781015263186883018233638946648243814088574500276657711332530752900281903859652682802016415560354129725590492494958098188540184485596895164613471402909313783750563250869130524368743987988554843875184257843112858195655937012142666803893821811907951377874263581431887761516439468127092014294802720258384804615261024747174011520865875744919302427363899476361496361668667850686914782863645258124169792252250480826644390323211081903236503743462628331934017520084530393273231596679533851030150995512044171034110644631599774781633407009608175818604998098078560143009328814966933748491286852164606395266822457203429974334311232874329626186337121229335533303321938027264605328597973620902614577031313015742228929482557147375980806496398354627015910213756500155885558553444741495943403908254298557062839269267883882789846038673626410749177389840243708338583170026233188624672879406061395056728584068360317438684875131211115647060364094961860116878086071473013724258764631295289026544560237746230989805735388159348978006731678986498670324197210053557832118995438673499220020290668920869549192389471622123723442589540237012837493156198283987406850735032111392760626933644643389886123614839705076875182384390734963945617964968510577329024517133567730273299181079904301796025178305878219922475052009657960970372613411874024775408105161161340718703240177616548898831734561961120021457011363979729848693963717844399449064295242562378750408747401846388473654652850868147916876317478794024282649546363293611809744299541374463477855738650190574664963587912600499411625519246582994804744391822955251569333209690362753589974480073534146048225309958316304725742292261441138220622192562717673133639636916950035295711556067957995478555012009460534287144482465070511353760143762957972271125368167597909912972449012002489302693811163311245339217646284862482577435813399353206525157878232753735301711000469046300723968016472001915919630179241367669555549922780327990745950393176977430402463544076503820044449813464352937363531489635031434065071788403587506283071254662899141501639494907369095119426880084955504095158140545278147135138432078546744016521831984910963830528304963517897523903542742751483726667826793201245718900163106868670222453704413586011300506225368119966844075105914265246657616457399365835271814261538832129859493313428748979610064089020227407710418116356848099735224758089003266733225955668429798327951046359951026020242533026096356412481377048877982058300843314360630181011881884175934310054363286077583619644985622453408153043024550099663056346421953930284277000619626789443657111077112917050400037298160442753433829187725085169894772480219304104884029044292328514426229522361539235052255232064275017686069095118664259215706469497592894796148318051904206192270527071343128214977942136221548376755704021054831075413253044145779677321410114003739718381951763981707693322009033343233138410036863181015599638129731698559571069924190112835784862670232112084706122660005568599657114880364855871799623689425558676577475967864113635725364508151122786308536908444263152949290633568761676106831354898912377869731579867234096690064435050274986225570080036623849709841485910372385537669975604324879145446849148460008965531412284315264631035417601302476431709257375721309745271734002212328843710661386264106153380970433023439008216398921529688576520044232950762299001398563731394357163477147478948999545775407177252336677530579726360514874209103988298271074260969192879796962691297405302362840034448318095789770340638101179739296267387667882181283484417811381191785578813307782765659573171908177447717814875378440242285086207085256497680076160728153192249629096138729347472226544534070669134053417643826276567104362033582634810079193004851982438388834593556430536614072245989620920691137383804247022374997695307951448184220054833121831438612456860949109120503248454631219627903433570108401318005251248456545082407732315553946435804878619361543568499087640448380045606880835323898291868032374175260455289462093748404993363805577198947950463168814528620154505202402973023524667154489520556154063115274193554315555546504012822152432106361735415387117625372427406286643380605745768767655197372856344144393329576739107083661839285442095000261802351582626976527710398610364992852739241690232388707828931869896082893528841821978122325034441023744847963715876162768231561759967667379943165173130310386198023895053340768734366301608811393782080535570518124262279209105666212170213565604679375649997792234553641090243751669743159114602109642073120741829009232847821287076208159042081505653294104098087686768009289767788824312424805411393801924593602500603822480776420639874361827085112973087463396876901411773906504819977704800643871121748318077597545806051062427974019403365393985764335693497954881328686313056591230680560775738249028297649601104189536616551928205122284053684605835190106851555469586164290108920169805725850272506434325906726368607458178796785101640798218020936832526172092536997885006801853767944618378187979926617005130827771551184777895897060343869133523840573012530145121307951049923138612474748204335154255475983330303235275583026455376241740776125692438792115738779318750523735503205619792030807718650735471816051889624551266715646400596489902581786706883136033039939142216170416718747781459836890491404695545801668312756710762131582648346322391652171580195240364276204897721070450241180019588298901047350613600354610185100863747337702306173989654079132841575839070896081353762046999332198546093265694724044470788257010719768384558066194060688369836414292727690664047146222182860618576252655045529045656472847745323259328955024341366238107182119770005875444540039426054390003827220876733172679458661654477040255232322638029996890668963822888542295787027382009848348790550756362743986914723033569707996497535144602972035457707816429173333105633620523552085197018677269600163317246892828082300017068511357484309975435118547655451063584883811162910129426790712710360529054529608932574193207879704952979357308007955332954530311289615986967492488042873425303325276359861268607262371804786819239476254223610212154035789449070383332074859834516074847637917733354176113010139888976606270182583032632588292136182963751577896638883955770339223119744490948223343569863858109434864981335259010583265309837401726320516322234783460850006346374992493981440218201578154340888308382481260728677892533673744549173066621236542992388131244593548892139866864558352485924337206849600329764524696626729843629075217120359233931882728753770818463655613052349202586643296099066919318098047573241113593292235774158340324838999114691241442912399094218544820190869081990666960728224261868502850870010186035949329723139803910635787106958915804189182280608052337014582526479006162479859697411124843153872495640201462091737461003438366891875084213724255959501018168959009314542728544457434933808249376646515022642551158365690466354765350468226041452754755769445282434261685604841725169538025373185950326561986973940143038338610264437045361590195774000480412444948941843947344566620525100944219835267875558553935770872493146648873643390312001822323845169361265879438421401387401213342848796449038673184051289466443014994605171443479389944873967983584557303314414028154148273270381852882609337167056748419894115743729009385384149306618408264905322076997114394704216010347756534638295384318689784363417537773233973448196082544277305573800656292994559594842915769977251540586790240570886315913666164615682539647051457548926090832614059312517030279960879402846813326943194213203621250681159633304144774174553667779321342382198208542724256563077556971744401120889066353563161311222263429918733454800534824716617740415888395103978762937600162139467426322090898873923093267534037129147048403269878043239953803474892617883792662204128097924417832329574346229587128034471672128265739941137384343324021757558905913885498732422793564991010136250024816758419204599394563943719780888618901947002924679035193215316162830398110315926572535623210153470993853210602889447574478661051870500854099573618802346132127691469837462664348022499141927938994288108436990731141388922170173081174699432491214323752970276354393972732227887974214887307900843926042054381421120872433470442871587587863178287180720955682857161558220597720879939974213262393118372495917240603268729804780106207931553032389946854877474623688911469989400914904139807167741672304989576864187457395476883667442448041277865763271375440503568384381896868880796571222718575283404269319005275699555502681186368501120012273764583146250807507310816662129080538317762558661574022719631546921084165209328245454509386170265018773489167840067364543151020288619186667170397908655915993278559286510030861980092615724942474399076962338652186005395895834799685952366206383037160399945362776603477507789261902461691529719108800425963167088007957783662737185329771497208725765344600400894658235498335902929965738145755235189289603428842330196925053313207898810329332307455255006918871856456619750178058675388116173187815108648394703653765095655979813105098957099352839153871994559812336973290770893378303025219493166101736731563609542366695161972903968005811518946115556179760111855466614437620405050581049140157787043581853235063704975748087839996097696766111206123693459886266553048978665799015364199206720566948021467969110128998584917588259753905664302378223580019742525326469724502395911083183035052475002745295353544466843422448055594900298163752703090149503826169597719935911880432619206002538961080199623802204827825664291830175725754856915056313560305203912473027314473824330367829400737434316793481507034375031445804942459171683525088397476568345963837291482984725693758037114052049575317390352082937584785990936642194816767773456065315953333396986496217792315415071495668081130532443547188991518095907732116572513296702950991053942059041819317913730980387327278340834300640022206867424450878499593293964752599635657651048458285763199378551884274939679223618010940225453847355735996137039317228151709275194062774558711859260253175205085489545799566386006260844873453994432435107002703886386056960766123284104042672098102752265869951218189280415827799586064292175506502445048565560690578436345847112422856070534958995288872480181351158163875181311899870391343792984296174738584493693600163284994834896117856302862737275932509860129440175047712705126640796083547890651475448561444757664646155998508661242570086174164401530123233029434191923776655896569206437254785343197840261953995528351661567365129216955372024387233662649166896625700733497376376884748038274664928948855498043314826753443299549975646993606080268876047705673531700859748440431475009989538366801807215802372584153512434928123028260849736429776892786098076714328824090170652998798679602010420462573254937772591528297820384622709961550836423177972780761844651456880236679229575934979323463564519826513325648467589525467839218227743456048052061563084245265963490494632022148839004024656878437380961783971322424694747840852780869310473820395009116861874416995206154360811564294216379183988355572544259924561024496923807804024602709527424122321274052830889148343753892933823613059298071706010099755276773350061564397212435802394716922846828681156557580915744099113580224688290369676316278303328996914987393187570694716398446741441330353039496040251200313934248870464195613660559358359113225728865647444822943854960101965961190534526782172388801001267380533142543956145236595809480936408679397291912814251263673904780975563796747594526238718635096916007695796335087672641775387131359004891443327185789305010036323975721298139792400074068592696884640844677548256487663233496367796562305332204952867500878714701929112512887269336406010923280052420379183193131345467202511236337352103121949482241590278299195063670523342381882903181353961787790775775684200552793623455743092994916326060043018579841986473279799861529363705897647971927612194008366686759809552173817281550511276523625204488045200668448454539968767877969031617734161535927145927367962477382983548165685374496067613701771307685184296191244510209773468626557885441984738334438863524398527265874373466616173457156026121326603863694319361122344986902799430326355539188449107480809143200435132537511810912673148518664486996915325354789337996164677767477300059722929240473320162169730143496723915063047014080249814441220955104981884714226481826491581778708712484462795461533303497791491690978267192823913200311116549458740722262363503081645408850864020458365449328569095229459300013268588366513627103192087489348436933062713095825518858640053262446335806229628314942308235309428848665932916345188298495558077337100703942026585522062241566732266211481703588403224650092204590984911467370591455503623709362130385896048819206745124648962813865049793251605535696280656670430823661502281885926178926741817605237625994112576551848795331541587142144443315029878777923870976156045751330594678019713718153870973547974844401802822070784636381483914870583021612700390207039279658153922132824161141629920868573621732735256038078308161187914705036747483918847687844090827979509175359103437559889778419499171950153622859991147195188118634972639299069181752092860129091059408052224643165945202493738275149257085262487851289245209691966299535377134182269810114658101358001533192795035676078712064682960466075911828795557848568419396389724561456179264880459519350639814928433435894662453050188106713074913509841402723614499022453150681728037336301790646002014265644695722885289827135730819452928347625898817273009156158197312345446491196405904740008343680104414363373263174966683644190628199555746693815736926028369563813872140165428429190873972678132056960552827841400252068640060540366037479149210184635302475651265526900298212145291103017767479506795383667961061232964292796461807119847456366329586761204517291342785453875106313572980033681206771371344563364142136839599167994428768732752145360490813210014991638309068879901826062427828333906430257735096321082481581358362147308587634816267264075145803657080175509187732205115043253982474512700466828289387603317801034991199980589892917941586385551793068570859593404419049747297721041991218969295501941365585022575097223437005433241143935006461425715756512591680903910728528949967000195598175484038680226519904316698846921602747066731279383402508401242307822796991455198952773362600545383225195402360605144344904773832052307183358088676009774034189774127595534045185326803460760309881785990771274410396731570944842988032835064126200225341391153268991569965640666638368025530245965669689235326781009947924138613610924206551701950294033964067884499156136237918538003500069797592313040310266939617496715271357106351996134669033110075228427945596420333314689121077465243919639232353168978364240124225842346236980078716698378384524237802176808978304422722646067565887000480792087444073794403197372221512132169726321077621862030369068812436075033271737579377816421121580338707050937022607620552903413500559967866951539035374819669254748914290556310944144204552888278088494631506879352586596463250489685684726839697530023776975357563511631094324563767057873344764964391762777502263027856126468535899455791013723180318306444831472250121422956379490807164897441174350828696715680672500320710434486332810493000403451214138762564920026584745593812499728428219522563472278659300513476961343487046564757831176578334436676641637505099030937879208770341573930974161490711511349069212871356974281330594047654927464040926096928030958440903842481172236374243504949815142707436736372450197007376684339177255664204003373821290541946655889294437378626581650163496113266358586683809497282280512715185969413397924290223153330802169031918972553197588002569969671472121659815542183804410568689184328003703485610819559993043403649081664604140586878755784995800312107974401711182962485508986645939775472947262330113821025379445957891601972694063969914758768668853619461650367976263765517447525290588643202142938397305544524795548828030174223874144389112615977577222250830308208157782019024460570830567670599956929747433961953773783273193361332098470395119031752707412450939437847916704944995481649928787286318625671228075311479844727794438640677143176360631879353069999123862095447171215557119863455269503235572886645355770226640485620591684983942038099034188405360248162644467236728147593883423945933966995607880233818997599523648062738214663009145995429850781571615295043711287816970610163239894496927994653858871011295352921060320551799969006988947820734323876335300264173974450685219560249659822178271647953375742728748283881489195409500151415593463995021800602285772515992580231035249780955943839891365412904516936013809995307108835146536794685859970563994574376166673887132224969767117668217769146779079363383589821429157427169970541411453320115116766841022738903016539743412996112775663069017433075974103284073916452021181073957640020984374193795052971640912558232046663188300114753548413427267430636455647846447195307911649971596490866697361610320164286048505940627134957850003061171891980899409809094282301180103307041257546161271050575424050539361920115907651134195728670043969296793787416113600139202763253868557358892130834044895142809999589099743796138250552676464044026746339086797230621897663842155443901439679638137879888684411541123542643622642440821062629377897890356588546914381645328171966124282192762350238686697440081147129698999804647014399629699828582219374305960747679626759203869122998639356487404878507673935325291445615295547476493509243906854120910577122280876004750433786897874272384207379164234187652980538813357916751812841887451798188561450276634474619720792465599038236245376807569781766037260854431575895568363177464711965592058230720930013017132865392270214983307907278802195964474330651995751407757435188163831538207296627513014479696478990584355046663067772857171375823582106584059505001860819941309337738153040955126846209181534380808529433005469587990371557936515704404602921799920744880442707316130975458134620721544818679538470451337192769063694478491647923974684452440084041543945917832618941643383047269077181945136248389968252546250705286566241205900671195057287954042941046026985338779466457535509415748553703960525277915495350143839777615220935587827420877767701296543127071893694001929743274718787781662524565386041787285316313161216463836750494919857914345957012995570716747057099610301677103836648310291394038885474148155510667980477283093499447724609285835216476903918810565135448420937565875424664636784358594089426598980027944740190079450737166929676789238414091032552917604386143064299967377182309007544164461874396814155039920874103931128793306107021350434125639002995430958366137866282199071861180053413374827156808729731288363155874984817488922409200463236837286402666753498746049096430529668590673516439774682652535362281991539496328648897049744132117230152956103155755474390037652025349423098515338061600452105732205889260431190894944956656996888778164751653499068282507429321389138434830228921882548927711911499356279517544093224633623363587604663694421992727341515496776911982306436617320880680494320162565486767569100360050435502932237565565903469486665565447271671995217823084429482666025665187599920332567764112639570465029050395332728487881853586593709414357508170985964625355605772599427442399918425105487168138599661452385958578660665701220976318238484042860025280042766817519198136987496650388550460559601282266732278414182918908936852032809771467806654222438901847470195250061285680427568753032850318095409597452368414351397160700153484831077873092394947658005068977883642886020604670572284131238402455720342736013448111724488745772641526109786107344292269517026951069458846477649621307662888788742271062191375133388596333682472686666103133472420260687947163643282578565509900320428618949539044557911081672254574679340435909102075957844043919469487712555977274015699074084230243396952854236945946341906575511319815531780539371246265612410285910121057672205093136296706780691220656676849857490902075375456679944917992886533027032160177379652366732244892864358666621263210140615901278840938739163033045784265018457962051971878505490309426256589793540443247666508089293626607374742401227081049817683188013375597104011957901637867303282167845674401221743232039712377889581463127518240078566655024880967313686899661997315551651346992753738962003435879049902023061934276095646783199954799793303112726059448602430054328649093368154825213416989936432404954338376090199738425454375818261505281305996229108296332224278533460333844773728404532752623451601151547129824158959739648559085557727356271986476486943646531110464234079002027427714847423682615576837238195836274465218800217696968797515939264250135412563975423236267929827284578680436839106793189480863920082419331270275219815032239624678752676469618708325256479544246478119666671972533200348158237749340516718689405840859519906888792969835765071924292525468276746131874257163203870846491167100086350205593835235905976929400819442478358095958394678175750149347115957075001146731767328725214634849242586273157200617343225880143631782362786900807813721232288944471397548193800179668898802875375214263844215574733647279612529614197588638071248827468692259707481910468454153648721754284049505657217604070487141967514116564949142410402714046679767484449272253535022892724508868226900887502980487098982688164557062511956932544467380684911642134892633693957065436355808010305659274240125283821347170229657507630706204348923143773671876580597107672457759754868823866604764487629212728376723763642614390596380363735671562674684146634353336841949879018904308295078906043689922638453435405501389685993176470497003690652683156492691472721073270224320706378972890789678883038250839249843049514747815375652023581873684466169123606478997628060293670565069354725522542269110355566918139132289182263818875417235238527750815032853800489135549296444618381458467309832376049030716755469905910359572296106046913033380374505668464675454190402668359735442124418136835611580784570053426817593443380667745548560526582843740265131566630139775512262621859428393427111370882312131019525367050956654066917243685137659900583934170493846111599290095680303929764918226058108743724850319414328884871553615181040519305067298429114630956374158960394158966051132842458213814831294009919592471853172533756667213611553539427456863562425826770708717665480154692998299817042690204917744667565141487001249424216078301746091934080191063973852502205675297498892704560643872471038792112021275960911074479732044131789449804176520328608061301649724263303791599874073597917524284937114906385842053303324599677754401249788951935275301204167111544421677006310065223506194215404384131226091148003765610831410393148669723576491644243673816404359147584049779517210520614525386155788109017623967358423438637031546303676889236846335542367636942903481111878681053947106740193219128900582931325321796703074716505604714175563776079153470241519695084253183554361194730174183154493699552373115021600621732073857900371923278703348594973403721305230718938190140144840522627077958575785430620211825923113223104477869007894630557226553896948351113429221370700978933080638043883345846163685497277363762647297747101624552035440144769373213625079302838212452664300813466180233664202622870340205142372515241271910663035739597040719360889155005525385236032403662947802127325021371551791979184838045414012162201213063181843337267858836330826565425182937286023587650982895021115311592884738501806471017900434108196585508439625364313912959550986702376255964769801469809624189445964282323658945896245500626784348889022543372919288171484718925206584415173509832282311891231935362002079677776015526490272538154386693549801267881595194041906743994146243879886868992674974478002577839183371184562798500503508508948845407782668843417503842801159692856297556512266718135298859207202945216979862757585363718768574016748807679962732017395162939294453124207025007928691332150715115223336057878729322480173776986185198842602848586962446330369059205618995552763839328400136759386320114204230329827685377284236133105738751674401898690730108960000904063165478817584830675117089933646928844463218521203957317588244452028660166210017722415610447643983511936458305245657944330561455334385188421706764338856165822846858500038521631592639448197805822390633477771723362770020311242038009778695381869352656116747629310332695678418496751875797596668386273800219116014344694833911044287811527374390017267658884049905792024742931183560650749212456304878168584248159905560442265960307584088374526580775546380824980934347030333976817462012834672838670247102209177344781122861157770796773910071579852525573258417761180351062983821739604535668946708303590057091802251336055279922926845427805666821401552922470559696783736863505303482350319355857841549075421269472102226351212551204146108805658982485711469045689800763154846189354265033535639773526273219804396513945290561115359258169579313144415780672288674527267975839843554211385830299583175660611783768020855408353904014649913390373704077871052835130097244821555595142069537966261037300338709715078978543775979658350661711592121505045056708901506343018119475069273401630940804375830062572978891468081937504096020638263155464486464651347223519786086054887620359399856041729996836010044208167051389821232868049130459343731453768801691625111991499327681567178995413629777330535064506490794576597547845743298139135816976444947293001981471986110784902993537466592090563796649123862621328233523971745629345763109504044602269956806664832228847227189907041130626871268802038998378798531092287060986137456255154953283744411941953969629517294438025269718429847077957978987653379546455900800837145332294180436239698727494134779912021451008591105240310315141139260709046047547537904625563399619790765506137649554543325189866842232161621958996558295179855992956861600675755590174620618223284841752080066118844362484355128246752168819492314194038863319171600197109590949143170933499338649379428947316434085291308382679703370664889089571408983355570465927482913513261446505658106334489528650594747608349827416090217069175335973586789000383483671184205722823872914488462653114779275865205144058191034101472291817708612349506066536662854658609709184113111983918869792522466231400005222169190983658273819477958535201953557714942961348455055861468366391721577744417088359330477985225925629665027057011098369409461828585442150500069307679107858114558408534092483862937993010021365522131125459606496861878561122809627801470243042366258732230178124553481478818339676695951463425446127028265262885581604616556531874178335838467336430899251483499321083427490386503937474021709565258418604667320622430238970934535126200072208269710207943624965580867092799389873394501365833132101740615735594294733417504093671184598874683159269554476297428815840879683425726260026153969210556685402194808853371513834158132414895484504924859886425055152158684030319104342504517595553693335180680781806690343126109768375563939871217803206321529573369447350209566412046803402990731174265703845089677862509925230029669832456311552368804745433301635983242227745806000014177887992536768188487905771767553792926871697946705176226587865867497336842169390893693447265818453104831289577961648280726546514779186952826942880020398259268832847378293798745983095513051238670436612362582490659914369134728990899617374278155791135715901990849423578605050206085715583224623373414819329614825049674347685517973799310117553624995158833345138146056842554914407420380720349762439454203044915143725507446118057960990080183549906470114413958689984533235822017651648469914101713769150822839640226088021324703349907257031032868180108154622551521348853571454014076227672929966037084512423409967030904230142658476234818303136569766508428570821590834951428302913336594114736317283388724221091644746763356113291644751233156314583842851634128315744355307463810517914558402747656835037111016470319424206477673856626506393653968930196519397505595214887032966004026288315768367913742509340849253666867856798654831910431282602266099241256217057078257714444211316390368721172513710100428927956794298297810296902019909262794538223883168856249036723147020797835069534743556236436512220087659660805165470632712818131923336369210854250521784482519648081724554465792530633168795991388169072842007509045953059329295929037672706559883264942629836678379557637023107338237625024908070472296330142077510337457315246514956237192176431725800450798812256196172725535009843777099240640694401491077260942384024984395104187480183540134035882623967058148400460447056249011958855997366695674950975377078708915152181001494843651729846478369066449171828693328765582238500463142323166196969734854210059392919330416699649449729339946349010991197373512547268625991926403586946841323342509686450598475117562816751165971834858446880881202929123785986134855971856754593536982198119278928689900516010407504016268621525641039106762086413252396396625703995328906852891591830709888641951521790421986352361473516283652240157878221600470864396339934038424570975924252502120013362663124917723389744187856581267749043273717100247922166542617142032812861111822846751721211246861064706507909088006590499827166883629361730884343663140321027087633674120603601611439696146933255192286519080353086644349598742506457069761955781256610259566306360916267799912996094396108139341251215194977774877390427382878608611864865683275967270618527877310259464327191030404201806365797692470015392013498498161693167551274892944938287051667333829625342181081873626788630406141158075274893927432426841607747484888397665303151497378962169890948245206635131537625679094610973270027612745251861823732127254938029674904449053538911120033670776107556979771981097788484718613705932858002546925542592072612024065636897244788427693539588548593812026416114262335230377580485723157814281810782278393489207092503307040323459388881831761531453178776130841002171062780897555076276234877256257246139638304335536373240397485845336973623447427891701494561084208185112896114965283144270196319544179140301819602079663619195559703357964127088364266330354749004986680886718356626920912657653463680393501289096964474065955814609763744047354113572789592579868534661787128516129601269910350166596671517161652978492604827853905619376121433053377903237142639688428057862453326934192765435792815526922336028013620255541647845554750527278639903777795326334079361087588052762436153771819801738726449757916351628214126383294166549611720846724765111469794375130167476105973077377226071749281122691920914286644080614206172774233814628272950437754620207698459634109146882986137359056884945013564745372994166675771122319276256101007626730461811731919272896358836486898887376007186623428557758716006830644965098759378111686866877749811559428026209706630579745223910104891066043749772458526886303339862785401692541109730660557442796746412736198667752711291800264196408452473728317710054849669889766318355424370051796445587890483962107466287323437351489128905702960914388745978837342032317679628085844067353167500597619865570465185389624553718208074015782862996568828790307942345355071217809706835213367304545066844285818192516463050009356400404053542118842353744035800148653501631462369821717090781080399295595868869202998651850430045074355622699984001138790693003045155121130789362165767138521162517786028918633766210694071171377197047906640291727889657709695675757396341902796630460104127860752104816317266049679280576445356509608075477636676383366293657732456837513241160324247607330300512324173199914955663952029340659933852926684710000438417598385033699514401982162790471092966627345452675397951148224403913699804311347198899350855834227383641836001682090466023424976378664531033573194620403280627077845059126959311161465909294038293200819433741468143301021317238231836962178577729554733590191848628640231941961775045210660186344519186911185098630467374909261755249224141956198878227874207957111797068447832094943918220384866861887315437462757635006157215894247985004089238175443218189103353150152772885725120723616052765284729236723376043182105398049033096284410283576118291037798826467835433059254783039153896941559979022169680225238487827730222984842994268062535296229269463993009274036584752441337222681661365087521099171098170613783456929650928254993693954129226524642948669549869825516968397050469465992455575511268872559656314248168176117827959051223134018615540469122802300654793528175359184939792335080084587656960610016253368731386224640980419526795062175457488695754451658518655346701685020421619948022203466101105935980136718740071016279220567656815587541696830370229231142751148110376942594094965114114756538362401570275246118311881710071315151003684546574522538921626996901141091042855559287723044882207943858318766027506814607713463799467765407377725516012977477673940816466241623272546519814090628533128690056919190111188265273087653684888691860676529600735671184847731119624632084150951299932051443886971404127127122757170185577443503158771217107633330871070186453332000498473913312406650209155721263457840528309064139827088223413236045330597126380557180266664736974580046980214709518491311320905936392531759189885910591286244706242123254736390852684214644112350954431437870743333918488455500206363714255568135003683506314973972356411613287720741805093005099401099379321376099984857871751309621878465499670174359014222182274731815209235785740113618126653955369385446455533429252917651022888629644016764250098154334075563210759004490281844136982403614641864832073072390946046780232053619205221440016643172282154901419597775389076639859873953388839600946224202947050977058720607269250878403511102335740655029283766018836045880521897867541966444731165414567919129046441366947326751423924037914655976938873778975419028461139274434928951209349271933978711116274496699796109489419102817133404626260355567404359244861762980579215718364840650035878790702335487727612252628613842538440502836261835595638906448053466444390023140621216955555034449824787456645460870033570024729312191275392278414204767090850078948463048929524155911933079824245774960089072773988802450351273406766465616819474489160773986446391695309487618807906638750651130234223921895190508850191793509441463156570201775011744566493117414396328460777836288942752404646432740898753100958966447022014986742607314081783816495502919297381354674598447463435986890022396221090499263062729394517552776123053700768008235995079138484690439351403327787985635468160663374104981498890214203378221303120147516912351746987945155776580214607759404486950626707713591010642230377967310910743795874991176879358372414630546683350052164367279742835113710698603850488075300682692849498591775631805357841223666083254228824008732981856766975999367583398286469274233735461108964268842250828255539561131138417766509017209133970319571270922992295983516320148206566428254792780109310958810139015271587478567688878563771906223509979379610474645091978579643287340666362145538942185737518283258908799378549106088628886505343040921775186917036979544386269609586766606825221458121321368571784655823082669304720495934548264214217172939901199619512490010241498846100974165887606695838654304056755554602627835966692723990681616952404227743582581765571579548519558587489629520533906147837430878299232831329278907776247699888990802448176334733393651623315398645599160788610151683221317013465490411879229594064411304076395174588731126549441004007250023611705561628587970131848472071945664927922324533712130384114250175484433688286590960417949774010748659831890335615674659186367157216019233323623448874400685874861491827590030330719697033792252201274773660492232009493011387323270594875473776137593118548319681603666481501559763233628813602153245973415951709989171004486522951981772252132650863951194785989718072083379272781622676831553993689392797576309847059336351999177312274987055531814332727577008643352443671995959965376195392267926039284753572174303803073015263717819857120316967311265969435022520116001137481679512527961186660842684780078324180754062459501045951395051717246852018081628549601913512086747421585182424415706947689728040400263780694218915128523879904245725772684835138248123072247378700413433208258175444927181613784612518694441187615735560361605051924908797068272570543144222748691028813953034989210481220627250351007705592853521267031580844339384357897699248012778829116477522871115649088049225745540407029493541412500042160970841730723739583221298245298355437845922388841464200848411895080729291875173049125161509154712138915121661923109607448824329560598374719191207914894020974265030677416839218317825674920867912196524950449647991656965716327241236135792564882918834344834026738338785547864585836559294836512984684092606732178886999553831811051146466954814232995317064856432620422253686140583975746147260134029016051379881972179381377782795893613704661822920736998088803492322765303977992128188908712250213873350885661756175354552532910638215906339123284046598797971540702718424543487754407186826242909275952013710287057301311221310140855109800983973315065640942653600403261179784733030431369917152570780640023349817839973256256508336196812257254432974003676234774314542817089212245999032111365235751014379235169325496208299762606032186164778763847544039406235869485297941050682285327384824162750313953007047796747870919708316844319361691627681154071602326812331551406403114781399654758230685772162767557316651873575877012451187074693214671437298266277056819097256611900493381059801692950363397621193738689514995452579349374356246001752508648387033605622088094219767140381203978281986637736794854126567008569461567846554026802813182540274059486395936561431449624012819845003043418423969434361859236764984255579361582060434552575485215694316140079382017343289159238967534237821894841819366553084079881225797123256305481956014678009289701046315718460013663547214020475711161751510902489265771897334519390073597931349704008960362030151704123482146453010337449255864296547203028554290919809689328232709107026608443335107369630294198076844934921361833806464829987595256909913199719847747791850937319155904752454885094217740563472798993843715855405026781514555734251356021910998271424643628755649706092032598040988906029202194956884208180745103338246761179055991178186657704146226266673381012109904732633370227526822994298191877654469247722313183319822568778833229305758426735497840883609654000428005062891589380225727907796518670192180632997059377247792414373088968160494960097469091493545646830829102905845575614555464764673212485093135637757962535912457498868715861904097480335681385902598960933737618276696757297467932284795494221206236592704317961768364175883937958026666954068405812344238343474465069595692209531394178060929843379449515064250181191062517653679692593548091259586507752301128492561749492363133929173296462772251008719658025098442362815986679390033561033709898158730247804408469015847995771681398644753968591135333811090447600596485160552084995821175680028268036850089780034453708241661234601418970965304651943149450781219456435316659380769967287603518934729137492518256939705116426150563839488401635885361230193512927213031219023398650796352339967656512255746368648911200880330557387674010541997249879590726899778631171846544232556754645198556453115996358141201988242088127854123740012333190309725946305218272745124975415282639096450635002707037689318733869735537752533026677909210536623883095606967289486305896817636111309412556872556723206122067489358593651932573397841649922958880266764817311811549645357807314938851368565515883337889887782267878920273513728412021045823324265097853652252573738908712109862403396379438366211134688206303190896381541162238329811968812768553075881213467559073844513670929254393758093845505957070778151782915473802628935721865013427632032457368486249755494468872508660551263050163368627235709150717839185529935768806206378666020424479339121136646300201145876471794800706204751075496449904556050742138514842882690039136967811603634282586040255729984746610048356075169109245426650675975056679690465822063413614295565461576713065207432062882722027617699573504707524727431713626163517335988055667295893303083308495428859193843331226168548632894251656770020602753237404085257710487615994760524617700165189609928604295771537583201168611545868906023880084213264321393540180482864571529033124170997339471330919424943610004538929175725670106167793271834429432667029524688168647897500443572794162760597090287138100112408657235414656009141669084386653144913863497013826970753015356984784305953924947149429369230305351684449478658887177845687579681153051135068623854313911266357205871721476057959482645564114899549733784106583509982472668130654013907933505207093516568586052110442250042027365544036796501056103634631178972878689412198375187254779492097083253548011243975837828194939269234899217825222483015907813136585599235738226971628771059594131198647467571823531494916826701660004916055757252676983776486925965618061672419116864822783574225588626249898939344696430121843833852464786235912731964244255772356836887181939259614547762601086621330684860066027629332604730992176802628038803800746727790241636760090889965281954047329674773483441344857486504715688083818393083262723073491977164830865447867078511985797589198977522569863412891955297831307886948538990157664961808973445382371214244808621167072485732537783363667894385627424238575246689420773560557687786781591986084075250821236406517015524739239406451127684166169557279887010303732417636130286178213514866073121503545223139186006800988076661226271766014197783007783967467622197072919850116144248961170437077682702508820374745720010373921065940294470775019615219619900287269822112632401695705673578695488683904589712064606546063904346288802761118557275411178359331512234146210885873636972972548718576546754973731756439524821508993663587106919158338270353636927853184757259362938937892470787114385216076213640875623649113061420939110638091148655801295057120735720391828485667966925566028281295580408160557064493165311386058206387785464282743277503234533421637032294082356705937972231072183802874054730455806166041520731736671615221197744310030874192646191291786514114696267470565539720434703529839073911951511526330156491908178542375411336534684091648117324660524046741644634262656103282905445262312312312108772803977835972800667744827651546955276516261595642379788545504995466464150436690625448282858883630383018121419978915545944381655726005105320219347863060038214554762556155772609106554394022486257732592381603778660599990824391332282302484891340761711622962028125307961050549060790328762409269550371691697364273256652353037423537416384590223835838775693696723726954471733650730658387766666613995116493959271272750914787215402677099498434876766992892632694138768143036268050381842278012975409771878305225782037996586507578419180572648055827111289210362551676737118567427273178915199135333111927391363127283031295036783713671270757417969139059736055728395386358826223653290033364712656814024422905811681197233446524264394357038373117288392423909425106778703516000827850163691630680072346180311083085832480925168096883559068239404745751424492864998395801459404674672617062124519240469289101339955671913175671824839514384352285938902897518143983511692641950566928747317051442453654645891993383207247259876046865604706438751446560203018285499351334612669615519168792343121593770982380538863769577772260189741118530526143767061628855744475495183795881375665054640089460087717226024304415162336501129653051114715896984202506776178258511717389028656355205227536438402358018725027589024288256489630314784353273383371416441574366101422431703852486279014112708134902218285276697759331417835344563592229440466038284866811224852273570702501416473615086579861042841415143610499033328154993954626093457401452821559516007331130821144621989997891638258077980093157617259341808049864538345254016134582474358785231957702577134663353087766010108797542912144741438526574125329460884790417794408324846108804199935990520645204834512045461694172973839730842394357934252511394653608585904667365738228387629495582003695226267722413389492981686158309975668619976917657340382637947708512571643362950353568475871537019287206082730658099658853364451203220704822132954243912356858927953517709595943970079220563724396325424527159654090162020108551250341541538090331319374425501716998610745103429194358578021786680598886353903500218596500062259567195084025398925730158334290707637092973642565321768206913652074391224219568984660219661028956735290898277364401188676914403432967867651599003791038405078445729065417758761697023482106766269982579400954581218102740513982904533772404391675858129668132605182983168880644546520665525232984051166287101038209395865323425965231633465189746318810627535774502036485690871709658148744265408840623219158122748853847423833991555360176748264494742461915782980442180256843430407451812260455181820857181986626094946601267378672099750667048488491722557915213653951150084516205208409632394592436049835964229301520125811267865202939804024474834030975603952161027419228421423625922368094176268068292074060062302074167454380266334214192805599398111275612721665505110396966375417759269263520391234558119110070056179444813658978705831840618702119336399766793271036943082373899508348374397066010421222682287033823787056055056756174693395642922210156027026071216780265429951188663728008375248650278836108058084929082511897010932962799135673472880082549046199311539048186633589208534085682150753156512870639110440708323341945904318483009007872886494401773105977988624943578407978471290824875488424144084977997248552933367488412446964825874994993660843760230469886131151714497209303029553717391885255331418695489913200755418779861960785961685747517198194611355338097483642962683058164919685853722900174642073999356983128274360824373872302683116315876792381207487294919854308393137598327688948981031169894930598842366628462992478448043067075249891275662111083509879822082510624528278339122616851220962731041533394793511798312665430142304722179419254827203232315510843308315090211068797181419523127021687679717190293748421546736004271697073615142001909523473064505869097960229348521599362171361801869409707137729330923215509629237593661605359197848547263103986402367642960166717176180964829758023237797955105220973233899705823079577506592410544293641890839735141411508874802349223381357014228887231315650369698293806945901119509299523203455986577770540111557028566156073953712905304364621459781859568279149587050045437756857759590161318418199946602904016104953388231696587324057106959427792625467186030849344002662422175165406369311700046428181560757885692159350409281110600127593020714844299882046601165579165802622229084620432474651668413553594543443161852944868436601922174983323375042021517308810803358010541133753053795435278644891011988743895528534728824501289423519754462038613018820220672080043428816303302201575118357194836325426977512778706052091138366016669744646959427603368326952131720496260524748499580494424810156309372985676888210881684144385531774945999038185237320328949556513668042473548592781761198086121862984427118327665858441713715518406886293452407767122729313046813738498976422870905495520689851469222053486669509730155187548070653222288691681247596141540719616748284124683475824860427171991985295504729247629992021078432230412253735875478398363659243487407508191746441808340159550029497860208309454732688006792656093991401403338763035888999124287707606563439249054829842805016892831224096503913708889466870093484093152124099727682174294247796075886751925474987036221800771633106142649711364205963193795268632653115717291746380936685445301497524475480629138360519303076372537933359467320443746005898376306864946763080396848954847568571870787294492517901178907302271475893185119710009540616297904526472821573679766156664960646349482465255310263901636220808042784056161030308455965934648640532162253661830280079361619759727309260929816310612797133931883165594342478672225120313980709758929066398493404702742890811192067689416235838682093316820650209890057147366328105515648519319925708698723027223578178345679546451234347265063000742874265948064297295998462313936555854615411728844449354909000641426692214592681232065000471056926449855374348455421947806298442042937330013385970668995461951842550681013716957013291439865744870728459681329972864964968448037044827870576776870685042235107187493403342833092237592177898350140204408751213384066570225213524040168016518601287960870595743664642019799946540466775218712116479659432427983173951533534030248453669573231564024806824402681058748921470754503216268464804288833305602953280390384834637790651157764548961599924725213108413620464210603710969160331535360589808318652366419863019078333665690193749925002839257756233466332753020541546547209732022196246712794995161676624603172871657717542184303624106355913822130493881408263902025138270738635888848314043106469539925957337529661252081540768820051661470043653860531845087770441368897455969184599652208397932456491549840791460552062346357683355208138502735543362640022908474201763124628622443118857141367956578532345379273607624144873783480496779753050921824633556553600733255559295384356274724685466472887022219791585356847924535363968561397869393581251182408425296149583703232821249172859504164216667255707035328538986780752050350402550286105701382633570821325885316719909966814941972349897767332728524595363132299056569067579367748948338297933665931519547300048016908301279441363993257931029272467414931590558982573291126111218016495054270929147590640512248035918000581527742869753414720746577616454197543770146338331133897334968163180324960162663790252646944142837698230137629824091083273861905374792587317349006818926873851888794141098327245648763615288337497161578731394278922970949347506945060422838912064836438690825919627562459689392018836233580638819304103963958757587231420700580725362280393797202343249245276815536119132000682413939189652076272625699577557805937518357935410923032656665488465774940629941009138066991728351425988535809752399802417863075821287416490482774039823302449500007709577403440209963467845710460483433108777044970210411447504747402387584453721452356462764403884744865411101338821334101814490776559807000180557160302083954854862426752160822082875111494882091301850500339930761716120258438335236795145835962922068973904188532810523673118047794967542395783424579419104919682125106370920532132119834225588870822911173343400287055779442444969035272017481979859363098038398679395977266878571557415879739666643259453040587758714847611031674406105716232459339500110343164356435557765713846922486578407527589889208579688719899976651860654946162402558577647274284275809649635940460549485180050114337507036908131792197703656710769605994321485441500489424394828888670448091775936318264848492305852585844796357497052619216117709186294500508657850226192531989048325265757666430960818681505901851714616458938899888964776245861095356196710989813227366178015883659254738823993331770556338960064580259885613852016322094138802229923285324209989261146912422562296655891011916135164197245446266514845184246339344462949759328728257048500830446513082537476928285307951802792398761889144762802534137495005997734276202733482786310518983766893243747649741206908426116289731400899451616545337069094410351761275992571067978973584746987720051956456857662154889490426065668600742786937089873780946127785100611290853968273952983822484145105005134286431037035315180218899534249860402453690652366308721868876449656669199500906826573675022879293702369755703562711692038194268033687376456800504830703804969999783730632620956651653295855217906205731053936911860593529753052432795356338921549688299466064821891496858987659915509402408933627781992753184651653981756306559226001077088327059810537274296710547503867451217810521324317219266159582703098772572692223299058037442974579468179571684369281147213856855636463450072130538515430188352892524434132103120358960970261059085028392773802635871298765475540867652499343960851390337958019330791342616825817380372124769573489483697080414167195448219268116664295403165184715169239536154931659186378925981502846779185835244128626472656576136933141556365616012886388585723834452519843624630650532324290581695277454757542676754991559857687218215188107794715980944062274346962962153098351019567273243990181073262903064686244765346835371583142317734693654881260209930411074089702496922915160689820398428268496020689836846369598321773202230240820581793068695093180559417657664404162586587444182492944049700129417705661440865200277141480421291538664542306821202245551023277291294089107119593185690694884021865494090940319810728520258145019545118973945133005341648089365999533828614355204983194771938494259914749895537863012970836059563940513835292549740496956944982910393456368612916690242826745860585577973598213096178584633559330457395265214502492125196375757732052864252079592790143293446227314527339242014302584733133843300049486665458442187906980666647445815896272657024655894990432785265436819074825521901077777914283737542506287732068063669469566211693817744460757096390420930408914515895780660624827970966940906769324636363405102887151145149949966023874422216796577819712017885443755641576031776737169952267891099319325198947397828361440719228555594709869745547465176609111402343950384435074824491728597240353744246050965889998351396885389334407654863080876075274196027867099657802601550764610125748358400069878456014850649480277325939109064663325753605380712849866049473474533865594184619234083687068603490414289268073496554191757395957791014104352152947241482122148971036752742492965626293232242411948574648714424439045191143078831554499506955433131136001571486869739170883050518158447471328510141807648565803248650219562006681395216045633518227159018211651552210254334879957789072899122411917511808506331360196800186327829578015946276373161968960686958148073400202398424997581148826158001945702641242991083046158321923305885418130974463876126186250649231645511232716982948411699262383807221966080226145927107666350902860852334482878111350646116244768405169455111028387072876646943318683529397082113314321321522447106103891741909612577964168400890713942329136202524085268884662473921143020206105943909470015696553642496221430798034571541597072999536556043394479965428226620536798135636936953494795353830446664325371504410822473993807096994957060706433446042446304285783867812667125251973164427830300224667234423601469731473504183519220998397544658072014837454572994151112639218860096322244028365856220813655290157542464208200509170624158254796403806424932578314243771949838032295549470878441915095040235759042833096917260156900376029273068284362596353854842444488795306207001178030073088987420295040941512744227406736862018017132537218994871725262894400301204687305955841206565796867114527305288502705135212125792661765923408408713037155579666543462137138344451720514819428151128112462229819102757326174147920726618122449674176163078933705366891273168369478710096912090420709424924256258106521979333948475772212098791992107497160943984394710195254703307764862013455110517776788592309642484624556630622306159403214590087951537199386469185956719145456490175184861940006007252253066625005321918410113171426149986565637173407812287031522630186548787202549405054696330788380677215090748516625104139091369310592636245102569758061399919899387942130502218832778904612679436482777822157417010559451754080062366083531744234653734839732500131836378694892213614806538524562620010138383930233214290433542420092575289461225049497482850963790877321455834534277860340050824924637593494783750206469810554883388429094300734235522089778994552991772846154240465677934560600616515566968271848223265278859571761043201401195417438055901514586809633926890499454953626197120546590841098361062087853523592904078279939255385707147496387775852878992909754885243420134254368815215224967016276817694102434478185574767196143130927071795941391641539029656786349522685320488973415052752319477662715393471158243818394022171684845063841144045075479884380347473929462641156636077610887625012893900152428840680497065178684365337544317651622581501003531936166953457788310082501003972706623373261936980155617291620244060300829418236602103233293062597904582121652279172261037336584582731326983504093736630328904238267437568083785819539241633013649666381877591715853364291188853279121637431791422931971907528222455837891521136329514605340863243379295365892312376124299278191804980015245504997164431460644486024166772389119447316629738976783589279819997702768178210421169669556345653715325864080195061259496657576862529053145388014184688792241084478221510088924054654387553149491710147711469635844987219115775466033848973389601391852519676024951034180716748771184209826623282061518147956977748731348110305438086442058160253741215774565946343456439497112446744141377166494871761333735458782275056547392960983490318045779002536161528453867736437271596053628427602698887462376339553529544588318639182498745333175755586936507904073336534681026758655082583512840486676796991406037700392348558328136940989073065926725920270434437921890572237379647254851410573105661169310429001501210440513376545597023214334915446180169821591880830060813533162679390343434659047489831524752321851140767518705994978815229972704317563710087011209474812225025990954014101370751247191770771618744549256181148802258924618068172534540756373832366076196504159600816783561829966465640399984967192115828024774411901836457989641947860226481229726058232050390131609308273505761790501042419890953141961123504054901594069356559856337772420908556359220961499853131502403454299436263829378652066162634266970786845467782427040728885982149233141523234853589436888530768554715210280961903823350099183293155279317335313647856559380989129701283069287074203298955211089151687756571766997604526314740285429905386785046237887213053966926471950200948005398601934356667129916726926097414638583041476160019272624736867330044976321949573223475805644342050266038411238728241345454860904098901553024891244467974172872199102718640238443781276654395175632377512073018415143352792018472742332187828180810531225123771831552627725005362513653211331248470079673237579451824534026612293298217398444028011986600260474449645009890720841671686242624992369047411582763696693269655109967499716802968271629202891820354467064750322017047422176323876589996759717644070007081093866226620266833208770097828793038454326453260174487993565149398978140368495283526307839250323258959717649045231615833139579512206668428666975684292683025732627443971634687777875199710167642390321014716419806475921297051218665047525139761151596970367446994912418543158024647298269003958236102864698224781098547661138092168436927552237283823132471920767715697988351214192214020804205291275205395090493115880949202892698242510138125258649308868794626042187514429367329994718140712644107747983108777391066849937215163329594702185148342783919300544623858013799232825801508642117249088386333687525263370379966864011309209439767958338226801159286354807050316119337991148699912690147203475298405000614522752491616245860907089420720743890845243138315464855064236723939938044696727192812600839963322566733374135227827222257606938359821959090503918740234734615021441690890616809018279743322174218292744696331436232415084907377866299322295937501087010052933947140353226995508995579681041618173363827923104779986261369066751950982552909244226071973919874565898385225182150432817918422976257919484469415549883210545333096860222502142267359302394767720824878283086395327835477481472340701219610475944580232167607851008587225523384279019322837048413786043079238011909956820288054525399368536689218923393442598275405664792933350885664716932743616021304546357488379153602719469108887918164645413986835714206878804754795978132986600324320117127661013949232749064103782133652382261064118456185300900114689208077818956835388912729194853972861140245434823026423270477072040591087693259502658385581589955801619443097836695575704793555349576393271355266116466646359525476382812252118863007309172615551125508525225673993739461610606205260162157295101733782523393749588259530674803566250651462826386916659569730171838618560682456715859030571368611508583418139330698695133557526447185539498057745823371684640483429009927240272096704930494314153442182313249628945764985325709220119810747716526936572686844337240974234875009073751286440000012006231958091520721476482168237887772772899835172768990844237663642563517431253724522835019864151356098607938604842842416786305978948983912543364987384217366070358758945478073294476776390839358244616105397671976274703486706733513457196970979101806786909093263482307378478642215495745525468743611919910996786998158883093773573668223291442595922941428467837149812468725578804718604283498228195769392747092150772199414526572863229534408874496898498407303598834201773421327768702219585037586779039916177445575683690234353465798612383766485254505362849382235996028701684320468018600223492005360388880568939523980072816689254282024442922579198465654242480718891177234417269642724815755935388749333528237536431039227864553096518999634739125476095073137734726000577083060590855746423814667779633828083087793435041493755433123267738664068015540715034028503245900537817788488059854259638735460137394258061877370363400368331854254175482029094366234585093965265546229510029452654893862094595970258332036023361595448785668234120224650564263944424618353433004476297341206995649037140097035763014398993357873786027694282315759014516065479815576861623653062322475767847850222221484290931593454647478589323549907076102858335630639941274062335420374019966440412971202834845993846471412187395712395415689844472199517073720880764141237870560734602390954002281787834187464919913031121533784712115904749701269563881264573128143330564456432449563554326304486017651363646720407632724183828324122045906437823037580708560490362258916092344450336315558572899141002824214554908015386840803671247097267865559395906989259480555422710608076681354703491142580521058308743901103785401146184603951593015825834919320332004759181019208647139050911121255872336493487883702525029283986374576845636706893472061228285875623752539687489603583576890707955754441710095707649257234583919130224168824051366740361542509606053463740812539598015791067303754725577220123583131572659069559905016740171655168930627626657106305941234873228665195427159413426542095556370783026628612822279186946509946090857997508862540809339456756167433046213377146031219231200244732901595429361985752946096156499014150313848631605388861047674148556108494341153259417288307983584890101186097424253683749243757450440662365580909187468502891478610720716487061013412610603807278872598627465637734975715030399431738282382550896181487890669025090569327017019771496142668039459438562390964272616480703274757482446423670323053646431503473422332795529659406661605350367111401442859603053299829177662080689936480662164772096380644998976608467459464572259636890639382536289968879036081998320748031771670185420623053107888356100577580980673323766558065772509911636512908060609428840787201838636829056546175099674429419333088713713182393253728154838941872609381900728277694776194417747165166891245314250529196214270433337551304362807022972055649088670456802328598171546793112507186191543073110835398459487181666945031211091760730139947289947872505666789618810921073746803576058059137791169804349190059975816192707055547497861553244107864610550046036664207553075872829485542980166005166774783969766322847611540109774466342007864947492527225319775032759187281392096454006328822106390947214748157462809468479428328338283502954990318554093532357416028620757312612754556243626347584482572142279207775275447815447326058872387870063464002726576638601236146899571090279656639400473550122320699270459528979555700126960145393298128962486575975582879940766676750751171202881618989747113941405464624576205404412092482733914126664191396470928301722144623596760759961089187174746882917832985476987215112037900189062910850009210030922388861295411518997614699484152912791623740575162824004688915170328335495724512908841681610413763853115093469109421348099577135145682766334206184894284779483580328406980366483401137228325335357951323523122410738184561175136155935647611585264747015581902094277694718618065050920671219217331259383190901146027765040243763004674230536429706899009793136581481048895413415049071169844858053633984533259586694154612973966922209489959078946986847111724293417700507348149667380737492109117535043576393908147701199761658246174386030756856823218307732724796396195525898067904873460621326550528109631171320833584696219819099921505274936692959994911513506892169231682824578493622677622223137606737925787455011261305754496182576124887425203808469823865832682182587333714098001486168336172003606172313073593292275833997592577185237700355659032759248062065960489897271711963912596412115106048926214914051294064699241450088885194687059875556838219190245174532897469778731463767597164049502273089710403553690669211957353252492005909116130927790907817663924532727617684758468624361708800685379373249962483469758588242920592875345604760073540150372960958617586340007603920068883817917522603289040280776808986415329866652684282177720817538699704251791200907743035300675028675546886542792463716206072490353305365529194979396716577242156462628797628412502491294921867984983939375242838224168896829408056806331737924820700636111089390699510901876486453983604505806812478269778736047454521146221052783824917158972949205518419815485226491800092381960161854148158442853187875433927680993956693338924165538280066723597447404016740346983614605474884849643177692845059890213650411921949126196641389064740954057622881507012636342483500246124962902665292374811706832904352769829369355706721408715481693280629272537020944308105313526499198829261780888850183233690435865380635664313937815572620611259530867212356594591138601448543610599942012003367616656484065080131001372030616467753432029162436138099829409102531231001367022334365442324003426965643664439871727837685949923667404804022437916264393112986320857769006729804727521138719003453727833757007581491680758909974185888372451082497855847959994467834745310034388406738642395441104627156093265346220371036163318923290799778893852289661644117883964306686494992582466709396315201508400975720533014470730269810974684631859265075855578718335551218835085105993237925711817858043666054902291078970406702610514745488155069899060889183415246657574878990959685770995985753137045225066864460038253726728120252547438016950506291115926225925036874774900139454003683302071743757444134458662266660956670817644811399449884888612728883197144204757033156424168060316859343439562602416067861691697418050297128678988975969620998627524937017426200537092256008190733561870406043243199466609246125494075858685910136383222442287122070967116407127924904548569433788587153964151626417561844601292943648202269805693859643044348100163032475593679079759530437870083510459074718927329471052347812002127665520814414903376816343967608511685110141451255355860672807526633218013267343689898147205971926593186038341372503998719664064057622256090056074941778734437915732144331322612667206611004009951325701768601245318538049228853310970858872675039695488897001509073926370455964382100249932583215002038271641976565385579174707118620437452953226617968454901634877735998635181397562614418360527962820385376865695833939435659289180408219342322185936912549067672395661651788808511474519035491726227683018134269081686657060614956699168557493895716662682150832079739785606585584464591021236535214972033310273913893489384532484654443783341238629415228144647099034178169494223449730976850070498884892151246916367087230684364752254584178643731720960653953523275330903589688261479900553687681410249837780791270356235129805105954065348763275591455157606077933450790053581610320142608753732907806373129445817760570077203913683197044307561769960230933475901379112891296990660750411165415299711051444627166449744212501057302762497652197954201296754442238170632211957800415904037995675244377022045795273491333055710764276736947300138309802139803203811818020069384766530880425216566429004014097947148328069483732167795844212658184825172326898206351566021927509368847596665250845643050985705053222889519431734704993504031360949344770687520893156081204525404300735022387070545408732224730470357322430788946038396416859190609235240351109398718039052486889361491725361965996093106641564305443466145486141217832189302314161906646333975580397488493551004501220928965790658446324756266848743428211424107632546965445110557835530314661908702244112926996292657812624343847058253333853121065617429825098401536449380077216044551425953779508199599558797918859430444148579321146181493490409016272595330709278906275443203873919143919929215157889970075198631371891121453986432815727845413971295706868632453721992662301434571559445882241249260942278080728457185397987947497993957073131371626519928972402044246431232588465522439358088068488430170253685275942563467898112950887448228128159487243793119196614394052089350488254931732913419672359496050070578651548007770095383011899818108187902640418414342164894351213157333391605304386939151120711418553171471881905453239555085021482480174548008759490665830655477308648457886754218567979968142706068080654962373576830214873174202649303602372506439759376872468563827637051988058897308650560959123633032410786214160494714454988627925014651589888571091921282383000361790894907392354717986794544701249136446712585826383783490697225906641007657664355643121959047308150667530538811161883756478053022881845897144497438806660503367016244575562939348632678446699382670866014457403568471416864756038671872956851429707621692565993284117117106400131179202618910449694929566733500685045631126945047804714231726724728001759401235944585445510063774228017992059468715109652441009496991721977863029591397110362380975147998067510604192417169692669109026897315245619360715927304246442084769026222082923418822870249737181869777684183275810738205665682938486619513374265831283850639834988124491638201064851865214648429947223682287443405536231548898408833612923716592923549201493689955623682677491419076150979634967165781635485363634505986558768300277093885934221421470648630688330216292015368711844660547537250742342333908243859285674223905982333088074762432491220760459536710941642008356283711647038908888578737812929030649169460954696198763480899461636404126762538336262591996129218649897620123795084642573381766111892387228210655990329890444936818795969502937194310974331818215107071686990488858181361130742885130294320904341266849151180559674614671674840962404416743637838030738307809468686348494565410382322728094505337001039185317528519079590781322530627090090875382807912080788804473993121289163507199144512745714566429325407477224342689894829672655136356288578514013678574675806607245877648259702878709481847016546077685831062509131530900370936940642117656913382838817750045718285880499213208655384510121301199109459575533820646590404345257029557037151142258503772791169711651843230884786627300269418186974805743327327202240393112580096462194530221530471722712929535507765322421679967078485965476797996907651992462812315320685003097225495659132308149947877933780192816644756811820929924014442541915085213067518080357691152632302542005836847719773923632679473211988232898809132674117236879093119233622975479059567501383772008714331252755392008019033500602751610403772411137214900674559671864312143569695627366282656817570638711980781637981231605717758196228159849393976450907997846390800719453794783800312147304019193064594446512660636620888411494841184724356963409655133818597768829126912259898848830958966070176568916036784774593294624424304482742811237650029614432729367656173200183194174037648252703926723272493477908700044073455033768606155774440143169090835715959817699983397258637035445033577449569535842015385987706159953476011936203843057706150739233349726593608917475404683361835021807005065857760526504831918080143111948982739383390265083585212485201805153135956238050959867337327294903362165095971315846308852513842960769089131587824632707573852169735897732351981954188264525376237252414028757946449506382941547225302714600867655345454012435181257830347683861011452547027619398242619909861499522892698919553500925376633880660688685901415869066831987494737383140184558418006115765563700810109217894637668014762121672282414714165488740288629274676321845719280149146472039591584423108438000249708221323082038557798053505283930827368820585842367318683066119016083628360153733115766086787443154570347444551680248606748946699062494316265350201214415129961489392099334174256588683870512602426234689116651254852887888172903218685189427164886224339436320539301326070762620579088818677570752131611146690866977667908736677662078872422799670472662591778715481570071363256903114844624259277489410134273104443203460009221080262230161543440323700563380608744881360965582280979388297755935740395430190065918361639548265241675916478991685477997831616523529690423726546355033415646574027101889473460446709587465727808531850775366429128936472054215039545602724812362245107297199427523918533717012962616894892809307741071761107783510726798881230292793376432362832285337840716983613618026214908774392419741016835588470387443980712316461887811502505897545589987558264516831694858589403730240951720974602994853989178171767194928555008356751545760726001654299430534030702632129576549342003950807456642854410998201925468156499054089663554517935199033579232426670075631440447594190507635584681714263858648133295478256813722355502687823871950740021693400030165352302564772223586510351474750042736909897595425168766256071186437333490432045405895845172447229941190146798505745679070535365650721540270759474703358456378343241323628417845838469684408982560741506952141416663067058442575935469915709155919669776541757393852565687535550287932291681939694477921460971502472112395653042246481137699958152782643038772641648240056894438692094194156123139789057992052409959841451887886056614135519155548569815638075521603821416989092321897722776760599025020285784791718929711634938838227210826141795550401074210822416938481042726958623969410069754319311456768876633582019423455448874316702234272242221118421677994925325512536700675498353447954764865593667439581923303252706062483824743373407646723853954056571097629855412884007387068833725398095314115036064200435775017655861601273130905071867970232030515726198947781214041712407987667851479579264123082490261668171098874394729997674990481532280291083597960291307518121515363964127482522714196796228740589465659681751591810581163679550716589345908195475781203605159481310239411093683810395205104563672824436034539947659687702923327643265835188099231574269274167515161620988670776702002689865589753575502559568792712176893750192811120530023397847674938972361132507760236602583730718929516645879643097682487678749111505262256876283620931220022748802219119365317474314355357793830936901324142629670071088080568688884007250483021751494790969092450705469203168606103273268511297388592020247557803854718318947721185350716601468457885172552548090011671075488997653930360229101606977076548448981306455155501860952917322617556084352751353562443972506322661903410966230470400337995141260232329257739433120982430270573753457156093380230525639886174661228821638394005218606364810365041505839761804922701927037764051217897677779591266932349028458188444717681354538785320922167579439225465414092850994427284759584204698555480840408505554230962736061156464251998393257892958470575721791946331146187861143576507740826007345399842854551231488630208348995277281550451367504172732400900871862147180512954282945983175618955106099054060341977078681189228300131666138793016586526869498462004811598076569226891889880377206541608247542703891323264732461025294067759126811137744429620934794673785349394407695603796056167823518736087684413862680617269679260348884576030624209315134402826789397353844869160307716141237060752192673206705962717792687504407264424364499170368584610918735181441868321179564008534263157610427258552107804892349794532851247192494299901492174868098010531435679423238474116383362893397059816929378734609059972297143713231502154947982081548454036926624851044745142749807732282384040162144192867640729878908738435587552505841812241269533423139187668937911438653769265646461360842096214416499249138961398427997903092234285833422572460048175586446051614665521812985491256039450437039890613351323403530020617609995983144405365313258735499375991387979532047253271449045565564510611256232785576800937544270853776456996539716185544599291570322034237032896703694329648017496316853338235414499659655379454080808521387161082161686896148828433322075253608213101102981094159661044106619248415124958067714462110022240602613586942699763119692113853091128715476178390366742492298012754416734967571930496542880573015240920423474827648610813543142665352752679236913395186546510107008887749332739406365480746368895720351707467059623581446931187324441891749980755767728326115140794047256623169235700504037353643227648245634919284478984629148407951494103841493331645352396670666587850742141876212859712368522488498337945832380905369966255839386854636060360533229893228289497890487383610786011602190301585311019396772647769274092341547706288126477396490420138037059287475560040585373074536550172585031171227596832506447703199988188446279074613177026736559881957672036898865875638181730658933344232730611665225801534354254432855161687524498659257807775832029456820425067800145431287180686872867510882877979904707993994918507520540467760508495398475973201004646642110666894794049670089983811732649652307343190474437399903321879954470078463882786078437627686141998416531799148142234884004812513861336574099072333743633580394921225256338942342183877030458350774406909915985767346170706740665709079597602654838695922907084849840723340290774274803643173267125902251257087106632945698638575504235932865548088837760036807131914362801373203577940921701542599954021210012516944331928193266294922952455477437564424800250535853350109239717900999021856079453249741348932816973172879851971923533660953036428418558037056549287662431544248342424045196749808549655993069873047457906825749804758239924901532981028878933863845667172123469186606797408188010638401856223911436877912101816572584093573002294209610490556728949802557694162919016160532540849754644273447900181807644828945038709822577629027276036696758367537959288221924375984504716708637081840619865806290247773256679407027565032670933099449811627212990062910706622855227380421804860614311175346767348360927079439248530157953059795301926737328704406796405736790655805404509463962966381943092607988977682872097202382702198911114303973098005261709440307911248295812261392135721158518172050770006617779352273525888923991307111553186512123755884290877022004875580431619257210642997825327999375852411709025092348068712308095676824007170166107617486753277977232169730572482568585126706662928686908748367399179569755614496735281521638088167047078304591763681940608035111599178756580466010676724135005124962020242447207698286817942009630833414921340424717382895726978793523506342091774540820191950650469039702459558980346336248902709934270782179088268507322646869256515144481785852954435374385097130881864693864941623252295260581738540694736767876608762393071110520326070610640031753320071250586076496579327210945437335467879658424997555545998983605925987421293151541549273994058481038512471895515513952280790822810982426067215878696880958918430176970926100627925973030524336463118238319940420189770830666788900011846389375756507586472834103277952561115275127730675946359204863970629334532897197703571309959363510369228090384009980321949411834525874218725774718028366553657317051397093991514352860134371942832343569256580347813847682275619793935357610505919381127112074030545331608569199338074757594928426846284394828835077852955838058908380969245643244524417485570529364379890257782331096780084852510077034794036125488783236493062924864824558739461435621776629781003015666032773511634487710999359617090456075856506375823976234102632573068062758618643191096906168425145732366571583833741127790413478985754615802287115352176739697673376250586854242076899599968351481299934399035091315162026757276074822596501243186125905185451912600344901709221331899073369831581589572630755521288497127670188870848852383074888838097402552410747049740089309243571118407364858522430606208371115403690481046064516950260308764064457874877925266406144977110763775906950537754901471196427207095855351353324756335782863887596862621751885779540802021382060578528930607332677484801601349287750456160976860988155982911199333563438836334684766963746783984624876738620564971831735228222775693304092931122448503431500298865882048670818619518983208694597606959605368821280484499144274394023585360472780626403814451004846600433094525666170574598731302212538325549286229747076094533912104082458549463148717689276005822498136911168805526289146608189198903121819921995605565616833155458978055122320446795036089850748070305509815320653731887160686362350292966989980496888064621358413579164733576557113489301092763102663987666877622800067610028836967842004459694478999781935834476801404761772027746453110477850016691180851568354776331124523040181010973376583949241947874837620223980058380272793539683264627934894265969787018608341511838687428575499113646649706517584812078780188380441023786907501701550041229154101325884289146023725568179666669415198793429184883323416231475519216158724842960652180719497883690118832533507371334938320599268656894226999576053040913852943737667350857392375870167828240977571204043780042293757732811949733994883184455223433751643424480689684310292975113815774090068961224236274630203877724618850929015256739880259381968069894933421154370111512255449252107304228519111499910799591771232383033457246047823543560388066031138887618345573403257156979479762727223738989025847113213011701476912010864715563021343572711059063757067795975516487182360182963073053945965394042645001940269657035198214391277513691779117242257223991607963773817734440703072875407236698066475500106088791765500672943463972449047680952361933985081173331434377873710597666013699294356657754506676706557807715329654775581070390295773480827315359497838626615164550072054887715975291811397202899755291655064050966942673689422788288621664538558585759584715202232645725855891217208511973553828160414388197647966458248723921180728796121617214893025188337567061509350265329616991719215594736507378439370357101794396147294555868995838256793637088811933736989497509349106818955642030359550493484794433405024018512091443990493190147683352702333828036329125986621930820230472560412971849471667789573119782269385454241283968670625898256624866899930713902755270600584016136735798528751102865190399921786992661335770557111503057620547028893577555307811107509674006900145710686366047823142640299551176166546342192946674826048241826767412631827670477434364521861527331346244496100523475901647652493300909878708208201640941464825411717042492986015705432789010121410782448611579010829215844420015370398276603476470281789786268986489346321504227593660347821039065092085631579221930597214296670850294298058341170175090374571424910979365309800722344294314046909770843760941300533423448241320164713247536143518130095412862036639506718943595139448348964676845361918119934166149227723686498112978545834082391177605829475478307387749915287834722287626630589323403835344540177518499718137376011606711613371231937661542391684109069195582776420047308442887397162775285306320340591819257296967614831061816634189240789869626315785227418224714625513470620549306884035391847022026789326397898471617161881721644768991219509009649764809132343387771942708881855184782469733899962726078263630134811645277350806526241206036804374883062910310651856578596003032885642050416568728099201893208497056069114638879377102135179570458512207558642077319480863434013326452542881057555761975050452265348025601391916541440481035153516424621540739051302665762428659750233089860017048637602331860177804503231631057067076022230116741440318468552763343603909232203038209457762083327363664939197596165355650795848409753548794624969589932281952818996967622239005835045142238391183828191624168716812814097181342055876530488476412623483637685839441961392732188209864853560502419104810771337480423776447447972472010657403373529825822427438826314915444471075738106066621977050849878383691144727562481153936585017723489595005908996127301273206781738128952671764578247863684002372527464345909100505401343305109680597593333271472887337416594245327562684581736258091457493604981180686907441992388780732398913699318609117888501143703990453813783728539165043270522627653487423773663489657922436630156737898570060785415550628984685737641682588717854351977306671625572962098193470326231035576403667468047885154210942544020947366993902896681299990308094154523689398219108308726729438521548657532677114276458288840878611234874906632583801374766884710789383654433629627548138193321345251918566041293358853262711513770723489916151481988944703311707801470594375031947418228732693246361069469734523720351831731819735248844173965568758411820384216085367926604121575362451598483380273007688699701031162647900464218752452578582019363871842036629839461542404904544458970222908972830027468360396166563045397827755814922216157936947086094295043603402908377241676375417482651608111449475803630346848495984496280064795817169515717714081414089518925123088819132564925592808318392737596093403283832029392812819774531528847908675158794442560697381793120434617614951219847687445106938582020456339217618139163701404166841665325972318883386446781889452600069855223770465193694906879088409879509289694963571601515688174589497236894511307997130836940081562632707290755756603027606773541167506463926306654207891460331229160294519116127121647780862818598669176393927084570665888236969719303707779258279841879119094504672670792698665714845435953243865382970799920094900289887893111164774067082152868625980192577548009989756068399430420972408421675818639651311858906921789957026146977574010922495935071446836949082636515965378221427617945456771988780655998959147855355415494373113245306092237297519858106952227963478006028729275769833490738579267977540032583464787565737357192097642922522871697827621910190385822533417176610175429817000872474547803462110278428701448403964738916668461136523040345538512814266159261337694605728684431876343910796439812033941969391863984358344761911459668745998347669432825669427342368838712850474186614652657744143010756390738266643308466741469855430995816957694027745247462729011362770635209905371771132616644455630645494689803935075196015455369893447777976632136503289558092835600583186922697857777915947995648406150410556601049206941001049071274386672464595329072649870428122624468804838372948375034062961956444407316126178757339515490480277826673548042829456211153304109882945692955641472323465786131102076684347475677170024229669040353816423412849342009357402250403895564910590865571971621087423012514152934997222954925280500838578699814119730329074274596942617094813113557452308228194606901912207443450411984592360135591799749913738470239959532768309022613457646641824100540673056787855089794829082368922459064104698784525844260135316271305036209711085343057767560944734049552997738472966824098066040539246244432973162983943185469990014543826530541853674559476479938528251155711568184095945164500056029023437652779354745085777383509563670311946313058632735785008872265835644125922029270842735506835986998455723132848692983972193114020868504880194865312500546027957915213532160103588282104171811926495675691779302186289378109853180140813578203158100826325727505436653290993776843031590846050957325805607476029701203742459796162488299776033415948573836004069922543776267827719065371396640030603145980054255011601286395963133896141464718736210595308895283367014581397200226459096381361201774737805919549240267514441138503241491195200334824193574790902255824082519113008613352526861883221022630217323185758472415177267022480429866115008425210018868346736273225964830462978594438242029360326979355794108886125465205218168155436678319552052146490466933558193705919188378448949078654537527634902339506924144901919647072370978792963571816468811075260873323779014713434614912543102123968877412924037726884295453053437947555028372217430127901115057712479116220963431290317123072615208008894612867506129091614452230853279647704417221855727862063230858163957757066320154929324435050606855904186196795463455370398444563267778746918891122070076971528750150396564347335788581937566401435748985655039497632614915975043662630396295509573924564098148790364466668522229678255410214145687735254537092188753323692481498394608007149093536800844386282802080026865210693910864479012420851395067955235060541007397702822866723109138507778529995588787631337640119549486700000855364343668054433420782006062904986615292975214384985365334519312270081763195078935506398757831685636541176008083818987671430883102562317910217017141455324730872952938255412781607184897242341691778628337672208460255213476616107298357656730890324084523765689590265052473865337961698649377416620064599530237588570560095277401120058340935053276922190877225015676756516755383472240394773298406803392640530638356719254701354579887283336727740351170172339852564720649191520321658237366581956195714349413564816397523350571734994171597401308095313324316770891567239943819244401609606847498101887553030989629969591430683535516654899219593919464488922884543927862288650210721014103443249280721483547375790015769272593089630333323260442194336263655367720320574151822945396144702932738927165271659605887440140391903911251578520749256348733798353572515313350028386106563446220728853934267434715496803234626819320972952364683146906967568524234117613490579020806369370887573309574469708665046766516997391704396887234439667980199309898204724960283009327214163664609674297337052052947810318143154062392722818781118275932530112599859101575406552476027545805668396008136817679158477848904716657485909589302387616230060053470487449681054337228261075917472185453786904408783346244388874735113658664306279685878376480218511315445665618085038206677266432679463457530587265095713894760981086478535220640528084188237067777107074614321213055589828942727816201695399269384496506558263122118708658378662119842035508570552971555519810500366027412241650227909124490534199965918238739265089083253416920457382549417848505740673098732725564388950742443432443243348241337162643299419680470659911619378015277706510803591843775770092138651929265322597213041792831097489611492191423414802549225561400747087626423073336910828534547806196806106886440482891193915471084402165484376986571312881326865226148401997653634942667571815495819693349887222717749361448932386225326182345462954458443285859498153245545986090305873880084101474755542138065375109569878838431518152622894285464501922152778893493662105225005688911659430214762144544004256075624916607823840797359480500573730984405142933624103241519315193387779082248332496275672899430266779658383885958659437819980553240623821114248167230109677062146912810307738390379170181181236887288240374312288165139017918183704145874823241727979273269305830738966602380247155757790201118502401982247506796437413479179956559920409158670201703601515815722038081493382707381494180081016668982778556746638562490986297208618271966095532280928332025726279823656896036566284556048208102203932795948047350264767261231715769899130745822058262447145683534177074176275463011436482364233484343945747861536935708435931400213395210178745884887206673048420241736228458324574610649341056207276078759973873922331611151435124249510552105110764480001693783312767433162160365066977750714395018405963332110190793731071027889548521075897201171765825590298716359152573890383355110097646902618986455274887063009241033993166787009378294806718647099718559855339120788765633909549076779444476717024071879062337361280583723653632570483934803957163691121890095711915515532082315547727172029464705701268335025257180194909701196771808508928223829816035164319272632245095333283306366685414113333050326078097564772634766784371389075300269136485248851439169630339310424023022219360247548259718283227762522132554209794074989593557167943727936160348607459960685632282816176694497141205514135300447890703788947234867153868617433152615326150030681143572816309134220157069485088868837427211920094344732088355518919961332648521254565024002938154401430173124223598986775688200175446719192971663209567170238314407260176679758795990028846142345995946839581486292255535433112928006630289789067292211720240000331424711977228730632966002407498552051926716304682739127544899025566937355461381786214672406880730753368903891311057151214850562544560936513465561897258671386582738787112852333569628818787301641619910542495365020367045756797053931850090445977237981825167855899660925978754982668253160396356359736118296288449741897454904948215672912649812032767580610155890175699292882503318113681833176534978474207883233620368840707949308499281910846214686847733975167489038675343000529253186180156384507165460492057060089599230266898816715559733106177319458211838530258629830921382448425830122024860634067445984979513943704987496429881009788494525186069854301919693389621983364055394448451344638399854361516488886620983482120797181811707547790131429853881304392987922716420863554953519390929744554857207925322814606562456542622640141749681583951801311272289801813266370984445448445168504941074423497713987028896308981714886047031062064825808669320424004010398619373930152438354555174223550496023242323582698768066652657819048373155698972990192543750300179653579657107287984216489368639200358517357247957543114996766331920761398244408791548241713118855029778229133280129880474917761954311789406010684908309901328238712473678234311082557992526971305864201544945372215979304572581917315202202501148527676466813527728386173338651972602823874661492987717038562932015676941882125904387039273073369592629864610104140667053768785451356452749808126599240817011627007498516027771244058433451350623830270746504831887520399238367832523749974768528570781376158418025043633636356889918854414553100404596529549708422983636680497875801410622014611649729465106614819211522724126203711511629805417876869982036533203247162835161598323754318152245414187382943883429614429960904753881756710828390733607776934087845886230970164233836256860081605813851741183859922134496866115703981393447404993778867506706089275547643838240240177459541570936255649318577836144813014135934895163710296614995148150054020635400501058875179548006080877554747574848757485841681069864530543182395569963765813971090226083735227469823031591347208200656350092229536823446191511453852775181136159656643016148942246501324951099012520903076032561247476280189706019811826292074903390499400573006895913358232815315714801046913965339752654458105586758957935876885858248940011832098670123324418853105116673773601495755014214755613466982103261727529348122804049479043433028712646295293933013622904976985079191005846859999712405284704661606988774681601005495008547095528464205087333951559391244335300352211826512287127435276771329702768222135145658197954852316426655322465363127190922448143574689567521678603991403563218574550841798987281594543893660233592298775335034480841572282833299599958455923317766065437654950757294240165212938349698679966935306052004127134615000431249190955360990098718618925775401219086937492709239502254087810572537595329222447942970650343060601783296252783700435642600876000106758041396506789703566904999347541247951631452973421293474723894757205151197009038040339453040436091063819333575392056371984003995970762248299214602450440721050893731875928867482776251606393917284809815514382465941150045632086913725515714462321546783118640260870285043798335957405229617499288120499620165791190656930836444572483323740614406677133153146604021688074277368380800898344893523368929288399295988626442749561289142281261728949875990968657355582001936967449668949089870149459887156693543709258569191645780256636725576692192383256008343858734971890804869337093473494213440244987870326818178022770578996284817939834265603559634173090948920398297384069700004612447559954241620624533973529140057817917650084230172071593035639712338720072966687971201258601982576926170559552864795033242794758701929540002147633476785013890302664930165953209586394000393874579695378187546306055734927578006124237452011512376649359703325304865384279013733492471460623964147528109754777937598277840992854227277380452894635363805433769519961062724838742649459860208071120111016963277081495175677184736262229963619287435609057299350362627877688292919483545166041052471216963385677669964750888038244330510494545197742649092694707830484447764709114556265396975963607661383896398434348006461925407460177846503074004898937901714416230760018174479502062158027812269469326548612520092531233154083481739182428745238949848879555565505206457785400627235283373203438501578498995476133234647754423191404023113777808187252020715427880855736209575761241504404737419817336514570889185079120847064243262930906972445600599906620389018570047605309727466805230985274663504637514869890190640124723917923911898114400541752955001671657683703638252298305604716587986296948625496629297072344979670507418412683533907010992949952944560149989884915732318169767071973775624512995193897994387454643335830486920578712689735566436643861826990401355589488322680407968734547554419894430417519452447641371487525347528307567662438743221324285253318996899520362302981750068219844137478943876798386698278490563582795552657874915559558669887250145355476955506894566657375039388672020854791178686313896665445890464610994396743988804241774520599061919750064164284517146567283355554536343174136894396445156677827456337945144321124929857231424185999445339716667912320462836850703351527907576991648674251210745462525330133617186429522589133361129827344576794917013497485375990645696513476411818641401299503194411789002353611096317145722390399184512482983150989150780644607073886244973376844726193631096533930651047484350635260091343301754502907683351230387594437967656314885557596607001090393891327766115602392098369905923642361339129993681846201405789177412021912220941288971110571796564031831027567650099546257937494966425552537016101213663299662413526132935743811105959531961730501506174166548414311422091253540061347719642386782861262300884625845588185478773820675148595318637947705325673288547671695508057795950578930035732174591887473175070449537767589736970552181711005532756326229379515872230094064549813618974468487352173746881889818391642025305139544622157966368564676395118193267838395138075263761468402014650008882879260877774904467700511994896890260281797067410482916513624641657105204172826511123385423569993246464280352642099009433222130087867714863991999978098442479407186706686177529381486290677438344786215675718530987164504873353452835336724922290818996753268910202158058594330612528519007237208522637976493458091170592195005048636407928782881611124513357143918222684228507754220956285687025792136167104837093840511787805416480012528994462868356544999926385460616588166403949925329252718324517646188589599021097108751393576059015638765021855342639176041355060240360652446399104338785125263944540795450435014602392123467170666795976946697063368626799650496499452142263733151158839170154946107045799311448607531624852034290881746249742536624961424532231193090552413432936181424968432062225102722893858332280202144978514733886446439073117998027245097658159954241436219977106849362590222898028232181166789871309475280847228123426531750152373408339836278958877051296677621994161779133287416289630148188019940975435067047528259954019747849407768595163534048989777871965616380903988461224540526360684597646269368624220323833091068146036679204298112054372783757212007605962862251590868035715661553249560882001005222882138219003516528437707394733327243607039587778276428908967174015480708904252666668528048145931038700328498775667711563439741294888118080947560985979306224633514459738229595170133541538631121529750438744251738230734180763048685961126363246738987605170229918306847376875981257691107079701197718527586904189316040313916276013258603645478901801565430810243730182529565066575368155410616648732995522988821770266538850653154178349482006934590392687703215255791610813520563147332752833984149083219670066370614313113454466525410147389445601677586516859878203320932534719082802457286262918785154322534816602302724771353679151847885258923650400606358208599502897233185626483343725674372161750533726485795975040258041379379559259098676288084375993855296934251324295268935664517711298041790404235453017909609046577131625640239635117920019376007770833945928977484808262738425190312837621604605277321830701231455152111783191976491579143698354774043824981623197834647054113378238012254250733719142069058957686117792197028470720631799526920579913483661100470056764308849695439529476496802655936536929065503298769111998702135333209558983485103864688683120856523733025051186141719016448878041199500058370444421128981408785380855559481619793308246124702285703119810260104741381738138729141691099544170447144086999671320103902974861968123360195890133693876112413571478191504275125148736078120078480287103204992662196946219814239924878938028559165748829038968605226394217035321688165888848747812161110141589106920806332446480756766599382125438630360479658696060282895234233945348521958342534434031748679577903832862848140662051043009836977408392014341582682532570045202439227075615978542508953455594762823772473295592015459292514556719375152821002557553549060775065321808462550356324486887036276384173459470932842382625598722464424718276732259153553677331645443444704427246969379404632978373245978848840246533378123782285062791371056193641739610591268871548412552759168951035960899140903274432759244639528071305774235054715932471277191303518770146085903666333339916181939288839493866155668654504589097419748504240608311696906734524529812167223890032651256252817327912689995450144762867729499525393805340049200898322115977113267895384411496568415504203989326128558205988680441629902348275254772768076722978704081280215116416076985622576572532381286111445045897527899420613305270613328924252127266072368789414722706392916435177360810981540786627120829507315371406668968813933373213668878441235972333406289230555014252678520584588815780379740143591339986690969481332086399305016001510253951342386864404238427723305875464452651616096490906938636203887347699788606214223451706537641628147563946607910054501856436726084425066247572739939088084422350608651257207699937835230563489436507264708230533644406999885456872837401731391256513031303694524201174265356434789679471420814117646638155517755331140586328606401863232484130637047367565992923264512064592600087536411521178648789657339698181064866783744158914705115380372296008643531771580846023855651282730643165571674152794479899228039998060555160739334012487646737274801425011363195676455632864267210808028527334420289268493033236346751787678929491297365697181579241290123207261791010353149291008559022372385928162182094169965329843037340509081064945084770207506180477724494486367660446650591726699860096962006573458900981257553454125045445585002658099590722507643336366751951435244159214946541129788342552941759390699528768850510039051223362846229026273252854518398057535803919357372138423176790667773833877909286777315903344512943246610291773999409642510324305376038784085401784730499788213827843102301538210644532791350932721535722412675531088280906035530897811205279181578411639736322249366181695610540822846618686572407268812354927883341572522906008842175253470716370577722638714142050591310439127621430171411058180594251910603641332773042141462936518160574788371713947627931044408082879011295122952027381307543392529895527142669542111527674467570436138868157663994570734745050268090327804448549159128657407900938208674933835175139780104618665320309536874834671150818747744733851259162820693191378687055287662250156666051863361005105393002313977436804968319788018333072791772391630200952001004402499607211035426871628883640926304411548076950817208002105070492947296814732454482626004100454725957353482714280591623301334656319534335599737885862572289901307492606976522939411784505960486370451298988922742446916631091395107034400283261765026410475516160782859228002796296039293731942214752942669325754780856106575603823612920257286022736829307363339750307412029682069899062624087273595567084773809148065008816467065472576671340741435233824510554987425421707927593327225227013836613425245243673804401780364189296407914330569893746805902045109335317310892353838800484088097619353669364865324768681084508344242382757038916508252116124834029334487482708273373908901221609597097285895190106064225354729921063405710854411398193670752499449064563789465474993182415566067285503578052076969331099015206428744341180890483227036538765836082739192527918636730659468457982765777507777719538112147858369495745225942404046107810690173365969530555802771578408800849436894693557810436544744657827961272105302550103961453424302918937729082959078201853689270116677748960423097948110460582287155756946844675262853811011239700352503010065868232924346562105392282516790687916093861298774477486828014312508300685225549869823279612003696736054572795864723376613254294082636604601056496107407214654725079210551875865838727843505176198592137868220489568980377795624995871078141478883056230633800755392457379269263085989130142246476428132912035956372938409710606722807272585464289930750561363361037522294663913720537210657070913868030894254544500753018047347458715822621286196426927535012236937606493408691837146307227394594906241841355804338757096454056887496473723916369602624247440556213631983944993361239908116636653164920101089587009106027523083246679638815184855366908542316779164700064037515710368289412261651737978848717247483750893159499349409722119954824647444023457644037590546222947896136626410644317000235881100382431665637700771578450363826019736629521165580071507906400783475624942538376499542088575530365374553059182927994203182600922984575201474932956111583593267112800906865847742815258876046484399627203722167287972420497140671256578075070749779266973330112968569986493803580091451895898468792478903644150539194536998925091776435556212222147869997676925295622828356031185217829063369997036375421907018525642583602764561772100485442945805834117948080487732161363722323489355464493028084263024780419502391239790631826601305363974084475759273712942557012028157501458401207892781830655975097094645477010844005599646856305418528440697700926056260399777591565882344997858206642938974748361295306420552529018696096953093714220955431359681198883027632956661279210702923531688105628943442657716304230987695947736187744160587006472513700320530497298471716540543523225830005518019555471716291137772657611635018940974742712329868695236877237549923929550541656023537314384902491067975864105106239356239701803025783841659435193158389784625378877593294731386495089877459197371563022099151913308231924795638066126763091052253095062825387506561446282589254163639967568201136600128004282231614270469087473491827250380579592072907567793221862849117361358559401288487681505376244922789731526104145309265425917106586355185292184362454426997202891725909110238473227717259284449085647522787403507311230516941106717706866127359159394975555643811994255276224186335758203353491150211543007975330880422620316042749538671957667382652414010917403377293998394404546754284876147839949112178160670807066196485790616765446141229413011347459719259067797791583174926751407645644184733831618524760436479706046919093373841909005385186838413063940345329504263438572119588539342685025943454534697395858502495190224922949244511153587147910090617967861670664650255869081194014286623519190141765758482864078537953992178415557856015925782462686297950047402749994125685141972405550620799911164061982571589010739148582273429964728356711589202686584908390754450175183707931400849354510398953955369878482279779560954416561085040148710925150556241568801030682631932863578018243167693120982691086471799346666877966839045222624189919092810823859650100501158694471205719819618190492513823343536798227188575422657334327268052002381197290551291467766283528809423390959201552713088196298679032161085793104110586478246672297540611247312735996837083279619643308135821175787258075294672685033786936844932470856577038359421250150310879064922250266477614565752440691304656116365147775717056613232535835148081183726302292769087602999194697069156351279314983303328571568955486786569723142781017757375469156544872366096968508923965882670423799991559457128315097160281670362081122410266203355896803193820829278153566340782536683542432493917818635059310311981139641923077983943764549261167064518905965006651979016432354414787659332670450227330638816536786877227638787644101645414785571217702124172177479746609148619429141329276321390358892913559929282085936013837933812729457141653350340287861653850992533691979286972473072542627838031894265533393839036202945474139810239859040796639859351666271546533113643696398214708440477602002507298721093191842453490721378646764813521571511786077223632378097771114604071906424644561970633288389714320501122308835080380900082997762575938539745113182999124346237249482705828216955207181656429797270901195200841916721728053177395950042046346365037687885725954807198293259088717039271621950833666944696282209568884765361994534455714691437177978803748468009969023901250218511731198233774126451418269695622387728793928690695509136289874756537408088372907079589782356878869253525357001458936178427361725422799483981261443505803048926378543899239277332023084105269357496577177943272722309424319557358697341464863563690759970863038611853789830036556006002813618029840110276175928015129403731210880420721202045065813249637872472486438127422096793402433570076181157002378885554680802757454979017108866687109483742276929918737271118095250883400809012596084232555093187411242037232471765632204081934509032324774302835688756486817026467079530335812072809124368001085385846525357138647855452132978370128966668352247793791214511618618137659920551657598801732638930671100679961668987431782032098222564983386602153724351424542664047208706390956049651978498136126808773934703437328930591545493762705775096623321735529146615556630478199505138700878823791089495063895587925449569158351159135650087034809676524757322661482216215301036744136001022439679157131286178565953882126904646948249400255745867391346202049807575773929111192935319200687082182687306060458751726750968403221110566835645496235042112555258327476319180878802784578129324405262164055715743157727730631828014779079727654243716765911194848043408681669119621449506051554606319172257076644977202819715193304191274924846045362410601604420775842397358536060147166693924433573396952736557362224025372881121476285449913563707588045736141408872391857927671605209013964693656138081548783240101719380852903437523777830258784728969045331220699431955253750060163514576585750897687850475506760495670109750018348394110917417757906956840776559670885771902148560220506478912867174880816256678123391884805311435427286079873043159671410405858130895221590127901530906167913805112482298249898896030015484459496156041153892588131468525100831383989567816260661451411280881391819952873611689470143554417796044309843100328500542363536617952967999255512067289034863687630544548753018665842302665918601505974820176517496739175999341380672381710364392500188184812425083536486904149900955230019570166961842687305770395598120416607933238987126284383054467781766359003792448747282460616588173280169357601554719563433899657618721616338789185856643467081307121774193093718593014895395179822042945396570659342358141488954815711186461945427256321669817460566566674903721001980287834708577366581196255785578415309885379903175213726688782044037378809426095853045603323614058943345600784376281248502566650322076119852033546782986079827206960299730213342259569797242064433822646894476567819222775146995599390763848976572453841524254009572340336149124172290341765627571413538992259932469176731668517693412155437102460408949810367653995089666341922440897291714734855345196815503124995495826340550124892657678662766604278243326350639783489897931052365796681707243556802902188815580728872453039286084885247939294929838704395268978569379818294592461387466203707814347722521453430428268980162488508619186161454889790461096953663803691622792035661638681804980715354045187296474203142906959302122016088935136310869752084983492442499242208141490009662996099060025688413562154672346910911564147941627527097920864269693004523879163818283859863082491983213732993595262062855820114428882071819634703170165445067066994559306090324449818398810603703594779868100523994009700830780414360133798808019578096227730262695039374237940283298136537311007190110067192419891089098573662091289208170088541521916644020875010064397821602039624493592772162470986365773188263192415158672221032583655296383581308345630559498235617841460730575496173005377862492687198058505913016946790464238733821792430121976306221230013376323628483482785229274112799971674703403925799522448043629795431739582783036039657060847251575438564370714466908553310081102256077553296423149556873794677314079235367018511646833650165390713825966046540094406746022568464263153800762421122384645706361163169102608667145667672316321865819505065155710550636658353289496587661186751555948870905543759452591104952384868869719423579271523320108980682062730508319781406880989359633770971938710170055748436941190760527888747669519899956928925569813221527458647148786518518590747590172033947558102220453075617064095023269284088377363795082350179352816613624695332002107142810934087700252682204462947729674896069529123779214629819201822609072210914454167565677512041028339183183692317781610103223462397266080550441444583497018412384869798077252284402397926328027280096099778265120803881971415475055838199416961277728570402408848418621635259102433060210668742624441033047427579879334062095602374013864134273826809967681322138716801417636133695352949132574807930305966673514413652339663259994287395210484603367180924683692226517660229145929189125230884836525576534272641737103396235193564196119452273500176712132112993312923384752250783661679343834220837433905168470953214043429270742979125197786063448415044832947630016026985577196951898883193968444979209691382172764772501500891081232887365176130618472978980259099907837293169541774939268079605510914979098029643728462856278901752535734275487487683580732362272955077956723184309127581991526170378600941562919357327738684344685178726216814779694474767457117161542658064317090586535514957047867467081547062134655004523531111246119511680001666546851061714415992061882428111912693722071469335430572364492278471109486867640423109084127928511231424311033384764044041063313422052217136010672795875606548443863428054955463817637194341555779825281402523281247905706069235141695216959164667291194553380703335475840872553207169303265531447534377116906230504157176530237542018663489380934252812720521009716417489885123316304611858021491595824208782638684532700054007721553638411989508692643331140964334767417740966261196429264120740896638926524843109720898496464237697332586381353095902506759037912112443173560211157202186933386795129010707691584208627299106016913335524434981932431523919765360318892875195282442647057515506238296258207609705257260461885420208695561297292467067560066640290064291974211596924194246492874250119674913141691555030568845970625196253179159922211819343802879233652993051742052085098953556531417221283975964195543623385936368087880724124496534188405669774735109692611361160702577922177210341246284371707399217601228970196966416659534933740322458728710343427928818114648255277458561876673747186152613205067717234543844662866508762304894599684033274233438638812914192969157586701999527215218936708288523371619109176890194906525918202207587437757537346901389648623745160808495948725429651232726061762936422777308079763973256434000296574562617488757919295120509823574243984451038845489072826209638753369479014788648117013902739459985679577582953068395394055748492067305186070360248130074971019543444234358034108746241707178982328895534737530362628893767487569838871704195447228577731208083012638473068301435918671700422208735469103578797139913750625856599688219025402299831114396213514308940348127066999676635541296225797764581696311356621621017922236400734901675099819825361722704053804935719753990926689472666524306934448839367811761672201417266853367701885466545293033945842777399594939736462010197001334450870894123547682682998757992256930751909454239071472794826825614249198451848779290835566308798825146597185939292231590319808502928054399729409582468961508889763742169922951384005621421793798327183745477465454591136214194308032504123055640805798169515552230513830153240736813594755230022494001589257418747779278670134129007730065844786963620001214179009278374963819771374300508412723423019537417626903907383999125347474428562262131548403381954477168402041164437030906525502820816306824772487492847356413436862181962078364888828540662773018542637592221081001388647922045583066460145550499120309564269274017596939275397559076438642624502082563682650342503225825568406011931165998401820067655371836877501474017589286087763543843970587620425728203265972358310511377817652039786787589709586519656303103014092603488331669949166470262987158562348427379632474525810285320000849797109953592652386678371399504314950869058605798837162961570314610134327102237084603420489828747971689240823471281844860572355682125272075231550489454117980162069601015137529837462170419862892095274234895906946504867795007688666082881313285063214677171056298854911692412929882274054701764374034552595109751470458934357640793843502626721672884888857983371588807186944903476133108552645906712401330939861985020563369467734342083378232314194538916037549627782383969206967062366405087976441795440099533895547978545406398023231661655330989548935280150424070712883460888686650185591381185594928655197416620584472048718041884104299672810734791537112750216082513816549402832765410770455530711988076304224799124871055563339151515387209578223212225780675749576181412047511637620540224611221021278388543810369826484826413534867672006173692532293374041973321510845290621672989244376604637228163002642616816658271181788803925006234618696583035699493870993984498594703743067704792177162402945996635704874853912515731818904323086501286572185759921375965964708181588737657553935801338491426575247791054935107530371362397054144849260340155935688939093345811179327150008593304022672055310761077279362209198349379003433795874920447892199163898515980147266123866500972814545165454859739166944793829573145504541336489955848578826302978732798175403725620474807070766069265516903454652271015113942391933066377198412465889469174996833783074021273969132590605130046977624333961702979574442770126931040024462179042113207738700862742788408178500417834741886584261090859528477802280159636443848859123337800333984915635688251169505496225440371001336171761549363349024136497931602978668078574803768808956799698492981786343277741401434088293686761050801834043281356849996387961250115866114234724488207290857315294664423776988050587499551634557332690970654122933366647535996413579442509444343668633871276634673204852282828386366575192262179725146471400403358419212017393633548896701242928594624161156166482498603155950526362310354429645673384863781137200384805285654715446583662473811206064979343032833906709530185491558107286355466958269413875542809064299914285951853435395728407798080892087008421752356377727806520372437872734948278962343991474220036648075542809945322399748889326363043643885383972859434546588179878709839833813915391935135616042631196751736117263568468636736382147359857796184003153868592268924335276378659432108347149093029544018589543696505549236356874192644429156637124746061362610132289319688229158290532879716645700684789472535699767442319507671940812016502086721938817155893727212985322445180698096829450643323816796153179708893056816794610592064210621957949160424828873833771592350047613735944682254356944888838800267918009872518279762029715534822896569942614140183300766864092595949997307441764191446881479361108356308609400061443619032252859845289170907807360126372371278504973039941713836033905329440124274004501451916399797865453725943748564606393683661506897582211446564665382172469758414033029445195936065938930553388000959789683588403190817637850787053197438315665060860386224766623614228558963718285582660860481456584109897606989183059069236834659553998365789045969604600426541196113999758377432965684891581900361762371448754089978741578636181388786136275296646337851782303665516624997724817411155083291443815592336810212212403045810474845912565326678688725979482881987341907033133667790694516928884995817458593757691864719704802960505607603629765716712295216622642368333985612364739265744498451176423825023792442874697577971836192947079395307858385955311640145885755588989552384700433445670580202484969214906243633074358330608462255659909499488532374999566263826776141779960536472946746539617170144529978857616187646671069652529865093638965183587395308352772857107388160403436308171970711872095054405608574860648630382880537456295568258278571842228393931435940219801069901361170847582822984052885964552180446720420052230882736319737092589911950952598742258174977458404410905358878240080474284175233925507119990601893155617880138771551572338787057905167308939288099126420574918061664885082766348613157014937792342402179747790485736277174211340128887817053580896424882836358301678371600798719477307988027750273735637913907271325348884849246530710187440320214409799642099634214533370331773614942723755673587918996973321004835841221265025012407914554360078282463527947104464462407853300003558009962110406864927189984403374903497926143592641742754202444024314304701747358143793284578700068555733623487052257642194431290355713492026407012866369286123624691502356608462809411268285340425707733520614134749014814310698866002912312388776784061858860241842849462841245873573534965499513674716099550807448862477169959272524498580465608255814990767018841228171889600005476476783487825862924535209581847723548210674584501277986188389746542485611406049886188367740143499926200233202399593678824519727912666873858755394562662977358794091873404689578722824949003993374576184597298703708026824332380339745955673097440879862628444639565461042127931897306579246862919714508653876371842205660018644401564265562521768656927801055521626573673602032454697726137117768241147617817414289733841162325100373922174501322848328090790605635547691887378342242994340194981198093474295503301937098777769772178266020518587904459510750210810693594436164307512414807056895875947472013079023921022722587545531445569050423292817293732620260576944543590944295771422922480002208071844982272632964466289809530127199123089556576274191056737831617189604718438511735049628709740053578229074148673678119390471598749253861090159891060971587036577634016388505500772360001763098687703035068768444351987435669230083268481521292662222162680548063402427353966041865445675185394082305510150369411390541230609505187946676233123369767172253343383213207051618615103178943761889585842167671236367888036824028132893296463637011086895653538129650728701728294314989395209577767899652689240423497471913185797968446895421245894659127488259131671531612004391398533482365705396197052568845634038233621705872880664038370123290880711179729116701516268699915959866092152563818842032908103630966816275986484765006910514752146285904613773138872995906150168300819133801665341064193273140268250035070344060446089087422338815771865014039596460165058648719714382018764637755746827074200971738757111496364113865805981050856874230604019690911747477440392521352327083484065907714069788659814715502148685561247401600594625822367536774289646867162660176393783185764735509882654332140254664209751558832915470585446466701545861912530419803162008368569449054150200832276351993056887198244502972827734604113818427345780852431870974917681367591903645951282040907566321551073064033409051474564047988954746671057754593178891405660866757079710572326566628992680847532296325293177417284677765149377180214005028398249504402387808455516388725398279948107618547419695537410006872775531200706855526354225751162082987541121198492291618117065864983840901227274299219702733070295340396626696024367790457451569245678568451294181847208549349198050382221904267563464058420692388688235011473731272011494855449984643388136117557995431976770527713402283615939444181276289655188515197163978776277171978675675714357960209888016405027800332893227761116434343003082650399262978475951218621308699343489297178991482519516223745328439659704138069191915847904977930464851426121336081576677790776833674254579762138435210533615727465762397665884913441946134003705745570565374941517410596114335685494427300623748564531290108214233411023108970535089577463459915266859207517204033535613583350798168343580695368497236872612376349343947266958161928355055639824575019822407548540748250005339256053555473590819515233370317764344202525011173796135751698553978875556093010753402203153405691076983149376361430179443333061707392417381958847295131367073817384125913445332248936268211672941805625105138046382694175582102265852225572302388622128315847739775917571422288650856231282381080187584440368698706657843992603307935141000077904420989649906363293210338532505949573760129294865207273365039635272755581748941350736320178107636753014009540185647295427621329631177828947272672407891414210255339982294823353922884120595922776445415654258864487760236626455843793372240899817473886568546160008221988722198731192439769920507064822455480563556946208896361147021320936540553004362857382660142644421927249796845739155389837798881213780534648031468676971392936481216505830742353438983621940036125483036650049148285343784137100935275340087822055875229771670512999726351329854000112220513187990265136256727498032033752366860887949021931961199680632769854391556518654711296335279787304409222093147854054514242169723417503769768241068483936212943665664592229767596082813404847773104844476134907684304690168617476464162251307117383492341240158017597618516219568940880481175757133761403682717183666611525927321386945073809063874463829046666832860498996863556234025719486109847331732762040864351455433839269356606803295422812698346736907216358274031969930044696049828537064113763185798331915935276921571099902464318432073659414270048079685239014418922738432017116676765602533562695238341921241480472363730775992376116063262747188612373541903334456004030015086503140358388532899705762216335371411722848299675156791660588391476510025994264322125275837197840766527510776145310865783995291765723128942349936885979642741765621768991358649533774992299827261525824901620625430698711158363798593917747427232766318676182072073661057416608377413078119291608693883166494161134012104256094603473164209989701743615011789913389902458929220109570587263786453455981755556584965482073744237055403738483093706041182796447153365049616773375978397145056830923996699350895263230994371283263344125940381598302325577340534828412329175933688700506292082053188648792529731131364071767224804589994154587093951460123622555465542962290105324801211071062734949153571393797070325515291980612874001699089407333336826953697788407658631371911508883430956650509085081476504445276285601031422525648928138833867779559981955258287703072523734718443888945414217946020280842401332694387398813984699180511555104982048811864969871034415906931828711687909039368841277560603591391030200295885899902624495808306756505998801221474017355502643032855203657103143764611553465951394714803272445509330656168690851648811869040738585799094467738783673330918642439281857574100488796020049800036507961161942312324844712774435147719558208117365037699571103424125898244775873342401914498538779036994121801702199942176736663677986663308732961039597259346222412884607117747070574471469940203187140860769736812917758299420618282648687192358767712189757818019904160437024788871701486638151864721160894788286231707891583771474751196678208809518422362445397111201699419836725370617594377972142261351633094844369128214815756803313606951890116382853301470445426820117720840061209354161069335165572341816168132381266061660263900229269325080291961479176138013385349662754491803253348535017846197033652445901131597075754480560963373668006164523813519874128738372064205305838025909169537328640517668488932815091802261544518874153070611389010336917125905058549555816663519103497754004005234812398740222356395453042931561514334853006920182767151783064637984478408256666662620153511782126745563938169586102012930026347116833954581659796503490104599444616388864063748862734016079855663101250736754817145330725940572698840574055263505788933560679994898734851604066678104277990119219280959240007000447569672600734974849120896239042726629019290260838446771277842747412397412847705329657431801466231625916475353441534241364169157631989606846096659180338457559588089365006890345701770078213289269894158674227464525861439167092790407861385122332407345368832543186840035304869010988060410178180080221107149769423618774107790723220470194971765842948517176370431162677640156459031989483455463004356443816439764940647825565295560772083484611628378302170550235121001968229552602520221649734827595106014100460572278388622187370367327196580717902068854502127040712160313745121931213895957958551392614372950884210877226802070176766471965090220729774613461972287453792853157501536566186928474269990347498043600154055182492140564418023539543243336357765500705169387029657716696036658310121915171292529454947615935157788167433626947025837658018217650921360969414342335262420142446929207863951618615407438456649137334223426545960333611690250870895783500457407707658800753513228754051089227729569290927590734546676396596932834181380075670420793197395195347310081925009375608894441657394756898680467527056762416656320606805041858526943952856901159314746310329986888806170063219526496202163749558413205650113584421600757394782028633260181668847266929909197967338393839612957332835525813603765446954819274493650580403271506978096709168546179777367381797941464259825397474524525803652197032520049800689151923409484639093675435991082203254259406736677254475254431836634509195093719131909639508480178611167861854682317623984990273071416755902203186824002247693613137200595471569348591094995210017667462911948707384637165049808087744248552024241810068891023269353324363719347924585551469183193552132731198121865425817279466589385117864220460490492908106375298949924492244733353357371267698960481806708798067737229227729050158310582676103140735157613566945589560026137139386162020439684573147968784803252816943615642140093592931278046735513576088530390140712677186465650846566613263220165874565044229982849651479774760917188625286894308148496268551488181187025426862977214069269500967063196954338583188008453835619760888255268263733936439917851718417016560194324058452470873703944344922985109088352783385740489068161968159881800058087045283095283574411641541492844933059580131018421198947697965220508433763083511466962754471911426978771746751133653230708642885449574270547721145397180848376416317739192806827388926331622936747712805273907873234539541164240642420911431526963717833258921990112554697675361119855926109173722551284373488792284919220770645732007708802403217446035580701945902536992671772726470142064446264489403907987433201012840580576791393392168950817028867807549885632458563232005918435972962418561825083137851680355868408847931138448594950234696618012916479730736153739853494994448770637922583501033924974738516667345028190191953883275092053266809596617198961706750297768221081373700033615876370322163093430820139447678735457938680906596775105907420231438751089573157710565124521889583216618473373739814990018527891900448086960945030308138808295568554602859336858545276716026113304600151601181548748633988434063675250072114327524680568582230502027898655398506292141116010164275643121394409779494949184961737899494023008331844560590548898982228850504906433488573462021230473619766087252285770572459050006996977427562570893769225075499822339187628607229789133154661817800130798984146342370578868746946743438781081740066307350350840583167150798300126332214754359573674976906616710901270416367467264683023659091355231691848659273882927155886794578584320153801451197948931428266623593651348787696921969348503680620871190687833809076505046032043541309749262263597948887155082471543392862938899552445985988622582230231786340216658298461105937866698318994044103281997694703393574014294564922640233106064879163805750553284919389834954185302811821141632797981262186761209530671963039064977809351369108936503089556767491552912546697437878462174011219069805682830220171489979451891320389787028518729511245316482347848993405990030537578821478334187250208173076964744549354894778214799193611848914488569742563066141341853359209746457408937507458747049117159419101090340727902407915059340508846768722858480945599426882526934555116980266507500833311320472993321242280596311307460848097327167269323740481639675867855697381607097348193722492418563213536166632195360545407765333941655090391505965372737194630955525687808445415209249102981187474118670077004317897265183235596895545592737344992702372605792486614027662328856787147596637405409426853253141597678337536702611120933576939073890092495321857654890875245577303021137134924826902427453094779383822586490566043141807110055088235792220751484997241500259095031014611314599606768838199698194972106361263592430683130041720752635766973526706554768699861613766963729102586142974401007142788831872351158988135531603645294664133727985635214322785025930608433896051762584505747609818915098177411556833369573310173862118532944407736326572637632722346478841431960051085158649673627458303328626690206914072512474408620003968477890813502314178338517129696401830142161143466984718677830542855275605231217057760370562192515310404695682198069442547368113447124230060930008463454826787823165826738004966551132820727633960903712269882284533341698464139201739295450504192002640351323192873570567435764428355735095508324342028472111219082816516116723103962322950304957578006809620964656156329710786506506374465591553293937595391243961604908700525836804048787915360534621320762600557111504610712173786470256397758896387250611528671359773118017344887482023759977965327573450445478116767698941400397420513071761569531322430787836489132784858646992719432228763056573294017232904642378388935981279425566263380692773276133634134702043299427121653649873725155615039518446046954049966639187387364969432215124092889608124827088594792891317311538631835122113948203770583456153213856504015442465462275284392047097780942277851538846040388984566275773003800465172852493440034781144433903543348263168879393142580488821420873199829060995535142682333811272737556811162073201549792697370363485846190548667450664608589378962987136865723860228873550866543348144217466244382540780924440569177142539754457622094458387491980885191659672469952427329776399394663850990284050294567433210531440112831658147481269054148451909980024205858921336391324203177667679419672747430799738030252388586961229741251653511964024560433490818488777454298587950211164858031345589391969650740258285661196568540078499397042261200240523374137374550184611359137651939163736253832473866906828898495479513890873787031604753750139218567733439692712302033240453075416982563210795414785744207012638157364307377928138451072144288842550208883099592712762116914751845338307845715206573391450820071699052297636772113332822230312132407171463485717060975969530541119335272431875870027566289220739038619929341471668246897819431493877761129694996538659048423846357806874713734651406364358391865676477499768503654819467916276336663015200696514169513897814484776138829823548220419686626819331232099673693111182208644010897208394554834298937562168940226307501419805406164973460188991341168127765424915308358735234725970591718290871050598283172292221565745683802817431334315955069144681019020671553795207378848044547368851590896892077125217173367105670703516497489157387111049761356227545511384955309981351301436754094537831353692949091940709910968881709237639364077303283117375278201282194447011062380589626533718486234658471776350890626764358830375091002640273868177288406332181298834807419241458763123448570773139245764188833265671925145675769938954928780364606211425752685385270535098009524455922390583639514891172148407434020493915437648838137894785969030946754842312735574279606797937647380574333497679109198133982348025615390212183035253492782631937205080584601122067128723077622934172069371151774702548990947778895210616050201766243140368811966090370079292962342501849557362277520561323077639042331774936437822413227701470374584113908559766605068274191382584328799524741654073486999720069600994752782016058512380968803174351030988404159028006363657314822420951506277801796829743903025579096740237325668135614237650798907260243096120573913767455541262490801194300282592523926044541587437145366891826622938929813221491276298589641255108952823585337827523992013217328758705656892509200320567550320167008595638123697432774655211848652189449024040884938465504618333458853749474994689706200541023244871762379017075046578741264060280767468181299511241342363423985477263678466424232195362012411808726670788648025228532304389590651017863303752065744286222790322271733104982632269827535223428394659881410588208198559544729548366969566720179419424846591428193899259115821180895676973358771631744696702470048809410531222499786339145069023506788895099680085025880307934349952089637099318514040167232856767398394766320999200908218157284896788564539613922777707460979430132548028240102265172155201148420985908173696097363878210737482960379830556890782024452675401990556465823261068771636753578732913393449514127941447528786535493586464137929160538663877191468885320744545695832101883849891737926599340598324363138170994113209714863196250737527076724410596085959885996335715653202917294408493832428103802489158329861580745359631398444148897288529545393701270428843380807773710228472102433774048636592011977885909915178812130905471802267339405348763068767998125472008653518787728938959187103999435506546231199167067014025260879626407081390494743084415180624050054226654309984471139455559485019148794539446629229885529647862929238171639122660978849023225321522851497474478552778076575537953798148107767835456877048293701387847010617582187501111518064756141497093431371266602363922472487653837678367030073236031895361640043286087990368783082170443243548790220948550222989893990748129347258144441668756479407259506571075993416042018272415818721916535562670322608983123507867968007970959957244513051898334648026056401497558606304082858857441094610447352786374404634561012680489956170307399181553552979018096942107260140661817442955015314659146321787243852075243594686131087023446078108654289702119893775134324382975778446997576852667262121927601020895057227063583018310343694885933670533333860834668233126945774935484600597053680284703444281620374807549802642361805526139715424038473433392459186653197932820780680314649651071199473721079455113996324911542309960053782340419225762388935635974860487025663661313499583067358708794868879608186342011899231462654901403385258782306725767685865078083612497389939472874051903536348922644768816272342862726479172360930750992613493732854853311719436608665064210113987119066577102505001837317881879286232552463630552489674084234448228522627854262770038798532164680924398010496250397160958280857470522874613258151403169917059834494108590721748390357590828706866359521023536086371148564536526317577515844739005759252799051783609716111867066761772801267786248143876705687466640084846421970691991289597018233682407634143502679448443591715722435287433611298032406030438846487797654018051720233193843232290062674206396604408957213733908719143028196587862638150031271077539939766836224690275489361614693586367865676588402482311986862214411918494408283452824759150778642898508794672788068816112979922821099417427041128691828156831240166420375867271773821297814055295919788302696917734099907337065429517830007923991831435498341472755193287161973747388232426660548150384924057057343055875482216468188763803436138384042047265024090517914190232972646068351058036517455005298591367966062371212840263930290580561293473801057580336100099244746318959575200080559356816245124917061932513939428649466993346413615774822312653726596771472334928533354968122531043694153833551649409025269433648611786549390980426846680169246039748994667483322012483138967039201778085372387767209639248869326756557570455825453235775918492978289979720918967536939849982115110363301991650496465601218652068354012892881435469550691723528658839484796545038090208761972258518037658416102853978438903546270504771751699863984182115346939140807387190721732443152407683956030275589385570243455677068733311917195863562866861925335980411002622020545273698170638352317140892629400414308990619509522048675725930854450357756014894679462087562646330311842158921873729560586696268714810125715864292897235507665853723031564416989824462751623587325822587880952037646681759730580844727870340545773061091187150939793054896210353515741780354816487909284614837692431662572892920204155771621887187231882289128786729061999279266922997878000311549125193360068385943380219795762004105180437659383205506765078543083818456552503381599234158551196096260786449160758240340381763216849881241033572869634238326526983692016503197722946539824739643840373401981965885397563566891089575355036367996154041026200865949527878773229502420034994914174639781918071454862769964234358976099954308919514067061775214574150690852570512400547291091629628175976609932804672572976665097519740110567535619288480670041739883236745809050472496535264492820188971347068624170711263761804777926405457945338098900926034032355047722420827926505044568889229483340869193350126219703531042570492872483921015521237674465572711664709764347405981757576886268126913239646238289199142776609688157616913371583026090507243541927884939355038054855393152861336481908357859913481780377975320325814211856949629301011906297371249161312974513490859988856035764189464490459641600135051156358125551701099065867387710507079313118897939311167834170246297583490599399052645385860606352592882378905555363765863616610114547103169088010933287696409254384410074892181681786200433567413837473110189980610243705558799492191219209563485325324555650849952239219507867463151137438016850255747462798486942570223228591349871313006347367523907935243506900795239530265643343854712372696947913853846483383531008353380643730264747800586953957086848593134086358857764384374885482935313966600767942018225337505243541709336242336144195047977029348575344318754104758376641916181340913661342525881931431759736692968186394375500130896580992604841024883187554929876551843143495848986615424821198917536586244699069025599321605718043683604170543583045518401176464241860811691320997937300372531211358634478549209604889457816856104722872756590052769227425025602276088809890257750959364989876287826433345326852012490842053157936397462379321306329521744067307009521416559051559663782026639006204554420336093981872492562350901531604071804880485974376835801449000786307689053438953217843932396569701082436465650199664751542927634765058318629371409049989860563754328330282027757273015894692719582632676457905520377131423278159097330470500029743599754916386189697047357104659543698175566486262650300891644570402049543639543618858416640742387945278957682518467792399609039714224056742203081852146443457637132030046008109648287625441419785314729921385834389300549574350690705775061102935075573685889860151907084334283457003599837511524768601749685506607899533141612977891131623468236567426605629709747797294073693908809569090962571326061082744537220634979651954085190151010510418070373234408480059220802237073877421169800557643525612793069186005471406714491160413007906534488464762162505989503999004754946071300066571035951825387423568476036508627673991422687266931868491959743381912005541969120358298949404328950055445815629820531184470117563878585787947479750757748183811341682064202967308061291247600887675335218275285817877299831816614371002121628027150168506576904424743281596067779646356109090869343071077089045579357801283501248281357274733486666881831134372466343226834759689739496178200308956020388052493305913509159710915908589366584630523095745509628750111282382832854522269649023788292177702124208901313782456923777913633945375749538164826712600521917481141910546118415466188646082529088445765131290025380162170272948494754200377356012645634016762410049573395668110869653165511622590237804206959830619857406691120934921596257801655116582104364513417233719387685719122672138348880113026217142175506168028200864326150360480234029658051473297689760602781296675698699508274189994483065905303120337594132055556007952512700567072500785248148340533794024159176412385114669082127706553089228751240980705794370191244496949927832529154743670904818945214365129636918797684574649623854894886178974420370606783563317927419456370223478241018057186742840737115968046076797234240741859602959010791871976433692335328645149166730523454013340963339457946638589881650054882957780662548641709411947368309821415796762373855171769819176612254897151515987618592598482155857303768166772482426663815953728803116253589214897403535286964867488492904805750817750507627650762473836059564973382382063126545543016316027303502957488333116752996054071708320229199291555348326134213138907804209462978428832708408080605607085494872870178190368086491351280765106931114898021127250868344609085007934226784541040450180815193459642844205707663869538133053143372479515127071873430853419178545725554094251952871863766846568156492679605483837555185197264733051414065229176377828152225306701617526765180919405889770035915910340074148941231047640755656460608558282954570629304237151792179308494242631973852647027905820444878011257060966755643338069738538087861397820863972219605743736672601377847456181387060580329224601952394146308864948419775922776633053500201767472052680137437762891860208866504800019259602269013902128077696400088677894245951628961912785251913992178663779660755130718703254308026304518250477107521701441877092921781163388623100609478868562747053677848723011965546574013140459342934485579765604342794126577010320641606860222131717094715478096832116919770097789276149086442308198650763840465443223285959097751943503460147407707548001231111942625986261217389382123526435091743649024120624962485803409419449924176170852509429294794154583585386882689726229629396923544420221627387241376815101665316671652106131690763148065241701203328236725854996672166942896120746808428732892054286730965367243947743880519725985690916585246071271296969751507199301702907659668194628672218380975760766994287468107122835965718602368459237584516558775803038839527812920576987360472665134820100947019386599659299167900869589885765486499352699598090406675258268355072023342951598282000216450148031651363639348771830292846324637845454353598830399285653105929506783796430936254699422469646359872346616245332670933165987908053484910760334105683281186733635099923633603762983715373827912496719898162279009258415303665594328324940597952697897245622169750674681233361504950101244714847360251147083996323010016366731602467004470917388061934864230504935954755958447686006437512300777446637202345940857382752866287431710340721742238142619824768228807110167821897329378526247570452022160444486719256189135365048524743864821591291337498264267606964831805022840051183394467532275279537971012828109672255671481409448070882818930660511082343228779451761150870292129619802953441983790840746791994616119494378063040485124837267570011983183632253856861562378111086642337407898027282467881517175889471361585068350157084508710338141230721274157314491375097327976228047925769847377550683573110491946604567206359434116504338908389569234966669721558451870805568956494077038135734516762893483824957815844106547846383201053694445983897141210412877033117773386526912431908762711162986573134859540232913016144200004800405655709702074902022244836726839259011986703185899629151474921472586914329157237144287050277880469953295232992489157202995138315221946937879983696805802423208633519282156093970911160406880160329227832034733399264569189663691356345233593356613406223978462768724251053652915161974176639591759516798199168435684923483007960146288570865940169162450204386892889600285134520839650352743123671935986302234456752021475038284144995499959041761884659194307939741853283257143407148521318490644507812748252188302999528068842919224106231072389960805195120471632916111566071239529061247748631293603433505250910933677735838539467409429686131309749198379093518170421350486111548022125803065239296126171278235330895549291887769202340370185313075856374718819883039988365922383018304464469931872809546352327978491290265440548341641026468488427268960333332354444878161497975635878501652485783318985739148240998215647609784812482146174243242591425578355716611109722426307015934648451013546039142580797184231302194640242410678344248652947624807241119513041105128197900862223439635682081583267886497741302304824936530864576640560111453158199320705821868640844311900277526548553923834846885837732434451902836822491970170458214086257909436927442486838602071594037347399527375363853491820403772285869100270916051840622306747124152853982613672945095929247736158843289904280436206970604687174204554023872283689555407259224344073096624041476190039202580017475651900119180898662218096510062409566672615531475813989087111032590167616110478119258890978592832110668424797457561474508936715565194938070361990059593334170458195363661055522265317057364769920883746470089989304690843055939420847134754965894661125344314822616942543219255359619967483310342264281431327822456286825385576800138232724391485301632006548722605578620807578654243691696485276676909062910219785769630300250324053658706875124151619009927447345493696531714518511750387739824204982300474510223957952001193089145108951448767113614070287553599828527812486791031272029800090705107518363162130135504670796873824915528496238209861086559342609912160873235818917424330592707817553783868378414973095369153165072738648225440091329042071948921172217202519342798122980294225852106582374871296062151459475676128146798549859031270611175207925088506048256235724965390604178050939727171273433577532172520067853984569025488342757015133198962725779092459403437483912426100100564983726636738788179237386559102465978238624341354806344499674710522671217189558074877442007801678735313290629188285329652914807357812341295782286356618142231478148230077586880030576870519344481438952818302314453703588775059735947834611077044391708813791780217076821013938334861566661285143689327103596551318501657925777296137333231310368881523097710607986682597757068698315659828228166256961601693912072410603076546564745999908385114584065308270467808542700420435601606812065943738336916077524617301009782880806526618564485520426440729709811194559471644109044468594790068826205100131870726135908131777819528123765918656389779457464281764651795811577085557302108971541980008348483184286664971827587798610825971182769721645183826960403380619152679292212267715417428930090317415114074533573804271247194395282715867180704303259227101605074877166654678889225531190702083282537063473893474767514190439318881224418708536970413105995243971816506304919971284792825417433846400952689065610115416772807257142887763991485986044864177865776056547819260261483127081321774929345355881917911529693916906898289300196060683071247218910080258932899106232110466163065149667322792267827515962850046709591681883008355139724660670904202849408603022114288276473895896679705070883338354918591890304846920401683226174227258757788961349761755046060701894909620398115174222019893768363739456151405151740341039388795762285848299955298955949270631990812649424631577830202085990080618028785175547931321413640530877442190347832608129262681734231786838380692475136363342702131958824602656198446511199992139399359857038520633425905385041791769700118344717906367954931788468299035920825460928780804998479574373677999598098177680242612296965141953385988868909564089042641836487280807667338325534519844437288541303738731275160693233281256030983300222545402126090103827799421425959906044735591373320704581956599602210803864029634453257103854138289517739527437938493143475548709720143474396570533843288011279180873605670844036315880817746903014145200994730576247619729870539061838267814103969963841044993815319834729498252096174045510178426712943820562735745441917656422592162696228627888600315544935219237188866939605548132208213789739991308562685357833277937135224754908997810582804273201395841779077261889547467625446082078807897880922564648087225170181712643529126951762940230558493306072658049494985895258450334246137344861653148914852955213358895193292214292938858752086106556159076797859060280837174538244002368153687175709058111672867255961619361254646878182512892494029200288208406631497458814106773333325500777243314305285589536694515597052671470503470924675530517720869302929863529603227449842522677933261349536015004185820035006945367663179661950523286699030456824265949951412472852843885755435080551487456039334408142542403839702983092679606227203646344482779495615742823426669399084830801417800796297765847951070248724948134521171465707541171225080061487924085836169104818264464214361194788905233149836052127944149608716367006992294678505010655929772145883925869066277331851272041163162743519935945002657919158797473139210886612296915423175795527939358478332880208851654421956061295512711282934878737825439663452538502901028271498982686768782498043186506523877584930198849597997567159416576136795732954890284604206483449812750404079024299756556828535615499383582098075775599765687613995861925937824317197147177773850409686429156727634828158299674921329236287221750862271806366948705071129738352126640760828652363719977881552596519222580760276476080140742536722743020730099617824305625661690607554115441511095832833251163688722548589470328360377121385030230951972043950078966111641443804313864392465230535220580703082894393994418854753614431896609116065881933853576906701881148788537592846161608016184103977216608075530492395976179041526533885370661304850571346947052480797673329257259130992168253249782477439207853307845574118584674280983469678646228262202385360773354705045429784182123337445130131863499956049869570065332804950437468733225944208889573845480501620092346919923227425674874474201100259171887961752077790226837916855856522477413318733457906696015290002306373102307969973960705591544506937292467537884522194103394984625685972584262333460406103273858318124514133927036432041739010411910448157574285930835228889706830305009411472803885729170806682951273433230459843223043482958338378277373986354358935955714882648351880043967692501512316060057827094362427530803539972629770773576578931151174160940704612226177001137549896840178658009687825122060778724186474663836746773133395422569328715966343024486537045986523281850272054235757407497255612870874669557372253571479445747545492206876228035968347438625357812526825095640802370203907380625053398860392452337141543048188446485794051219984866731802808545921239958200788080486637402358122674144134360071695587912415114908711188603912980591342487372651975772117578631948975887577442878444948442138204270118013771647588662554212998912886580273581008734764363532059799494851756695640234329639296383483172672384174311186650937486251881222256054406404857115624526739161949720906957440113074969397482633820178917333086978686063631491112704732953990078624034153119345205422907317288080273022836689882614611065540727577096211584783230340382086289609643954603049018174197407951185793802752876355846144120895209455642302028044468058638594165320068946911201624984331042764734552066230941586844282125974668304529384641844103161557860642233284473910363279647382675782355332048397149011400785329687718880442801622166915503597923302421745185544392391242540258356598736538187603904176765473133835894097579703733339424487865287278380954790762748022902351826675866597869202642738797073058907329847919912217372644192334176242485928963775604704694678346370864587293622989618270835718640160434440614819777293194671933399335370501490389504631148344250271099422207354769756349866294664490593955960266328062165869579033165601538529266852861139410922876553977348523087274445618164092757640920130164417337794214072416839692084305660715395312816410881144033932196253559867566561434331920817682568225591662768330517771840265883737075445094015672860504179354895224698808819858911012972343194075469692959843425879024080881389578073299305569703466008972015044931517305334922562289086602016791040690611654405417617899737337555907420055766138461913103126340404424293340795403331213398304077728245978286356017380278529399792461645269745977118678876281953420464874023290956273446753591607037161755409075593410655031096797735212665653936546502415047638737790003587202666417429564938826708721308865831018429630915377217226047987717934553457075934990460859530204568067021202841315727749504000084042875318679325503950428529333971797097525217404193705863524052347756861521945299757311267854755580336685306273636799289286393852416726330295276552287738678753332195194725057321222327375064847805636944257894772026314688238642207590756946096051442867370674587375666757421114020841132557755835056783280799864010025569251191944292301324909690392299658876359037981258298561694447019079359105353273098581060342362260789313279233572411785505232434909381834874792108933015275746350059262307040950315202090690765724819857006686611831209376179837244181866013636559343509945253691983227182729851913393571184114299452891597316063394597653806871623943585848241074798754351252428226780779566575250002092907711204703564563078685736551206520064068723316036905395122613006418318498192183676983568233312322189308255680061560452684635485371008991731411643837628684338006177399615853575629474715880144094879852098082027208519645201237712277786764121770119188000997113478308201482161036352675571020798987000210936364122424151197360432682774146379570891946316354315233506924007220440809647790519402401648335100537426054508533768031097018482126880654474586402056007421036928639489679120720442593873517742432580763785548612526258864643776877428756643981656975887030594903120707396469451370972367398361996715134956403888850501898450788574227995665801976216472362031483298579296546767183779323848382820036190899163655434389593668156913694081522501142113328387076175373179171893419898924683141976268699721970409174010108741927130095655710043318718216814783970552560766755057626389486390704912514495868724640160204317507699038436293364639626441879483463808776647943577465428920680807440579535946883176708760242906654890553798183822465605002760375007346540498279262951316011608005898184877303855756038098342041138784756027832578694428904891285216180631101338843880456167544810922033447028341346922138261710050786258745967193361972762434030815756558424392609839582496575577441255481022993335928944269638089203833917412082347787038531726042734158735219686443109182158482536504209262189543235422667607664139989612185763812896155038360862283854724745980290534616079768356868605095302035505710917920138750052935048563790213484239954484132750432858253303764216198446103200691787254854734693857666043031215133425781797248257985797508316467183573825676995652675019591841040794739330659117427947169846806852491496519995016932442424846539088342911663832867179244757879818165738328462706819815815946573771806367019794672378371060918099765062548314176998348642137849738945178979718270024078687878423373062622779091960171399250325457649570963217483222196818602888188695345723692070922776150393754052055053452201817383489783271956354874449534522924368882110072346463228138522279401403281469241055110968909897643541764980078079120711669172272784916167803060221177834999535091923388999376163994061221751222935235541474636785229882291655938670424725904346763633337288184639316478052314994367114805909882256874016299610521127338581826357753479374905340731965753336378882901483899071193504415339661046972125114177663902406152274700728098111885391352052014094294874293123710474890364982805408436609590109074334518720671308218609035237829866292421445361710171864096288461552498084953335558439522608637478479214478212461528248868864107606131620854354052840280202323837993605297403062190464170411111908274232926790576328394193457283289484409829578860960178343411469752391325619926804502632822045064448479685056819091411794338328016425577168781179280393908321483724339637679645941134950031887746530790928355919022791057155997430876063309252894047325822574256780200466170483655646321801509950442059928049740970019243588817629929876689915365216509466436652750626307917261524741908250182658518572667426801019120809124005606604554069780896100258426310596637101836202086928013612222599337687533877279665653565902134187331980831690808885687172811958716140327102427813506444048378321033448473792313885154968481744915472532637403505655751959208070885831394776743438521024555382846092475517009559260653427372528709390331244837288519370988732556816021743853073811237411489778730679495601902840800794890321277952590004277764739510186829758655830078088775672084261173738203797404495731278228905954126682057765557860637371803048852884792025774610175096642833313072221696843023432253037618781688837819157597585727868296638502605405297053115029152569558882474346676848745173868409719741304622253937085002504562137019145016500047167872343705325761449525836556008287058543463950466595572857665820633186138821452276411268815141321203018780813106050815341544411234144412466271308202375641021641258090006355145920633952629142184577029912206191668226910906673124535775882870222002065626758523565158165165089601454069363414903149000997862149129855563163638846783346458285281456423516474919194177630135219686384880356685231370499076413531886532675913163008061273342308859227968780809485148850706095762277210475516251859136731785001448099338093973881839584832127317630470544303619472089688920152613355290747169133329487417999438540818214831831382374199246253990921437160520760230648720403656708563794637441299589358852753900031808137880156782836263166889047818002864102559881785253496908708713886869579470362808764972598610804946179797797903296814818890174310857035082912584073524396693591132535204758983759497960786923931076772349828677637734811726426932180689548937184880663903739955260547211105575603782585357939007291849860277210474374071203322663383838235654138693131525092656856213690017785936857602371262823121997594437101560378759476256304079317061497064080784120225839998179757322843649086283770657062586066800312567484354031807785422002326563569485991346240879584992420388663758487955699037031708480290710785581126338292298561642634978048112300769156184959171781549595585074410579368556542623609012708201298360845150910113169977414414657564628914316160513981377328831273691065720631986062766724330116247030348077378870291781894226489464149477710870942626701784171468504245788100985160722357882018009712962813196726808871780171937704769588520890209452856372870157876245911836311888574802476890983261232410936828726856746593631037924575367976795701153198003234498152217203744708762082329742966717377878003999832630125197334661540841633741069368850834596796244781782286915906318363330861619516266991426694409937350167528701810450210819774734246660052629138074493890425906692535491398498884589097621537623543218821579599248068378938418642805713136735611582696889388913303080676389565645474902684507724174910193094221746488511432078018134528806383922165359786071361902252027009152008760142236561557359864472459423303308849265449581734768491927666404077441739009756769707484136525550825932565185978024362851849234019121457694642611228087529179936085662301360346657378720988017803214822645547808098623655316407269739118972518999422694435460318134073699950109357226471611253233321007389324107361239036766825213170348954571428287554733310372671877456367964342980542498937573339651198853726267939349141768074736141117741724306065135448613209591081746687928100453125778717997390723502529194496580236268390721653545174275841136117313391716894967736405907839088112643249674944219889912243515819692658620568829563797049012415243200388394267102511961629539697153110353341019863209419169707860950989250324030618178336961925745262606886223065269580174777833471127912224097183257925452003321629746605579033126219291624675342639906336941502388010845054566476731647506905307352609507729119110022352003146398142141372695387206012463968529679782692047772331892358290161115902357806783070040959796312809591129091199767320368863980177851896687527345582451085397590378741665939050586348528545436474025198180805468694829384149683812714663896873313954244288254373669467599734295421831810152181354613725383837233788460714617485929538312485981943006085580967140008978376572043827499254260421200098092531716357964841902233493654874588292827655266745725201489515961631132739453570953850759778996789547472357439548146107143357911472503926596889338776123916888984579665391704766557307361598220360028780886461184975788351803154669056716478380576180664075789685529202783173354415523291076152116107743367477562270635804755287155155605944951540985739628091350836955547210680276100583713632633927877589240210725097841335971085413146949405267830097463277089970152953686915211329016119617655080288116286771230292576409067560855745718617731624250774844223111324472337941389437354592499169060602051578194915278472212351376438940428003886901204543538976405165512826426799738407912765645841092836830621168122451775142373585597225529763393627711558616448060582829969788361934050219378808211385085556495116284405725334810444886881158768383208445301813050732697951091277988570795068325286608028038071004151912105088940391874193460096743068743680070428729239610275751534039103770152870358433496733628635064559677166167591800934222498290547801099959707027512886953677160461199797665841267194116334438435353557587003193763946405205141118858131497926000842321298048208389291496440522226928013906614841672853509660974663205027168854056118718735027190313830944128374747049313253639671411953471286113481466867266201940579741576050034011903877901661056716439886267008251330813803338712699168936140368179263065508627493164436118869035013157902422393406121801911893909044784373002845951849592792189699137393630329527032469423093192026993739055185110522721998728502995184005647830913047636777872555226148094488413049173642602616561751238734840284728212950753942716704881716911739134535276889141533808541553344131902582026602586030982669167331501091083134406308221196471505260797701532224257570935631407477197715183018122383654373326552652501091363101475629515394522384442800927039739670497645736420757677138170779742991242229364165602614234458220461811362438291030383833004023797553104468782372177681855592876738931687227462807170079220474427421291752246810213030230266926420323343646144315267517487936420475714684272633407329833677387495546501691811447273096675318739989754889893392965215147474682615620591660638697622029653543493080921141203747035919185261806559734501365336893445398233328379758301008229160950067413841606280639255626362895710762588577772715267249363249597486277629090650925288529098448318420402463924709423368226643251546624406366979536371712144536587905243796718738508729287699119214436598165849997499120358056183737518000130087444739353843940364995039337243732353443715281246267150409959682095121356350584782121449326168922833084414113430830080299794256421153770504530843224616524247645334910058755682512736259025442675810623851788992497466064876370023892257670158508785586978272061762287235390808728734379506760375994204643125713245098355343223480390974117643541467376936879850535181800816065499456425958353305073130214622344132889786700226886014568972193521224934436416620701923163839669758663228463159032645108600436357338169878044755719349972290481961483434659754798109877208195329662176284749889860111447002963861515230631268048427492720617169911415914890277428190468239669107499471429035072572496060520344396928564544018880056392498261392551135118708970769050349917076306868570129920394495257443372180048719679001554235436888692371224419700377121233251362899697736627878956068625534436058952335215335390685995719849626597222106883067333903294405491434301901021618314467187723871033683286576817982045820549945112438548646482953063278399576568264237621969920038493181142607234068581972495140696744085243015030916072106638345517231658969145298966449590286414867843205576027241894580527272302660555927148419553107726751588376233894815408095464455230675402264060611865114162099105991960100714830110101978973310149594938216032535986175773910614679409143143091990965761451053925750347930209656511979450201637424840523134411967487757879906394434691469401129554342622657654887124747531188426685844092467477197615019401108922816657869880971655539018727502105882459873206778647437833449479510734738664382464457272875978589462884417288262504077195519006085816796113199534064833649564995288893779935622869056047624009290979682508363759116642236657342794200483387384284066427303463842658259284555477045560069147124024107708167594413753821697171258751855919185150167276246088491436220749355479896929820161815459934677369820362450102198011307272115912387833019620843976091332451895225602140900887714945005457176302284803450140056722812708277499209163307943559978488726349550636747516875399305921502808525180980240071437811750999278807782791282605391001922584248079711419090145894053234537903174711273589000817226114189928573451998426963879863849292672108957045889062025740816902799037994768459506161709349862912609145417778398284337430453081125597076256320913718233454465305168045408976407862547249159951022877624473415848453970760041833966002644945058652672212306982593069844416530017371001583623858102311877181869966839289843019798254496968403072360965221355329956341771354947286740192886873834453485412020378124185856668657968164646217245886175335897876270885972007390098545704891728925009339224277684226437669912114221297968048374302312034494739894116959988839350801414496165100605260574081992143376462748693047308469082340050375861759775123117479066543928180752763889543473104980518438226622102232147139539447857649174286087128281793864662834256232807562764783014346476899831589583212970958521077015220280611474042674990869877200185470813590436908490013034920503852368125924198430760833314058254622253329965391936259384448096806872576239034792141780838478868546591057807184620779750818084277180501542666756404236666577092667335351839814930001280556649459533144764541611981405247081429839649813462791772618963081901827230354600673530547025571695417190192812774588358256109796127123121900336032855453186898785380917074596104550966590337993884183309094336978805409709649121359509121875310240569056165930382588542903994872352325114274647518982388738578283195420480403514264843514238816892743818028285955431809107219674691434534639004875121968410962573786715118204616005545414120736798718000191256214794499556441543970152942095476248000291514078266157603633584591461732820573409633932663868547850073081454526473104077359060610270264331698154931516556693510694909916895170216982146718889626430962098445885738831917416430709962796621716659710041088217689837651596103980388227461271249049245893016564237480045162075373885731061311714414139649951569151249954612975672129720185421933438551078547242402560063117851727971598927096636973945380211244422310713190466143259650535710746488256037383585596878445331683805592922222684461411709997119024006201905314796143200230543360778414663388559272749478521808463134944217688121567687667570753827422172085559735240421074721484075856115863731288074294662043360312334422078555840272582923811892850585752411469819309268685008383536091782424661951428547179800522244056039942765013233751647663191881810416329088725174522241901907891309334635719099393949571538871797216387016906353755893815759294663441677577696549018573050799156817823579158687876745091624863345227839152493565966066588913194691959612370811322548695313432143323144798809420519921909093119341847793625665197392103970443258292124873038801809397014637037592873373181494921310257256048271915198762885946494302572145178236995779690491405583137844940198213120840527066078690751409475674089089962679641002084786669852631487587602567422605595896022869816718718829898338117592239535995434385653918900263134480542276763472257402638084362375263475007201966197102519849650714535204000346513180131360186979967613546268260181438190353200752160581015404466080075136170031119451816609312266486167422820435768436738644477700805609738069554946591469971331610148207115566447753513542056947110280988794646204313280724582716843543436356928408352335888985571604625446940731450615411714675396510601421803449848676684883836995516119901194486690965074188053427872788421216470700914405115338265478285478327380982772239904804164953420614040674070055614969829709199309232284077789755433225517637289390780489535268004228119871028738847608812521173756824107620935787008384385369589259926991419818069250865419427240346099172428760440338027669233156895713353770836306044791862734069421585515485818293522433563469185054640207369634487714002558841017205284895355764612787733550137458819500351669602557206298697295372558794749505910197396527621449612253147160128223168777871086747271080499287617888511248545617030993622619445706675201621386336093739906888014963161357416674109557185561781318668566056118632504708104537112652755139187578103627343212008094225336384711666487088757926792444095499325657687568567908031562264694638229690789629829171014734542005041699010810807269029035397617745368873580091625468858286545204896107774726764186818609352520189826616453038336784251390029368617721732930479864442132788158377593124457435457150711284438225292355561356323645217512511753986407828995885091920739502272767598189173204027489325508188516635722229558495178241657142357808674708997353308511046950149614596020091913480553408917433380953019392274287172713716759903991335667154188502540324608574856789435366307145820581850071824128687236327876716010897870961319661733804095077297879308575747371432400821166419588688906558568123663822196599119784773571505418584706880954985237071528940016355619689659080226223166017941752325359902274466333334164397644318438195098864877908632663915069494784667510448547863704688525679714388592034795991277397657532461490013512970290766797200176406352749493264150458185028493609921328335557385972994613414376806016612836187299765326277503595252417186098767775170094880160074911017947235020533819046318076421165065436283308098037723250031882411597048934037244512053039047786276770171597717770802735919423147020020946398184811433891528613042957451475670881330745007936967361109970239861190406731937018323523520337350190652872333232804716129952686363586724240469818904338496586868545718314086860008624244541407377727617003255512732606373306625640307330933424307446101376872235370240699402592696243901963857239446774776514352604569813606961915169243881657189414245105310919400871931213800217978056073680739274294616176360662082798152112815215368012265761783088249383698881738007557452642183207631619258127492066597543973955533091192852035267932668778711130651403292005454432575334875817556341889273828983442738253498184696372192252514079385436366024411590577062910152924551452700471119498860727730848933069531505196979844781517749991653714930112292328694062106294072771498308746822778871263852908867103304198278400504408538800540442122906471940819799934969543133158086508384121219838805990960758739486078497241195847543531938942953696315819398966626240809703837218693076926701094299640737826769750441498685892729486447342660745698679992233963046165330243661146847823153319243573330642389992732713100867178204055370584005044536262722626114556734772034603058135166151383206412327228561292737366619205041157190236829687859835728649211790464626927623028500965935724443831904312727799229606547906027772513956503233476115344142720117241724402731015631774711385637209065078425676522045365039814794324118440985937914517816157336648280123046522751332450610046161175879125159003575191111199594450839820966499388765363960343989413241348362560564044086763014816431767609408804050990059814743573040796101355092502744341643451681636920597711454130400145001912305778628496555823267916609324800993455295698621365937242643472546306201237085183087901479386724367019135068016365023980067958009372589273023811580044445645760975696359761831113810086152859543503922809954786059790696932560678577521589651878087930570571464291111132720549923314903637399179859967080396983932874143928034073586629492571805670284675901543153023854891235813759039066883071984168592456048463484505945054424215368476846411924181685533005591592891730145896374164174881174357883612013114321385875599185722360677331611318392686635067628537596678996751010739333994039542579004288049216663120145305441660644646570378852739423922295013012327497111702442104193067077908112307852006595282579360012768926857660241479017491778020227298249553722470570885477434277141471583758585405153242493380466790109801379704827904295439226984920030049220959789889705825345088017508411124422705651497400378094631012359359973334936442499064647519470833483563966093494538024196500466207664645773676757863625278782248320540644095717764938048790328460551269128091935139550679870203991982440004173114519809748306989345523662146172589002742364826276364864220585079249721584601463518258539703399632537389153538141827467633580502652366959566049539424389866711375325906030602337943280860933725191590608113014182080235346881854147416538412164708928236967334639075718092182927158863573625040592188082085190005248595834785160479222673504466023245389485365773350312982998587831575601662998834684368644649793447461270807746996834959773186032842641271125624384232646140966959454250119535850502517027099208767809257345642288947447912539024708998653767227850070374914373799237969942946696365269577599521598280957219238915483233684143935003215708870325952911771167672048429848272392408624523715079550612912086258626027273809831685902819626502820891980232718906414853377510704223327364805887660651150271606252168199125878590499611189352706663918394105067497707541245047194731509273152383141185948723820792895801756768748659076039205880736511377712902127446123237409785389942309608269569458887443261054315032391403037663725103351116745581171796947187563597074992989780186696474579984109887842714703603619497265892407708724223815206209078736028128528862865977936456834815850646651674700073673099954267782236011771403796593587601820951778945623502282083310469390805746622975180040744149870838759545674231633062307032589591046707005294856318395440525582460240625129191162223752943535206466628980100053218577364721224877615856704371396728880419872337198149318246915849477788331554215853869541016598083040957951482077369283192878941844034446849897932178871622480864630635423545531815236707655925622203690101933280552992577210328189738719710985322990275472099089354430908209452007601794867174658916186404781432659347076079354827415486680825773375035196101618419739258154352144982056306298838450625155669027265836141165775588665702220684465100768860136892192557657039314146195401583361842968073521688146573802051924061157831804491165534735794898893395065342058558956932187650515791483792611177292470078311728568734301329648306095125064314585975091808141128099309775527977706002255997738128535862592611697457777611187586552457351957629345888527799674497912020306380758656880894477718715971843666062937762479614720252361596316673668292514605736662535903753997850988425809966262010021482466756755125725437941723504337942624455310281523144108710719200637507646936883267661616297476102394929739772272853528173539190547816214353665355909632859339930569682624075798951697544367283386999865746196442497135339382813205980797508064509471145708439286966498933700392828956792364292258531031685552972513776345060707859090743597121319394050289212244589075286956190444860846436082445665764425400961012829892021280316561630633425564894707112659996234306575242196405126672892844872305148499354637980254562262180137272106693330730956308113697089397450209019326014498410874407496571705849598798344180690263578106769046646059285432258496371075091667881921494982296061192386056938867294912532618253008136444712075128963467373809639474673170803417335099899057382775739522580025492938450418266065392122954010564048808165403218101177111843120210921394320771079898328224665469378367409746207250160359326433883883362540944385111807595048766395462467976242118262183714905169266844127365874381588263994394105683223782742785235507050555761842690231951422573108897524912749535954610082833329461709499559169240860189219207795750237308893123917107149691648106270107089696519687736850702722790615155404717807407910955020484755485698012635646913746336066797499594079536783393690575686719992758930025862125183385256693352382567686337747037690910453876523970069160968942775539379803928262134997378673256775783745547263444215910399194410821936165773919487479570188886779753111807382486532782004413233913054572847918831888460476439063837718554006041629066191691596915681573548238786447411967032642267645064707995578570532367018111080268317823087439837738063648689007239932368439603846300803551655805854272525457110506274309077499765174467616662039705851130518483012058901740044361240346135889412288235857990625743448600683598786695978945822173568705928020192187712811240463633821596671831495069182625819794213532788510376742993394832162830903370833465418776866892603891382510365127683529851882139898958912472342665123620945736418993647547143499688269678974039172159173847581421026007730783778356648320778939148035945103206458718575651280557570812196032182552065497811578216783679911740896002885026883663495530460338448463524107652177654186548192673612537576915859159128801690066072394826776064256638585701622753548968620617503195973758398954111213308269366990957331857788144030729594811330644330453900267083769687222562953431934084409061829658704907084333434260223028501394393844192456492343269797433636990768332208959322089857054877953765809673597257967747993299481492438872630093121969269243839967703951524336484829311166633237647114581465872872446612178976655821777792183619357373187119062397487468721343997407701284132089837897843142588770926925339283948455516165863581116172301953749114487765121945897505271109349489409813741771588956015346034302315122475147031438541518001817267315019224410716925305793200768816555645601893879978994100060541188745897684829997333027224601722568355225788941612816203624114151858225298093161960500101349158375253471076077137332570059385290170552651395423876656814703631291920051698864725657020366384721109373136395678957701856324115668633506313710115697023420192187564979920826632103589497254991593740010508265644846969344421921944555412821284508938117189850302952272170523884705108227564050445664239249654256333282610276011626687952273273589093368928476805810346614974738432574566105422601989974802718172477727151322738247985884513804272807165451336831606831518218098251873999674716276892875570062153777238482784744096492433577618650338250491788058166922710715991208287822806703399509244981327093301942939936788076429578356770682210037451099516687908955235170897701797478291036702638106960601796533141120881315863836436321948225114469907475395395828966373492988140277419382407758690172249101486483672080624235505395549354607275627523984778456123605079660085295034046384451575680938192019448114567786810300912760805767346634686654501040758398371603013281190570295752464806702539926701813302471037201780505785634739071517678731663664092903823762276326128495946883431183870787765187146859689214867142306875129616922785308814969478489991934039641810917222847976327645146017040842897869155391748685481630459166901158623239041572297097586071338948166237436190074450823805197233556685494152023918347013683125381320060302374259423130988014557607042242131482057943746341803212785334490262769764569903383002145943926065059909163466558854902732697633746011442252204516700501087714295353574520307486981953985056731822328472154617063706467586965604171283136895768873029463454531430311641296778745797413508042992993507730306853861478933278194200300116604228471922552810357356191197712939951411835555376682587517232502977324808221890425019021059200974164892802149914650629415021014446835201904588806910129104942706431078008346766046857826938999479087561638929578762727176277142260100758003150812355133015839844590693357048187191369928135923731478964765534795554232515274447629355314429469168740805636650060113749215097538857430234994896031017095861859023196296773619936973960397386130285586603131121624462482965184273292437140423577654921980105258652843405439931498371197165673288249937309509537819359362993134019827163149955252997823773616924727036322926478472716612822691999306342629098715243098143714031194383460027446144578792888553736575752388357439328158873979983228512970659715910321486808936918946641537234956666458092001123003371862681898137895636403309188804706745104078429318485486946372737793549823644975226731967687552140539124968016396473670245342184008235526938517038506811746422032421251827450307513294524121579230631151982967152435446074407084883961899078849465568057352267203135177313176506461119069450107427586605187576082100130500990677390752210805610957703216863608600031141698497589965353537108538688321013785464018885673649047713924738223662926146739788553518551264871199360619903956535410021806671941473888328346402794670351949407412509516765573157607544943327424386462668180192436749124330051006195245201528108447338620994319612255029775155420131385968754328144859182579683730317054907906618241464953635819323895310138066689259010706228876728973324978643604179804290759477874818281014019013523778888846579995971692856045139781638885597728772756702685520434432702984432361319723334133851672783618386623544542350411095450913153477654547870626508971658919560222709743428173349010933736513711527065502533329706497664965471622528985152343395471061359057611325145655336878699814957570445223782886339887109197026977570788471303826072051366777144176093229223402273132930991165320171628134492442753621084534657652920985096743597079316275869938359736870906399060405131406590554245411021113342617697723189198736167432491849395035669897068319761773596629487370133349273443643549750292509338763788453523382292098528937539282946404840394338168708203468499922001633455060092004153868337604635288962650718099192448253846994333005805220203259158162079069664329267611206589828702281852175531434744361733161485735974752738152922621936594601310723219146298599784583257957118463530853622524204797241850769349096151013685677432761586229230095720378600753373849973541813782022651363384736577579326218052690181492456959991669928987907712494066269508982304963807346766463841608114856993166917513692171170915457406611698914978883231071160222030700885629499757352046034341289047182746047892833369782341166770713533052713699078424684786603761512872103421231225114035964254845210647293961111075745683162932036906439234978848312130446885432746565093771200335995228790795648739137712841789591954138468681150289245115763339111135747198161990535437333665205336365300829602492846479400525600588941945789746008801019033278747033957550444467519077960599314720217504292342681144152800043016618478782653171746029681704043776570759993058401478870497771246979043870606125700954985950017335176312228831689608732982475727320322205341308366560915329907788177070687244221857355845053250213781388664683921547888325124109749978427591234843094425822333025684716408847435207214895038320293420477269818917035932180122384319643012763545117743116722036222693366970325530265955545618885302990050392383674796675069615507038594310648830849399234773258718391476124137739431037352556082853982317413589800870007147994741993770895741678539320849576358694295525054539895125992033481161841362458651633266519560371409546143001828812602373462522772338341313873671259255343655904628956104903596740148810731912070466963003568261338659613223031136571801066957908398297311616399643037347092290076638795252683722668436951284521454164783338198427898796646083821095771954223705606453053689424385930075089411229122736449342315783291415150102390593958657341604675019144940491915078772800024888271428669208814427294787141004872930742676097378509816182511411784257318982094130345320582206227166910359780988412612163437837306570614041086373852290567652175896900448429682920713551429244408192848290397997204085913730006119513549115438984594261289586734236747478115092823040665592851942400774543608827532785363327202847889837486782725486805303604478979446796344838796322298328279228970686252483852698729957143171580919973959398122640712150059213928172854409631271588890285863890024255394788756557602984556499574816080340041626338446064065739825756031852452497928005564280573492300801233585850909663209761160594586639016695934273875187159805332429474599051814376880325278955109891275654149553318624367539886566911103783036113038804783997071801920590276017328722113843945107204301859048745766792494029067268208419243608815322257627659215712519256939232218847426031896372028369347303861311958611259279422737858601913556398131525037214559028309275728378383370514435204119539518987531309894442600185433045205006315290842035261271262426771597324168376537814974509366245218928206125184765459813758918542154036194802162937728259954716268079499273118699855728246638036798856141266834727619721801050735260162885623442665040640099682271451527762578499367754642173174395450850393555453337696381713252554154408539905853700326383698852713328630764266635126352452356715619631049240441136527347607927286110068936346683203264848331506473719981657883847977693263137626402210569814279414255641617160862437074002451797278061691164104679922229694261962927917098595298000837451608780966066589986253150745726788293865955477319931690003631746635076965261324807559676289345332945267669987394786460635803766365156251576963836841419977150845299425012411235492536882793925437337112294076083681602815444281583934063455768710682894332856746878781982904154225178337110962124106439148368783313131518497144452070566931235264438786068972289093223304386952800602921372964170144461967655019692618218272202621919106346288961559270618511634851992884618019996874810537754316559959703711878705725832461162501425969961640601964303669160249895261264905622941356887435417570630855294335024663068205832312070121739342966143996017324689140225497219386230127523537314802883359245621295468716626222198222832171595602543947112098285589679852154330509646863226830466826915700398318850625706470521449697648667105762426566154495012162742057017472855057917780584974452136719434491426480703394211125049815064775095673801389618971433825674102078774814016448712659709158242204679036683361042332889295958026195521232091205783685779397739158041292949995421527587096829984711000501605607603587402602620514801715735070600958740817328069923616673953585600187681551820127462927640023294366721169497643954968665400841029274592000718096509211537724431985892430807521815533447595708010706932668462194615625076161699506411869243924119203969845899313802233663446838612145795864866726645269834372863922387228344262759896676219683932531269598758598044561816420099202127621832502827665096109542591970656028955593246311327971142731347804050818114997880202274333132853393028579227460696775890034557420643341174988545311136344442593892125617696968824356575378880557829902994589701241490670979727079916633030992361008496216896081797627204964461317759317562282631386311470790650963936085350577931692525793039635244008585838250600651209072574888301403565322788559031275922193996798298116470467736818382971381283297158573691067989297529954696716254918390039371240592802904080495335133455867757061439947061040660924036084908826056112821393242640738752423072232480185388838050926835571042534771564507240693618075102367623080017186588661496733089933855029315748294148831142577449380084959156149744894696368299452878648303232025219387823724189649852130516004287658699213779034465706715781766933677330323925824624467168999621941810076731467991665527535809722008106687491880347518178915843581532645629041019810773866226649249321455847530477224419310944344570433440946494990976239939632915279178138167389410494529748239405360248928599205326380684878382148016904979306593857691564970762515073838165545211457165366835834223575524880877025585118646389726979727611424579559064912249278561477220027426317398208558455238362660864332109263305537278982854337861938343569800732905301367809393530854648259955271734458950408297835850472983631148643746012025080107565158152451194937917899706558437907122080932112664100169398314344811717576424201290484658498184078289928498784517090090595310609484085584520612332964723515905319980167173325299550418168869216720274371271473356966481143715869267278942667693682046059871586586430825041840146126057043707895150104443335060463762983925562415851963956536980432300110790205176447145385522877655535321862316550097493038323987264808089101206562933758604939530005303991793348747177737982455709460761436728747921315203320516484879172678747385344416110238228697995834017952156861620563307691600291683768770090348630132894421412968423939206300583306685119678223616211403251101822773411310051489504321918157366194715050807844011322724292372258631958343249254841059025059867818495497853593870441575606662292056575306237151486075777238890013753926015459707680091787163732846161357118161824562781105220098713211963388034901160039626874276558123263777666141118537582840080393026542749720703781005502726288712310739732022097718702473044003992938542854355819760820274061998933373250661598398087776813316675925140105626812080058360086097526697748344098995515072402940500608140920190252327882977213662756252262324641176191474748170273501192115060728836298054888918857301885137189265079810704099831170523106245323571196542390911594665245356018455183783033427091838910384693572621923061873789803280503756069530501440016099209364220368388158960590444062033755353307768597038960971523812355484378135677668364308069203793833569806792643584918348064461921139558090875472590951719497541447762926803617846326543646492530540696007111759991813030726190034380239212292512739337044704098335391901599804290084915664331235494663938477928075604251823378102175877065627125789194755599397383801485570855655655247760761862782667012374756009658329034386672644071262663466852488908367188818763010377603693692340193233445888094514010482241888087335976860871770186823205638104482067709656863866347909255484680742817394128322423804855252997880584518634879254509932727964704199704534133518588870397394033553872908749673265078516464518059346875579305847927217331985031795855796246242463411855044066698205344071251172973537658227367674782153446998158844491914394906076994414111581928521819284218471057362723914309832173804736437166194262818381220976697411743670404934420276084290804238428273926501929465827621978417378435606952791975180604823414650937938533519515350874773982651830347521939716987117009966131267661332384274680800926036519664687573215636860634517493926959554009802723562621087352919234068883553416318576508152845728702714907025349448457165970625841853665656856054933943943906349686942169757760423476210306870958017537260456484692221989042272012986423901002643889521524765214674953865816771869732499963193338051391838755201928364777095046551058809227003503641496030575755166370768096085445310404939963829570983664995720696810308675940476497762033262432690603248364431387773927199912090453334779694786996614179560189667951653928661831907265474015004860208607183706033720598179544208992875498736298808740153026109272141478142879536893380236479101629097104833226248496063582984299527136751761914246877291537203417752170349192296072757247466959064097256564995192812082168443759713033848323602679381754911459442654129215723087687546564324576752270235852294573761318207683881625225900032000157337652218219964847802377991273393294495078815613620937067000329331800559220029463461998171420709998449360207942502517661230038704193041322356764651214147965779608545034195547580637018777978071518355581410147482101969627130835308012143873371411975483119437594691242525338436581637017608669371879657492497839607183097435349044985894568646197547895817877434250105332295388914551981902376760837466893042716753414630158863438111183856312697724686439410621282126912113187855431830089659650926172654902189630481133561010076129377458748323902084242116410308345526678954964491334631087075715996608614662308386694894357911197594949318516491103354024566627290219195643205713572607714062230470176568881923110245375651084216564444190620851457998008184298732863079803839006668248553528227427822818941987726242197838562685802530265400355700595610537470201526020879069168755480535720200321251802951664836416747545114740984074669036313065031532348859614729134998995715926902377361419746726619110522730065538505064566166357255727421752897111731381612887458953203551124937319524183634616256915303592876370033534885083714459612967730271487804695709288484844354387802310334956299452937565974730664567681360043726894672819722328441657337422919441367096951614197012635687478401101040651395398772676308732868936813438098401975168823983168420459749320776535610289229267821062173475681531365127259191482340659549632793190393534241898433626985906867732481443929762785154056835877348999451703523767044260306584503460186734790274180824833658414714573991145327842809679731809210836096853242203800281308046900007835414683112191810155196909751224513175432615885952160587715372338175848992654577248556493387612867142124463195797507425290046543010732583033725256631779182634735518391002057923402341652296470518708006751902606364610914009052925860646132909738547666357958308172671055893161228342763816598000351267003690012337851964404756062024131256032425876413170295102486575520893192123913917857504403612133284336043277851703842690378943496863040914526354605117194018806593128661210470537737445043975554415282377666810647495510655782528256942136307838101862366531148872673862036689600383585581827537767921864442456757036808187634877432421229050943720118902783197457412834765154633754909331389925397417961775403055491452214469226423004261950691114276728521125180718103720299239075822674658742227805751531624034663256647237839045998575324240982362581343630480464718356518925970065370874102340057544059993580453897420356130750233801042571540384212181060084057358825804169210956994479834756449802787381979812195703858813795620076755351580927528898122515131975377698729355006277286436793728792985385444660867644347579776645665768490054311444670748893217214691915764958144997975355592733530625206299783942131450731937062338821134836947493019898416225408014733458982886313521293602610525503858700805046866274538191038828651961190071001374557103893050834045512635853236872949599329583449461157097463791979288772584957419468845236484787951928350482257086470939764904064691406211970798847174353165446706989987972331188133962098834700239226551822227722658197438323194322983982176751667964574947849664618688613946772962994456031622715313700260375026095653018876734230598794308116875382550379743744741555032100243489291400020903460052188167334602005725697320542047866540821235941892341381480303320719313729889777242737583798033337637860560355138061442837855073196782628548649131868696153989521945668781111529336731851106035781926677340091566717201070360725809735841629643829500822897371341703417817050676139750026699629009869590416216341909101713736325748972145915065565137890577394730326589592461989490418637684291790349255306560206731590657431761759345509460215844475206834785875169824190009159214735008229150265373924620122348131417277319525293707173287905748428052584016237941744405922885327874175305118003372627348603010382131108241842779282051784574224035417105446908883737222168211442255101078121375210267698772176017880868081215567690761412665364163489316859998883697040685941823977511760018929109675060779985758267866921500755957947661962073650112302157562631705427214378411300096330742969918397532350589899187090584271258552633672695203750435758870914650558614023289458412036833528375822728162951258386705051407705748735515637895677278644671138565962148814846846180034417161458874690398817526959637336081177665311095504864058528978385208404961709598040241776234802056184011965897817839043625966918377463834274970098449464023708589517782270516562221932819363992799509778028788404759351696354810385340546805299702096802594244825203523251105313530944894957723341231581633740688528996362146577811427914011792051513787126421107041977137284603249359126959253127447390163754781935005000876597824171442383174420416594909829508854134868511254989353075335290781478182606340010399281914427910162518119952416916130784020281454244490341131912288592393813316049123800082627251802711413412884161666883576676840429533786129769085687889949761399442937617944956304934166490869754089824990082704770500250201911455117542479522249473237930133191996574695172607370442871734835331332861217562579368259654525490264488962037562455063746895360796976787546576526513455664272795662787731247068457463017754941642082123647603158091155107033542772765167437686095295157392530439539598874978949429694955494012794212068314869942157522457320055376097535087274980745795870558201393470133319962908758544138948349783507647110735959959301341618261428211304212439324242364755013756278734492415878208128832811886303808717752858280410148031166103724926408247603828727607332069365482258682138315720711553424301684794149578926105846798239783249503556971414272189454796494276972651014399814162068624674644668430191636592369093091922859559412701234061386018527619854317358578885638338483572753212962163069528264725232490293485749635457977914952792601748387824543578564491031583979146503951062665924185603278067686206786785094889609336253345706247670785268132549512313841377731977563866205002633902168999867025700008764426910915395057648580861592844144394544657849254842788675658948423379114102982084617693715011847369947941488010431731154801759870807507670706340918072405035212920714350837596336353379224203447981013573489485511388042774875861202724158415538085602033432595867862789004981157282213028569580155680277561387823799399075288341275220596086302261449523053220650361721354504243228815720429116085236973563367231413619655310461008933996091695597216261601491518114799476198653122443588200513320100873387445133215503975741238063992275526271477437589233923884104416311555597998323648131334629997775863046056000773643289814564658270846279079656862939217218566235206768172445265048099689625340276924472657492796724281407855336064634164817657053094807476919719300814343397838945434374535219764779675580292445818939101188622689202018206932520561348222524982111932606059302010473525398084105688046141061280697528035256760207205363009394760648800324871032971057376261525481069817023141487185406146248688930362356706306633481592536386875904633825345933278796644231802178384114017521646221114842925196431977083249918502400493345558559366007388261846872515318589050284406016028640019336580686462591812615695341279878946326534645612813437256713954249033716788592857590668067629296584939599759798848067861961721148611208651681902641687810877001440451265880778986263855614281493684488567907502583493504859909117185928263703104334449053899224540337815025171099333426048286891831246329988852265034815776992787103564559924600025146225059348072064109939332813448024474590790161134016839914626945089200939304745167730014484933890857446507485812410326628735064316544034730462338975988742173550522654568927262064525971697240622661870769912659997283804061394952175313180857127207434007794087802531789776386831393635318412566592374833267458343148659318715902211865794499288993871874881826662543147846284465728437109455525373107578861614291557178310353476882508369876394891785681371043143123884390710509788617253068091682168668817286926363518482443982593378148316876600618199408713402471447384385892811386334319662616497958936124201395913292318876078369470867011297863754902391564115971625455769460635068833771440474636083926436319956028275020429523109169431165694277927417063778591181332244664466693112677652387666444590784255299254307805257834258733225309219331245606924960892052128565603456799806949594510371957173033210399315432432291746788782642953084461530098737691208713472615075285321866343718210971119671157960826105875321042856236436769845122657759277596959981622113114412637908418427404919656558611965820130035334081195500451753770411224240977902359633114415018208624778500418937335636024984954955186644427446215379901444527383065540037812640494950510721616902497450026826205479269100918056965371843518052475506600153371497625318642391006281951370642013576736778685655545084945418923637426235772950299746926950088183704964075952440460859113739410935056870263668418620143139080107319952944709838704524712700051030029841403274875783804757417383029115562321965314887204917709324628073569641613023140206241659541060800080093642455113207064627874386810135153426411890829526906256208441229150766224308251579643914680695993194311210440118989276575163291490254540254851168004676714820225716187431101182536195406091028495263919289910942103300936303646779799036624584690611039289274881046178165573759774300383171357127380373503916484223253527964918365109494119970744536322397417878048365306208334897144452671522500784019943451987454152316366313810656546457389999580249970184105403187372906326728310227613677712782912172147251217367262293375279501053601261543166179097554436105780099299366042817508133425370661775800864639962796651220771765232648929196403807917676998179771888005954277065774847528679572416300222851854445620735274277141585707278197832664508496349374952676729829281417481346330658818324353932862922049085885438070755374996171175806417362072697466901298889296868361600521923838707136269436301815709404969427488058769561766788034707981282315048196645691725549516849076787070053964949757994156122399442813225288420986204177997323375337399439091571884689922523095094405801486272581940961165365631939598064810014974148036901984908296473423515785384878940715501351690456852834080533700437252624347767787621367115712999892325068745921398321729222679505705931930223824564088127844168789508470516951248446877657515432878739919092614282720612891517130018743743736805075236899233253451852557022327906360092545820791615937266731337063560235553603212169478518215813083192569107320709899313667724357832179063559752827109872023145344572785088994641159529240493889107563556588923170227596793331468092324070765914950588067258589226930459441134606008237664650220065805288910945393503616494984369545072151532811896207236620398258429550528806404839526106718322727261905043003903916578490810327171361809942032588125211028793589792943206062766620869680082434323760207595286191724610794940716966501956449296317361294938595454091317089217893650416543510833144583665604306429904965217485724041915814689515082505132792137039201648467643624450691899277195271772653593973794120539242686663349132504933314401151521344276136495453369273107748228058965131996431744040810533159485655610732750885130222570305036292107663031394274719693100770638623673921234991165847527822356272790561185612238492540966667251768160115121686111894981733149329098170686142833170029416944075701653803395272139272843638943595594966373231217676161546029311699257480805597088965913394514336170259061342655846613617982949397661295895668365600831347340625680690952034048623405934622325275426203951007166286791146443341754846951596778798415675424198633974238843117455473531530041268787528017450910205847280467923750161084186347592988440104693036558425588945859276502179538822461646716428682328698980559172546740467016060783220740515171173473123182765707887531067511603049235880132744164202488275236934159129448815934999589280954150394194752710519578943395075265027273474951717124762422046326504976073452425338622888627266260878586011507492543995253610862363107323558545127135242134344399301132069223108054572953426477781873192480224373141866578310899326949726595073329434982653786301829757908192639526266319846810532760785133715232675870482648926121031432002574492132661513242240754127078280729714321162620762036013051803149133446292359202917573792843807442128319647947115921995323081197977675532942329028280659610459226931599307614238390775068110907735653974605158044704497750619676209310323605905279955177398264203041710133061098955998166546550854948776401933158756987671846371666363457345003046234626720031289773957737148398442904653438732194471859383690798791439431226972412521175100287890869353141036257080090578162564686827537834981407383602891678821845604871244983517547691837572110573395909077175830476076419497514996033897939057906492791765367936219389249259302955052055138715602386555011870834189079714874505194143713828019602947003090106666302372147469349729982393489186375872661493691644328362724822264087061933853883983532311328208711307815937267844938530361338571813496889341685631311630701365807985359546438657591251138121822759931921434703867531518569015882217372363924608205272114927185030369006117077601162771203972730266053470251913675972657883233974777655139449030498921111814007001828435495761164796481520301331318120563996886868049156871146318240385021757167536825918729952044009485309946739597316357847588200820869978021385149959666885474201232648772240730534034185296672529883826186983336653891195494442039301726191186841208946850547143102699461202081050741077066434189880992155801214465880134835778576042870103337764727945535200074690778316048783879419137462067738613356868357845713392964352357999258295127245262518452085971413056540637822972870223454568966338432816555185545587770538429522505902067177855354889995611104804446041300743653785717227590077947265313279010459687364700136875468002775862670371729597607209039280602756009171648159412736443460552052630463007954733552722863290489998002979124093229456985247750304982699100456739032970820995951635312105222575346418539636949272108430763117890746635164044278704281801114607871215978886208427007084760393382833599293794321592260575775411521063788080372797888669654787473508915171899088261688714844518525980292759246345587240221311927919108899330171163060477598649167545104010429658343785117560248100075654773017366062668077315818662991125598880569151892684512260500962990061728144927753959023932929015623832256646189349787600876329706083324251849215466335410324365236343035302818199970202801597303971039463491074201568422445119297921792597992883769389762438853382131288854451502842864599324902576120681300253247378224863333609831511868797262855562135930812825232887260157813926764136165426841414578314195016481864168508917451476269901930669267224476045165770237826552730772438205487775778645973184917776866531116932113283858225997364426990124451327986609424899206641248733844525559014142970437695526104784239930236610999241866643225902558540170642579688147575748708035787364212694060195833195244336531411079253344071807515445735248343167207274835420288281906448968219843432414876599662168086908920431070741138633163463350136821480016146088046856735240823586805782783673502575011673946150048009005550164593293578272910368559338941011646616078536004421765189739260214930266647866589935724799336468894350259309412582424197170069223569744374393744580071965218597290842394616110867816700149497996809427593814725422597150116346944230612021145392389643881109372899984441700449170410294887193334232485190409468382399285470547523672532603889129557462229025609976418100773887420512339337916631906703850454132253950893251539511884919407696009055158286611401633460736089781502734320814454291926406372151704000711306098444498685947642612121039012318105016909921591123944719405431278806139470110273706300938495053118329933460402444807383643121860506237519359042134474196310744504422917222356259364487172222708425960831106231279525332460138909401157391021560329699923220961800550142201445385863829141491167612277475437390967428904387402903989042603778333900032425565721873160617606556132872857812629043500380699416053761404488683558147635281358444961630811219190989688419430061803839147653361434323957714825916904798781912124478083883007168512251712550443081301974428788328856573714489952510408306553606889756189730000301136765120863176608545445973605385895564105397116291631528826238763197554385689696243487196456041160744659827832317198577438692079487094745764041444437898448714148813834893482261101859544712604056196198480644151798228693462407594628379125920915834471304110583896915527466624454303950323256987255135814302772314993227907746062282817233735439704420227078900787036825776551445128263701083017776475745705784203930135621400048694909954629078167763949228262316989147167406838422483196111976830526222294377173967964276497235838523230056287846084558356326931438823053686905817457371220735613609675597387115093168785331802092234167712373189111081271152658427646468051380878995608716516193833209903783430216899558788002576864118649075449213104026156502487919163169061945813010844333625327526477953090638940712654527839941664988115597478408084867328415890108765524629157287930342367365439787090034807231900026653844749864529523942950779655482634269530611456208818716375138426979160899884766750491471117149017896297612263184493610332619074600306281308116058555677764615196157525654818662276598669008376092221915750841226288537817144765357366343042172424876841375808412016534685033665604259843558904912115904751671441718789916572763811307673152719245875337395241961246245901497468111625406979622573143761383996721436657002055589237365533768984579382646258295972382867235149827656257521830690691511347662776774188869583191656277235590744278700339165826859814483994338116430612307086891647063151632188765925460784486359041560000134067571844979377332766473659581338222600331928076342640265500728057737423533021839802510827271496628539164014221462972815162537036704662468551459518623141073987055137808301005304207244249568773375229950612802578646320726519323082641846080287064736949938564064320200841343100362803619711088352226583841617044463189732774540918620935979606443637636245098201781618426474461392349032618309965648214347922972438192680924770311040186670695601828878383252196768826679262851009577860789627409912203023349119124367065093045798346377798743617183526989723918400591404792333583079484848015957928867417043779126656254129926244500925514411120216039995335021570987651963818542848474642784248030827477262050777567490455712682353344458671288156455933100795928559143808449268272276881212554498356758772329081912138712486233197941544913577780587698064039409684808736074654874068992496361818353567890449935939233036493784883328960991748710648505652201544232838869186563551641904039870308644947784657090130622396672427124624068715196717442378617219459118700428772035896030092603272406395135559508540231788870831868654628268121639348747009664838736095342507129924921501743640268535186913571089819488421299639673332557671682684886408870110681193453964425640358246107093044404498029807239842530810198722731230079459151112230835025402760579129548230392826388548476893002043744093588907814583587199628302911058601216646410204301032903537764511562215657323121799771878721382041778359986664256635452012427676409677123510826260599579487358300107452346008185086320265251288637955685465951891095467810213301534836889845960106985480496485037240763815160387283978319011673483878800284277320406195360778153664816015025440206996303503676320115001088762695761484422497133739824150875459834540309443899272880017648461531772309487917319301168397986795822633584606899708334444816269176589983166072745491367554797146646273839281061379327397264510897091710858351676183985310819355872535522519389870184264227910800408808161232637391145986137137890796586099724666454381611151854952472169987836983295445379075914000716746755119068547497006166977384231861120834119639501823491681665114823996084893744748700046118758975525269565474438221981100812358298509750395003785833281528643872588239570121356847629158870403146317600396445096195466110504013201769222835820476156137198536271839742746142755841192903860693326515390304471538094390941571922651855683056182144487054453714262735782885822843147132464781186568131168623321771694243342783382948866768877358333887858198186139835652217177935725954288717641051796801646493923842464347352542857938321175530420309205912352904963237801548997567265888178445514214474030165632193662389093596367044509684546790590990706041160705377817606156971567714771299181209303707479143091148271373041102871502996381787948255803686141489580377178941210077706208337775857679429549599978681561730363638525449893557956158220056382480450462784810458998100026178597645975013219683432517731293255713918464298023249105754148432049539151261108757026202896310585151226343324064276337055315151715784681883306084528976389825274851038391733858442315263659094122169739648526589425138836534894359643104476242008546093851009923514465566904265561561027935333472818640235995128384276525698666196314788114999153238757316425273637421292841973370156319279659303931741531268863920966004399673659861251409683334413552924795243649313093631118765004649746299611247543406866591804047105813203058499051213936462750388040520476004919183102194944354899738945606844694729260871124394179365809112885009526796645187659718536664260390475998401234602744617361513539002326888422091847339069030665639095600803154402573508632813790898468018974020644381049470471085377426807326664668110839654167630156951336307098159112328343099693900530621165673782469981255744016695294746151413115818965613161850361803768673834751570976350452975504606909678780753080002388069286720741838251704448658016696155769177023236012719924686301886023365096809164058508852816401689658789443284224768848766926834181864993101437448683923813001984305731658717767476693426085271326080060768025105922034158884990591007579771324899537626890283123827951061539661267378367075273959481886911683926247868167678065736337218980323806319124662514816189166434833649738790778450039554810110001238580447030784532124314780650347000366235428083040325797866796816134796291572662499600273800011709310800845686127097146282559831362425258739930387899202023831083271560510893847231589710488229953101618725746669741826638994658093537313953241639642044954512795094323161134925737055677540469110393762710222994387171942998318934529012255077522620611350524578618736603525692363458286736744558292552268670009255691925621218623237899386774303119169475815091667607442432041423695093013875060458904367269257310405973196309017981405767102162504011276221073346251677078098058524168651841747851070450268291682577898406401601068241152158814117046892499551010578570218332412531419149201189291799115767402413100497902055338382852947699601038297147368317695741723082183020764032085073485333333583999282008214257835962889465260530746847391891862620660092898819871773314866972085307165351541674160082813036594167960985932488819557201269465617213668408490575446263343289439477999173364140535764274863078360065567917469596079018310572606601497721989166018837002008671865663669317639543210757420117052901183029008561375733408920539378816920860529404622039638291315009253383640817410535322704587457142507825230002619914733507183824109861465200801859187812436803756486425443682361422121963983400378490863402987051737420545933446559056854396418206767033718178117564069387911803110641443003264963984480816282474747575847808315807747430066161684542984813376992211714497579995984949076383006546423253017959637706318955153362459301867809856838473905197306146914859368202966778960300259265554629358341001340941311814457225771731981549781789476666955414176701245958967163858549603383685821643735506739471607421869302386434692982000628369056040930086207367912015998819010484983394292930698748335408929456680860541460711918899700085383001633412659717415996212721944592671531856501434923690757197003123626184712944753914950952753973612054256349166246875308369797865705109988616379595318173025114913652131502064940860545424654821415071374716707103682639142707679216884422711076668720954523238503180874470370055577041600605609824669136913577449172050164171010967202951459125679968270991957657464181703981519671657965196850545485426697101168498639678142891909089894902573735198972017568246334379478137453698729059935524104923582962542591251475075595723452162054853200131292024266107513338526280835779206051420173717917481809754003018821584420535737792548209594958067447832648886036416795819956819438660712129186206834074185380836425845384387667392813400105159513099626705489112936002700558660853049967193213109550156690215494642036374219346491382804552066700290982360859329866321380333211542243105385831346579571029069428084986196659524913858679246518603337692533381374934878807317351599290157286380633688615661142302049344700669688138960417851876221081489304517126765169590881082942474685693653042288172874373196547212375805528614857369087560059811722578175121546010577035601360425576438270391493463250569136130880435744783288524962384335390762675303291713507995202760325179340316594163124694666752007922730883692315392281660089297265943758643521063790571049995747000922118319857945869195127440115547347393132407007756969735817118264614501167591369936846321066304245420113605919030613783029768286222833863382937413124519983751320836139524123260549989969153255301303938672894957208531266091589083371402733625598856370385612614109618069800760731652260004551728284173097398170955117135616999152529728968275337406038668082644991174824341706656447416357452177463759082215744933920642500563781529249052357234810251436473092436576664457718415710028195973994251760843399722011108570743216185094374200351319528514250407834519137958690996811320002742912096692287817032511798837425184126308603235204392331088546389611523605629663325669010727709224325170083007142013548810581207450830187965580167364792709241976945382696630711611363977703300497878626020378173606728011436529190022842074652935633192697612482730564874287919583113594766407237612670531565087128771788403144332101706963887759927011282664740529548730520799708262168792681249578987514470211017478375835869168460945284499154149679370532737107899697876460217258873023042804528994350576526494561638210406034913387406146908569176865114197171283004455624458452566618182310271145686908190151166495773127580268529974262530849965836166860437054182173526174995526513457059279060937861629447263974577954313526968824761911975317776405934362833499680452138156398867321231430371709889032265141972322887877434695911817025429423209010153531387546962703441785738135773181113609426031194219720617788046789815298279375449749744406604447694543782161371439680962642900719325488820795751293445956597335356983081104663042933727311467567460338399775465999034321515878606286141215465067323377650884206492520292802130779417489664898146612832863700255195184566107219260252690603727373208271446806170950340675725595992869180388108220277312452845647873053429205870913705099148935301753550882318798498791375217515947669797601928122236244644651921900330440029562110448990137622940727463357461401439038510040477591698335795581475698766124906408833495348676374240949462552115509043951654006870915371059695229963674971109318318334392213532349836438776375658563354225792029121655466357247385862359216462492460095429536908112845565385415018747431607568124373880458247615139657265515273513442121575278403299805095256000237517848788228841252795665195573340176519422361535005891393159607851443056791269928083379710289359457671612146483347282819631831914071647753969238564336658136028036930307902331241347921790202915893106179317092483040552778282868693625230833491423338096345100266950540894684294535621522771340638090993008699089304583261582790532306453390085385940113348667775045578577961338322553252622757083731527405573728087481293927150233965203127553425710208085379379718599560118334754597348018924245273065592294389089284401779382321713111915829197587550291276053717875940048678275085238324973170232530894526243301022091239023650097798709509446682399125943894437797552913804497043361871260612024149880718909180688004223446484417019424068797908887682474942987222128031440796645887540639747955631327610726028997091074958982981396864096758614428889877978304463780016905537495022098093744876663434381868771559875626683728460845942532325085728413403933002444529248495653950537422284834581568554008399887677657420236768811539793962967703788667612702683667045603885527513207120992728968934155668699952777583937502773363694702417822947712565589664351382355550594920398270886117305907033286742360529916739147600567466097078232317318121370116852940156005382756347079457753749736530189772523309763042726740151669360699914270869036726439248782525844357190694012093702275133312806306625837903813931545505762770098252378372655941457035695564126561393807489434323588454531686957923310174470314692578678387574899322863031495814274347850089373630283858362814639967719901548454657903612402101822060001502835956832712898399838680608649299460866197754564350671887967322044303697053330992819741191685008528648568966181528102385836869885343968748392056547950858418471363265038017122274207887863272310639202431213611870981334247455112759599206517103299695142490456875397726601598783924556061446542698280465383591924079430374576944689994987374236424048287105889407212529606617085418164731244380767673280185513982121535113388088892224976709373603059080468900782036976805053444119620485971009097822158384792621171903613589298537025525322108819219166386609026980746830230302302875836354603986091904778356862187354902497093146182210298830340297107069907773497772818801595511231831109428529666516903481960180573845630448311816603150722846551376364757194861251297872062543205890946701900148498006501318581589396830980775096923086675155367393912074615250174641973930216137704743653162403329284419395989685759278719123936663307435894501507034283139937704760147425358098203035682630734019729192727150464138304606960584447074373648577611759658591316313236367145509661378985760798261862290406427028529943899072110738518012099402454007107268198053817631808382558649832468605536764515538314205297072995670948981647965355815320606364606455430001897403593839487772004096152759117173091576204806874574834057639627912991732599350466315774482141783832013357664779875702819779458046108954941768298573816309853572334661119332213225747742059904278816813395007304713290706435754982567949032264877985933361461531278242532325924137816839616952434178552847764687802096671389470821174762809237392347301092647519158173829132086747434681771485463476267645142110211845800124644846745421266822291879089025682893204199304884730887569096885464507392307070833243294513126016008955325215399341749638202864548671541640489455344764551122231975578315453732800222030293491085248156715543408741213549179962721092335737331299306267683633745599646820994059012184200245116356976621950611299795629838334298044538685425162674002808548902983962725494040110671365469393101176228314252693435160358568149591242387598213577860068671104439228915540513487819569781479662370732495312014386100603318264083362611903010316169919976307111030315763586628632961429428188009539943235592705511544685097004928766890621802687358959994160949258776142295634607430632196473364416910979539026605044514891091067580338633791621341833946025570219190716890380127512139123646605953928867871025663368910499781454479098769371070589223966617273939834386768750817272725801467063967807087941624424084193670310394304585324736178315745709797476460252603186871911970056750328314083547565548727774687772361745748416984723493035442582209574262221257322938045691105220074546817672836967590031909142940949968548496535277758244712587419962290026229890935344925116618109984775975532912522353154629491494009887565719147167999608126302236476366601464564281158150201150857815328807306146475509910265609174554523540953163797167531664491480781481510569858392641037641549415621752881206281949832556043260866864864533048845756900960543128636519057966610715701768892923575309628347800490469874528561073722369490957549512698280279680958444551444826618500516629814230767081260530524141059579282977964227082420286885922793442188138269487887938638556692290520448523699237157395786232075708888480566223056943718576798468421587624064369789849865496175640114994094936588976067941093137184130013267270173319529172315063801458584296569856441616320784365784442194271421321358336280754017471215244094427236069547717670249462736934571368965485938957404280800740821585477786529997830023510919746941324891741414696056357979384395177214049571456597576523945659805763040311499659907772779519299302841162746459966077917993523554960007541618405765981470998811005820805749020292079257413354199446308896306607655416475929016228634172729668404650934053379105712031075443091119280546889339831749781579522809913400475940206492343264159574904450676097567702388800870560832681570733885472927656215348264610288699557121887670915354007118881788225173402236325271200320678524415616900572661297757502861461205586240131762142358526368188424000387013190449876711540781979974916290008747512822042897428163365801777679329937864740517241789330986127881246136036759596912145779380352245866998209444037809504854728278729810481878456610929968805382861045118022420153593392673359496081365303046546713744870861164897169620934708087034014102092930376458554829686836662310722420746684380604119131179351166177021379929177317878105751298961676321242512761104175689179369384919161984767828789763252987489373160508145619077923605476242555404535274153292603573274942316051021467326777181861211961879947758384773648658474050473399415638691188203697528659059287826542351129544785844819265494823749203861668142941669320498895712031156595882315328585525318922250904143709130596139505409986444530352910083782311320782990712716429861617674983248079875274006479357323763894253543845572842298873235630659694583584818149191441701524524778575868248217965270503282738698734183691469099087607990060304116264606558992005543263013282710857008531610766403612577052688221404397873804340299465197068737064908126336655194941796175214780245018390434704070465308733501050912797648290548417294238195672145207966788030448893276297359379505726592165210860424979699823224850903809768454446573829400280278870986691168938499763008709269878040538602665373175107841371112739323110414656734102778755868678258411007222626748828329730869231131859756721824860737315187424985771685307912140559826249023047401131063816179032712566350890199846266442745051958097142718463939284922080309392712439676312391265189069832961377256537885167108181307525912361760220227078089428191449726462905881940986833632259629956404473156328436647738878760391609302373817062518700166564942838780171728493678336455179141731379611990897155436870700826351665931985673163874735125677494428611454056385578199844370729471430733176542839227834577737404937377336246517670127427402262975166744696093860031932740145402049592286709477285398052370014810862334669184277862972719274149607653490472133994951415309577718179505354225166469393355706541080220461119874209877051169431708097961289467184065040056879731439196137734711965477568767887009322839872870377097847652794208579423926721693454568466415010314732179946626312695487223850659497622892625675973410488505182439951350428527590470335962781461275383146239796370605978032223729697342028288475995659572836052642472288890286018221860445809976803825565351489804342865529174674484763526930398507366241940561325433579877004431655726785410038672444465057457746451222518029524112054446886020893778602227801193673258995335796358638978510228422918238024919676721290729124584973428432412188738155369888648663951962496226488953925615210467354387152614638280317156237525920529353401758284849768206921239237131594144769797141820699465223424588233973105610588645332364399612415634551347131835954568005465449039582995766829814629265770614314988999531205404526993636487309214974927776870531192863294555104845867183648138924151091664724552060081377223202219655144108000629034026266427998208780988764639328679690429410324955481067646127944122459450687222132142199094993678585831164720091100134883135564422691017880057052625223084746545078480085570991579105372238467127875102932660344725676088623038118660772861410018209564899022155185086979165215946478814539563940426891696067394106612738392993410457966179755971836215345003177772945955230057726150087465409935925728744921729777246274721782558439058649676749240611742892162733675047415523549103325233514109263612474022743245476718749401394755265464132738967415751238503274203867994419866890746707216181134151711975134909052410117181326724521722802753900892293833742835367744453957149601302710953281286833476233775973495582144712183798201174617501347071770880045174133154968263044886006509897237199950482163700370983897023558146733212034117829616824179039779627778978570690489076725356954941023313589031935162312119797930989118342566302902085617792653324989574651040506134464674406182307456420309932454360211609339866627797051294223017498858897373069082085643974079576096202066176015658780353560253931076025573664785173744265076429960930029196606336971084956966909252452845305033705923096930194703648814380212996262285463412617391606996309285835938235307353166352566127132183837495853215213398804081500548499266977839742370092118615607773206294016986097347928992479378636333037886911526938135821402517865725491311156267015054243800695632930789995099619624301766226425992689403249856572601278846001165181026271704596594123188840023212401555869651808162399908702738182405477645349064573796991150228115167209800288151815852825615208746600123277438589458000429498922431669914103450144240296316417206871582782017088251444503860977849320825122628545936962730159986476724631402375536909496049087251953677333749469118637724401639158991134335366639872431200188417952325881691084538059596989018334119621842639593651720407333577924193319226927647770300502625100784544127996004144383035231844734012461294868072871768835947015005450716804393501577900024505110836738665204042631528109604962849111250163444531387423532279714848743711138553730955529185090799621380791801921296302816575533853416365787097850418504691992220444600802874144760044579224581385527416911509026947405256728145293583432116815609518292730817096841825647928085260865654105369884237349164207654702441382106507748665881421644221862815687530659105297279771087463809210958127799721937616267298170414204890274040430173859245960334542346638072747553640888943639741881840058327559560512483033846658133456413122242255776686343281831381770018743048946863145123450161236899690474093518887154083760424283111906014299516719923280191817018817884149866218892155170290756954394003777371293417614818972576329060681898416245621998332738034814561635606873143016288340905496758311745866856088066103719046856555533753846177621164971367413218559410208756711223928015526184595345806002200586262512833508552884852695656673729244352162628522226390139223500429059223582874908092180900428329526322377883507071280337547869808818643314941675989654491709313605030936265534762912956610039679494232201004328494148220618881123005634576369585697480982213328507934855398530392455744081101561539711577238691200449296050260413435234349603709084032428417348954811433754536508588226412885375708845934495348482031254499338279511783324295377899523281267651037465344509929878182604668637102539287281162751104303095648354546487213085854328581519597300055818987099352548678138765914616296155833370075081198604044773444436088372804952518489009552562512744389427843809774162911630071104272401691813557651032563450502596410143584563450118021037647144852356053850952456028899600197776444224018012205935469897515244473359806417655617454056244701201093712751771111682635592090995993675561112597584062222075213183321857167578494666576182424576129884576534080215061239276631509431217653203428430309499474654456198527033430411537607805259381946531093928706963621914610243113247397872412135463596471076133593703387975957602040532538821413263058187569528702247695762601633996178967279118232995529312755292877117928697196245791545762313373386547888966626147219234114006710515072293070755748177102316930596188620890139745005720753046627624810523185995871443989755866435905420946951662095860835992507311459352232803024336495073805279377040997473176508554984175405786364909324114555991087551662262130441239233494922794918923150061079747016034056053800982847760629407036723199570225885589859056277977940836296455652829789783858834099876704399081534437870090406156539502606535232109022748403141564500618688215641027208349870208289392338430476095398260792879838162068626636847489352399009278295719155954899627969337909959978836283207332238089723620509722957903425049554085842059720348646831928582526783252856795541280546068698064555157189127484412627046129018531928628558997929404680142804993319509688382911153520020321891396193155243888590095865357779276561460715436025489648596428550675344110008721813421469121321059110917344745645085460701583695681647690149635825373955354561537962993821487960631234209008477234584023148691100264579965879662631646854816042215114275236480982307675275434805588278639107131398584602484347678259526366557209805004179375059385576677650880219649966394065324144747199647598221452707927566859452447608854083484243808310193495874767692005351725938842460657658348349377206570895219598542629682905224623788762133305185823297960646233903937932163892420930294893490955163794339688532408719437101105181245362196857820188098663943288337184784609673829390615932003286822251818288488748037157875971021543106033497034694937000752330330401263252558728532264874821564349037850683725028877609273296437607088975788293865793847786245868756887398457589781528236632513298824264926318009656503921542762896608291507258165158271697561060390416384070617995121080001037969357365898566911533983156431129347895638049927418964654282061189755689894076735284574135044242027897433640152811536970968296405242579156772472505839216912458597876053841247046692460200783546818433496546523427850243375220349744934728443649439139696509648271479477771137377771745448385910116826629125834629310881314526582069620684121903680192244754294362055115312026962723112465740524805030553837601647749866470069850884960306392449375627978422640385720124092838541608059087221061411522344129142731919799167422299983466781216996585311354753585313815389985468606709059497420964772305738263197554841475588136108008090814851033920666533548012073440032556524879760520743369127928572908757976025478219403559597479422698721311731564711537105509516663786614941153616250641981635784170383436030607128642128468950103581023982195541646335810079879224916699255964947948489820848865254143148158983953435865226398221649320785510685642081646924730096678861089296322285215631752624441514056851362585202945793326389428655921630686893317161387596892135777553796552163978276699877918753168604339453640394131333828115007749619379312906161755538508016152131108354947210406475910118000105048003202871851451700939927889577684410362380628547168973096278700986338390531223795537874353357962798775776160105330598066727892884889177507578314145614017987498494464885805137977166322080608708264357385521323915794962818096769779911883650288062370573387711537653382702918151007031432290146993812486928837629724229061092807530790944776125386655829620835925724137344201336681352990355293654050311022364259553169062529666761099383211594423344199301357471407094756847235287888586506185673677832701219438061689127403342116945935407581237040256606674760303917085070944945202581440669515556732467463110911931143531294596693138179389613782425154758705551224657392472948402184215150899341333413465264078233165584320965706244887921421388030735586520381906678748455446403486175597141814281153534622283430679038376058272495813966945712662134246823951709610096594714878352541542240849393236905812328479097884067391099247127589078857932846909056875971201112001919366571193634440862525593013207087288196380754640000212111135480083848657403352530390607401726753311894321062264761021787145527616133668771069102873161867930928245656844638461555586282562018167322283339780371146277279187781649046984742627704857605651105264215706994268925639565473089088571837824079190188129397857370052486900500984329756070797358704370238564911619465365930938745402298959946253860973941761413078702767274430071965668566621744075449553960326200783217284586666710693546752742963056826343870559010122232889111558961967631058661277740967350304515237584624749719335612304605043372383483168504996440449790106238238823592764301595439510069848909776816940695126169636380220709821851069221187145919211303000258422128241605350676517153802353977678041542739090652316677448521037841117442619577903252788327183775107794355140320713037149943324076605221333992849173746973892532076100397257321271526575443263988916676334081256869121812887970598328283770159324848935031273254947734875765328740179418141402158192850032389167257746827886654642881948248116685983398562384403558717255084915449577275797142042488066444092340982068964644289118675370072608465798033383803966096232430979478447506910601315417936294013995904908415186644108571072109723696905953000846684994349157096910714853759862678725891445656921766120307218124262376521967743593527901929329954200476273393328512918815184106353406613256396127494761613725862169884234775443472490591231136059933438965237896406206586886885592146600490456622812211846339654470614693283937447405109391691994371874659527057492947096250988307194281753558792249376418273606069149658273807367067588827158854371885214664922620330905895907991497783613076721078785916295754418313137260372402131985857553484511485961740335840957940932718104481681127517491729835818970533292307110801374120817595583911198629692411507983795672136660347773014624521620482023932354271099212225412948329353705798186395409723615867257366475820042275691565592992298004534071382166683240843981629650591021873483033184458656710033715975109318806429694521768207967928938459100355650723474220836450900995231176569162747104883681612229566148048843510862387961209798907816924941617186692969070734329141493364537062031897214705110354567690034928897417431026801377554957555567650308627428785672345832663334703207655933138840049288941906471314222737948875928869767752588694327736192830388474547390104750728530716423893119698418505764893530512274061177188985382433042925904361083619771370925236240246728143311811404362131763149720317456797007212322372413294496728667426425365233872986498624248907068596356741777467860386623835763180740004144041144260697894690061704170015216711360479985492261883377278004048194986132829798422383761470303029149572423171595391768478201676115874368123000870097705296018035399129957014412094301850321453580198015455744513306578788966713683622289310816032343528658231257985626206768935322585042780493545317730811254082249861995534415389219479304612058766960058627989027335263778359578232909494224642828859438563361597653958180632806084664521020954060306316835626933851892670584524579319592972818020055417185957491871123381166683304952545115174110035280525390164578017311894024720145163176716876208180286286087750753465243188145186761402319102584680514658249863564686724158822754987439141836888186492122180848096937208397727023846350934170813215187827740402485447748319104304818652787434074110104811444079590557508221761133707623411046734484601299392657726426010662781626714065321078579789848107625298743454927731257445308502770742463121724967022038238231254757202281962358536682542826671550404861912571530518614129540798329326117729756512686629278695662548558950285190244670853190576479430660763735277878336028381355943808784620153249879137722204954722171053495139544941678320691164402881779584459401826920326175077183111198353067506663625415902135508113200710957211224003578894666941239346399354200535887993618622608099756681071744015422026886179935864081357865722052949647637000025282627976877116074495465839115427713267340891466814838687475849758543402486176412604478607665581828771283689366804008339492169371956592829668701656935399153308123271223240527662490883788862406777558186505038681070003089744054842117621845646708291720948708006702673219383896618858819209189458326827669590760168169924496159193921817455347855265869261101982368395005739974589863933166790294357551871504259073828638073777448697377727485324172706170332778423066246817841048014268854112382550063009215446661350973747283993328731971508746026903861861229389071243418064432850519580352197023588873574094582136377160278126511298512510894995707699810519586936648657592810252661131843826031922880523202598382564567459536256708265565468834071364983404948598712437798388907864312637331752720912494206416395897101817933411053841149513436225502023792322214956404165095002418497184794898144535884428128405868473108839941296896987428359519668381552732829455394832348189095592419556293110866475465279456342155054492342212970953608432494663508561902203367090986764348611729547709865115370312764604248777463520523636749450794358507184340448111642578868389290969192378296894654818689721399666531771195615756675991024491708960348156322196520940704691320461931296467918798468177855687982020490956788665369989912660424145577846844913805286253203118599358543217867662795327997709800275626734566679139887140477892548280103021799760759715999647069180243434502366597934425838820997792409878173537995670921787597540473293742674171753353063708272390453553886649818464933447749325794181853676104751269329482727737981575122831822470861046660298005351267335021370650098642485196083934960477133810742195175045744642503438948805484280343272301512093292397526020132156445027329471189122139322756632001056665267554204997276709832522666738623913632784880709315697944654337415752148811101713169181123945939735384296789368695392633967004775892216120764327652701507132805051571616567082477625300759853517782957946263371000707011491112430973022412353558829333664323376806508401615393988134744543371201194655901239146334316186418395348803975070475563333171870599373338905612081625966946585404924165980269866993594215405489124573076620667320676870904727175375811524268070734868887873446220916995102564387739601030295005012601322786471538953237928855368729166040674812444971409523537392323447458200884297403701400331983793864261135431261007515029469527360840900513412263082505691139978908155894860956362545645492043491284983841258456241946487293883252855944571313098554605198020306701676297050896871251888095046168963225588016616361344432007313118778621828395142114954446062635253762681795576589692148877013172300423922443291167542810708138616846305438857732501671408502373162569719970952763769338804209438313434694568788081339621666705572242195113369874427143033509878369525110547096950102409803901358271749226352894219133781435114527107361856927155965444947101291001580689379811142525024507461323616855918906661017448950869868123233564657062687017770533451989796093919297074041991086557351850444456243005506714631443125104111403405349482044562474215577280374836722422259638610247994675803201379458747622881080016420440523006837790860894114298939854520218728645124240368011447553907531038824375201490403226830512450780569813809209337061759230834092993878829219231573293619913359707019342502958219608093242371757758163457759619363998342829706806448813736541269145577603949424619333095711387587400658128665529806498612819592962789609344980126459990180518674844439732421220623883659857365316338938336025679866582218035197574589377453833985588954286806932308209543755809203182143452529732558474813657443481241431855861216971591658853412204654419641418329803622022813063954306892421916816126361866984509929847596710350943397739244792783185795573110105666528042217870715491189847148117525063639733998418783752029025877815606567501140263595429301102436408154040061523262846595457498438716108772768455719942354953500767985071493186311202481754429079746225253349659197505161261081870107546457856041528409701324787876015320126855013769040945133659387752197494990382040323213738645996430031463690674590026756662204114378640824985466911999785423949031567588222539741562755291666612890011046237733419155470720888617549107565900440555228218955093779797093837537431404007090332578792344835530245806084368671031238487079403970700782588808651590099273197635381658878628889299791972243625794217251992327565810382044687839702794649697678176638076622594140599786706969932637112821961478442442183485483651366535898338658422418536112192731332391004827351094856891929896950323882979647056981380615952982352334155374984253749810388910255809055273651290921721123490893373967561189238214608656900557955598280920082244943954465711960492346692928261030233195142523836204838620135523850157170472546957010424168234298492132566138690241973720158096650599068994806148415429480944656913996483737636341820909338516346633974223528968820117404196804231625320914764938902098865750789349151241780243594199624561372892839226428209540732095905118030772461228009193837819592139251146220178707307784660234581194803152376749501787225981914854198370333095585138321789006951378760321973194419982711887190861666797368204398126156985611741278509792731972608017338693900584098647858272658218942791524284268624736817709552815359380783233275254167491987718188245887676407218227861554280604536977431461543818727998357019041910188552869292725411832449437810094938848583320268800518698486884577210375752120527347393913675490650017054425171198589132458942221687774795762668741792182675159691859367492299651962877386597250866382563724348889464469887306228988167125473063343363964660291951438064995178351329221073193616106079675266943014905825494326672634234659625238184863441518731876805670719447154331058004720129193087748907214185103973969877196130784048215262444615673937948811666494822409784527027869633191637669743881733751725272784560326290419024426182451417888873482388990334822220177975973197911796157706543918351198668399278382045905447149036301251815928428571101854963143338754684657255333507464956248374008264871049702557790784260430629734844051618387191343590635074207111810603502412254884120907437376385243315135759233103712851184651976641441304717044423306289884160926204915715268039071464323960079181970896086935146788332822183491264468893641519680403445314620482990166923207459716578164214308089795523828597968680739733072501904641672779698981001180792530081865108198105731282514123652142066033743367101099888507793808267888486739844254032488226709192138007185975676707794430574319123892457882804948458343461064786589407676658479177357279559638915577722816279449523206048153980912392479173030070981723635243774680232215672607609678642614639290683469180033928079190104518969953498138728048305804336675540235461620119085687312329467122758517627772412989662150198824960540395644442316292101028272490686696442582235134564738137494655240518124112852185417954580995708457758004538244996803540528759631780374494223864790820884949616583076809786908698220601127568554133560297987928302541585255258587111887954951580774148111243201640010846779130179712463277096866068671090073394581621250018654117987809283751993734552381452731388347725569106878536144623825514002977454473022605506274474417969084414608318536878407282353402662557395440595236728742777052839382740852545904257118336423601920853175528973022772732242055827792703501050409049697775341124010076926838061533274688032017359100550829264665889116249989087016579787559030214332357666828681144024417419281110393456878340273623875346674312310240963936856570048073752322285286516662209387725731022612954549373744171269049380057578852503529731857770519161156584732508024785047624249539998977709610901517918481723806052579420742054925272917073560761243356264008749136077787913157850910563140478798129300526247504670651629061164056507988897598472564036150329001494698314196492927033570185342278818252219222475593204843234320293578195019005915233039040386731951361354246108245428236872437266825357321383868987495134060276234861085272861046569277545238589807999738262064319518422208499112087600747092675211694205018255005318775002469182204210686981854783017659277811889456917041413027965801047791892710892857826570602278915224342267298055925875503422584307865075785866467785328507418258448091353297956320099852749385587766235958466814738843774453364252519646674952608370817799327715741846403501375675902771982842626788345493766051872094339752020493626269417466966662755177612023919981321033990889581889439560740489317599662752209265789271406103050808481293793731948019328185419618675650893525040711791177524666378312369391985862681982487791891216487557202337995928128221392750712877924411259440724666450645595165933528095098666938652198617176580694649431958413982512539713727692314513527506867499543125601135439730332174841143006396662999109037671346655496935575094463949300725708283726658946420280523616345101569512754282781741792803529223464091988962961007534092049116377833013637918690317981596325911682657860871795930093498810974227956685660255222014792364987072404461156129298215042032231504792468840939213240849606038888129569010165718499770432767256677409322538120858187178612441448927553903114336922114201277349674238422294925855017831107497015549299340061137877955779094365881324428050018667012872472751903618696398363961130755185297344646622930895571052815619979955818314225581598925641823796740138989486019872194376583689775196154542762262389949773719379825087857504060451776181975581469058749928466874108541398060299970598788929397477197736442319916504076848074293268661882421533031675931686291711316812389802412678029079261960087108721569047459035378209551195612931813245386894599793068254128449740399041233526319936740824058245516426240305033183475427913022710988108558000116994114275536644696248885704669832488596219887164989351559854231877756105701521684022367444548160838112546250361799514865579923510211493493495582490753567075606276214738385687555447853029668008412995275026730704728313747369078930022684600766069661094516182773188087552115121432827497991812894411376756907346004747534657132959412329125694470133937495908339174735439965194071639081617777389515163957975265910897811184607858297989938949088402715048339516767948809700789955244839239778243189198267269080614662582259899066008364963716023156965744479297136516118432923220899612127213283403591766972772321142238326665149105104873641240442003642973581331837279478079374273382372366721295671797856751715381194487885370455054818462039870823639253455497007364517427122512933183879073685164955416558886440771752528112098228836324601676423949426470777911244401442867800746074957633024805525658534078879207772563840677784615332208567515605360740884889852423959015490982773072340586901988184180314864607473216965527110211593587428732174401062617271353575261408968468429862188987841806730650326527247327781813393861063014107439153005761340235895673049714489764393662827778074972896878134096537059626113511067798413280494911696331635132686483491518746662801282929707727422139099923097018144543900469754195684422447612941861145112004510507666448520713864355694846197872911590580289708622477026723598581088949994472299810627257906118363094305320560322365982861529632596869653681599006641080155406864917809869449052911974177724253743163342950592439958340864838007914336536140535853202398098279577707402282516750558538984624945593320157238532914790007206165937246694006547274366249216684133287594715104796960202033577477600198830391004970288072707741216402956858175356477439525373370198531848560839722355366074533600290864508157620548999792854116097604103838427445083579244476336349189522740248314380370556575134965483218615645228830364670577838686488828645437343251278050394419117807399455286989996463000532339360174375145877630124686252404382340919085238763581415888959826345014060545305768859298317167035822298282749945880761564228432744785706799377337750176650273728431355104627360764400103228156956401303322422039137531402381862820616245599743665274230587026627620886488368780875741704489433751572434347644188752508669383257007040993339102562380473024560784078555667756994896956571624205789605969054470614184812761972531151628545905517335480974558444954412502699367012645215598060453747636389195134693547580167934645749249197444706452405495883552467106030084671217733245385412279397606108747291931915981189296511549187172163855151944376717580182868666067274162695060679281790550109031556848265976901445996786338375685987218557773393986209765967769065245517467316903427881996168160673589367646863151493834993993082170506225476399934399708461743188469259177845633729847871579827906765362990189649191743097179691694129526824890979290233435134027332524218636393069664949464683669032307580313569610881872581638113646373251641311448250235092198771878304730411207118554895705325149499039013937471791241614712277669194482891322984509965396835188575246750292221639027132230243475628805094004061314066249915472999113426030527813041259265650477988491525280691277090568973236657375389496568018345168337131032649889013693699408530109832876386104589979268682977437411507598363915396934824113566915424103488318299101393436137465429694093350407663582148751971219668187614817426671131070047058622060480165902260121947191278938982337239725148953853066972117609760182515590752124331253290501660250198043151921184796800935853574328517001513551567358513666495845625317634059532291626862865020384560866314437556768997441901275169169101881267648199280514059093220934064020216169567725869075264582865178929701305085858241317901773605887335907146120935428796485392881879697131650908648353268262525260835289533740576311174584382760184253906125739029424133713844349607124765664853333736203380526784991720391978178925875440008512492082463668870948951074202089425989619161552656941846489284231476821107596465292617580722089860582249964114991027301443607538178567529436528819118184688402806372921134447877454320047796600146636956102284432713090958911014379370604508828958361400970560579407964109069803996340251253167472421415185636186587480375639712648698664459189867215424729356208413600832938682026061856379290648256576248711745265959755581391764927524843687117688488282891539811199467827394936198013569004554398256762527651110602565698873484006322001716511373670886146606587191592697759423249089339540231784121467314511701448304814919116814403223650290400802718652779374288013264445194874615991210674331247628432103984046771336422613777382159048714024109421872359671774173911751000737348492432353346038371538382086927227217267540062579094684294554840488534528962431514085498500757222536447763626964008571316173491959104195510038540032461036517309271418669658871878139576924186896268118507484265124087757977651884397825949830680871390202275872828858301591764893866448208371176032432691905979806305559567006954091677115504425196218650998840395047416492239271295726663900211706699392630374973243259739807878876132739337485492974898635633661076408014440159518128151678438063639189084980152347083129861746583346717617145241328114461005451545029915326824021197009830246568234170562160534375995779101615671934743843148874492386988644375535148202975028510861540206293188982388062605537563432730282685853638129345672928219917229697510896709705197129419655486962692571788448942085151163076805988872552759151087376889602457508384061648814651234492501114622823694988943165092117512440686364346728725452550788890419751499587837600597276780447904065469730394083809154883373490098221018957032292372763699399364711127095686451784948846578920256407422499642045619661949499563203535477799917390881655154425877974188206530327452945706122241367033763132939733086347059534149057973472317510268137256261577290480224260088243296620713997949744087416489610834429449376325307981698443115454130943440083300305821503159316281114758056588340180468761055435780125623664633750100414607213736015129766178674914753722596416509699424702649540015476569932355044792075397685507084223400667595807368118130826183308956010517206415473786882655029042741452810960402748922076434384463267801052108090398472414001325969640127870956174526779876878114241719261694778879751403998802493130975043798163408251808363410388768855645305088176087616182513561969958511785927487359921113546076381206866569143226324004240225026663518693610003404858476750825125390243726507831182460328320776480505362445079981484349372073370328739222088963995055840019280983737959611380192605255430670656778842225726658073443180499565663724016751318490034360275613292162786394213289850052060570729410802704199679434115365034823568153992200254943573893097532569080707723675658755625032980731175429668699761957831531053103480280362197246416733996908363100920386346174174141259981303217007897296744307501630025063938128880933463498369928396478773199250699317269557968176397767136366276387195341399671884121021724976566314848952154633097255055218047648462715734581811707116163808875092222098923205141923776183645548031882000974602229255667124828648737063750537915849744099524652257285869240066677138361879285190392151512811575682984962357144587856694585186314160050963504934795962426456262015627462313317699644425635230604177622901689461006295927972847624602010576268694749054313982153746093481346313322423002924399839637722005474027244780008681043238328416878462396552214628650219602297068949579636389623143734305987547255551296840586719686119143562223071950054322140595509988285211832367014307647727329865800035258827506766621327500795921623969650197743402650917669532723229988751165064099645730223324339648016687617409230840934132547354289212587193325377705976295340469622852802037280388544863901463658817493844290269226004652108076014436176547249300524467370055312990857765836385399618692689040579546307895888988775951700757135960098791940984498308948074642393544070805208839843926636556254843491014725543272323180624370708509882358956061014209213944288830470272701365516462844604353395922059691022498552005537948462818220893963038819068506080774851361220722942206845812706480529737629116386144288666778687483263056513221353538899173232521918286848315136058641763047223026258340522603876991444369123383652128425478791113445196378032610616259758843838858196801980907119751511244633252596828155475762019957270705903012051209075412506417684962976788401219427338338127124720706396407310441888788113987285674295778054677575349213523203409370986986681302848105983141516667086121492031700778789242425170036689050707760578311013328152964463265356449801682549839249063263155562749983644099906756168970219605155756750602699036208369851329176504569406695295835508090674486128796756782163553249634667095159154631157047179277655250198104268074637407324623161430408858466974923601996510676846723300842482181609659530772657924465635407517427817968324922586851808012259400836331134678806434171289128041233897708912521198540900842435148574971219566455169869761572573694921031714778227395750655388705918314827065656367452785672712090203576592266201724253287296630479219926666824726454163070936359742824906798079687681753248758030798773594660449064460145594630133521867922651807881024231232669967918351898127282260917692493854747741990821875352880061359520303937194433887867208089048570559588423934178311059287626763886951444108110475421785221093622827679650188108079148172892237398319499541167749973369158344209686144854395379495057694945957573798450942490885755456102655159066281825229034685597571771503156024749408335055340719452274153059828115549211021474785727864106605159568324798206533774047904191149052484694831137344703937453845954291438769546125537851250134033142446916433704003446756199848625464903533322667895305050045331740502099905946282233580830964965497621228370094072807221959734033545739006350882155430266749309051221895511824554258570887142325091741774905657714253877199907171198988187150612077746024144700900942022491215846709869762631457449273106162103499235783912622208968060124452126944018246734916337589207873254850145287119046448418320940382240110874857259231731415139508655085414414306565934701469332890346944440526037333835451073817385554646920057302697872134906708598089816544073070900909387227850665722333001961488966983370949688247600061873724995923892662602739081518165689263925098412435801567086582928685287476575599420566923692708047758800582030315791910543354098947299620383337686363126469558654446904966533174151037776840500810107618363902390439705200034790530148720434583935757438793615355038069621451590129120584244548606629769604646388125248393190347892466293638914858579123800085855213570632887771445421554415837692734669029829296768897224848714422067396391761175426089635044336724737693304870867683766273995508901672704545072192786208074285971517483831318660859235534874200293412379467053961468708121698915736704524722475204702167107867518648165119980546117710359395296291948721315595531797652445895762849367362670734166183813028395338064419645981051975545982924933461938479912248032856015904803669159348580505867537999243422710700277678354096911824913249321467329109097731909608111214196620540301836138668539360114086876050366713239824279670196569959948707133925574364120170247118802233237687121195965410741321690463820778779286007017660256688934312928835607291443145614984880124796602998903492013230198097522558243460798847076749808748537286257637476868459160601992739863443177263293184994345206326706905061545596981537796161974835767669495472157547010195018002718032842011872167697394449775821259216021616592327125330636145200390741956104746909355617848735190105508749041803047557385958505983377492687730740019752120537148880106794173358380207109278570269522830025389190219058673557736911463284398135339503480590510483121183636557575530137766610376471820300228871952599120829901855997500848279527616935380674063535490259046211773561719886622883675436937116353289595395530213049055673545948494865629399009823067560957000687095232625106791495455222734229315202956079181622969078147675706108619244430841228963554961886508309306038090044374881810052631393387558875111721209109173011375167548637083406409131836670467914962489901538071224260194096273593004230761277978229293429260039540779556285631126757698909775859418662063291423036963620443201423585769847425827698504909792593294250849916048985637352799166939997437818051102647472347599781998225312943468362743900687210451341577125092762373471617030603634801239238005726441381445493232151497986467785813835805485128825591492548496897965187543792442958333229046210976343594786048744760244837801458536065801756546333430980315081921626039288920627075504470068086362732933332922637164714106906619680541762584265755379426969789411624010321329426924898826159459903707438452640690466483616486354063219097373579840456481837140536020499197294515795952646439334420416525594932657238170160206440486929455862044536524120811285139034245729426661458421066793568280628267350077260190732122527946583579438219440835244387102007054281044942991230072036489912988408061269481768269922648711228995107428315059836869456521300428697880544861038122130919943096473803186457896189858617942725691888622788758181213008479194520985829124705944353919721711599915402624535144765911700624784484865815938284664231722388584057411390989310619365545767492065110459212156797289884628336848314911554455011023850419884246765460533223429259187853356835661489003096708510630977821683009354977557398585337322709952531407609286375454997355777659669679443005767023209648933600186866542554575490092965009997220393382946383662032480879809244450057889172596404988490143744112872742480446876268059138003894714078794605989980007897209077729531638247988630899485549798703025117384246631203856868336561500200812020972268959721762974414798648033212675567880876328281536536803015420058375305944498380105936125684179620832865992485002994615920496091660838252744647577688797203391989216938318588568972514416505608387122658052567792243757697464331414862281173954496199001243049795444867218199734059387107161662842572752115121340582090476229674712042376988713051199457133040633595158081029433311731832622897506962954469284308254776298845810246624918756717983790945201947236607106704126642443361445661724891518731063442147480287551582071508462369253671084753407214881628999423310015187730313461875633067289797877678678555757281115304468023371435393559261661475429523761990719132206998260980689147261599062940564718536570937489760068429261793990506143874007900303749515787086934717025440062587825504643920074585851413996687532912644266477495286250261067246287289172400790773134684076169773087034689198905600061492728557121941209768854028624006997624168313505722688989984177611495728424036066276198616408510299853785720011237088439598338400741345855780667181037824921537061341330366113862461686990729007147271641766353428853661675434751336244583943572052162161245140285370197562565542328179977270415541302788189518158961697020740957328182408755322753424250987263014775179280563934390603050241653246995281375882855587222459806191127702980024939553152360049399965825862064488952307376797243161608367281712846845617554055733851290917400071486739905116002405110728101129172081323703954674197055741186330362440463088421053806229620361898232695623547415061656146386418013778688232679355317992689848534544107230652163468489472226667507376671118288822997912979517350139050031013549285313468923931781720051407486671021625363561806795795797301944186010915791573889471922928289344038709558591905008908249709619682174871298997109367969133776152777838991800735605114642876354173897325628665757600835162393572256539844173760174367984759193959535341011918038695784602316883527020673784396725788720821527851680570633621978597850879777048701590381977001736964724118061206550926057885229022604300638501625380824093247220841344394933475631026359626707821442929600642213552385679230536048806653197269645988260545173554350883166883736930257937110748375370282049892114050960426334461656033539787542493462085784307269978836039653390161772001463671745785249098171244300724438083457973326444542882978253726084783693642052937981076239060727913699786608217200331475230526719654351581679521916224118007488718915768119453454360006870474259520270541107532029565809578600615759881464446670643369561900821515684083266250265014647845192125866214676029339763982775012496784406940220778932622406564054789095721731745145292691711485297555440324614901431776059740045281880589793510711803250308087108311641528504596288784293167548026098616212796476722519613090842792235039116885609868909964823427251391835636369950932347598977989227845261963535083705001463008247959551685739200331820954713587331474069291400614536887939074415427506325642305764074813104659640585775899920386708872470278308695520427795442570257569748960585988100853261266501817740509945455080465396604362428828178370633608318242131974980699200086472025142491390874554523860568783406106588989624983122493873581126297951631681973402107810534420687160441472234675731300592353399641975150831961926468571861961701517526265330814814636003127327905671728128863034330826671066128285744788473293263151251313174302306589536013664876648428060146143432013338921548680646331914626525800567337023317298395470043365523663815988997179893658667753139382440336352369502873681482907365623950462236749313476849427647571616092199881921089326811743885207426288977283370838800010259871635188608429792329153032974309161679585936244231207467660217223659030606805125830672267539533370488599056027374295599727283042519028416883105848955831332182768459112775634062230587986748607710621367842751899709610286265408947901428371899303762515053524164822617662434801584532105387596359134165244512198760256820567725237500141300720027065755868980208598205178265143205422638005595856358531208134588212884091668302454637225566268159226819663974647255673691871883687506373526257873837517090574949086219815754318203416254609386113538685318214782279855901707030222022237930596597154305669264735751050458340022879004399239020687859843780839193581052076315439104340553049719638768545097436660704296345432554832497896911953451559453066650276098509443206579374703991990917224949027611192705446206122080039910894933733581827747458254341169986204985303385811765333157127299377286584560131274447240127880990279849219492426120536156598859227183824972348434408851755022033210589911370907692810809956344900406331304447660308351022565708731125862431907606629961365768180121902699652787617324193645883704646389295049557316334829416087619997410391574049391430872669258351146572890716211348616696158701784689112586592669798063025483062375277922287086964849494794343735414494609081344927628360419850655672573275448504420857505478067972390327509236848976821973379798943048087533234121729582891872053533570672559787596676942878496492219294573597667380431074013685856110225424867027748187086464992121781536489355830550399476035841494095366588025129111480962874100157369233585836224028837897859114123105100653997175868535168096599434918684084878192487501857214025409715387168070786164493697859227486385587490757185049116620733326479893396220690686608784916596384000117487531800204681893408740241924656741202114179912803205159677960147108001755422868267172534180475017441272768892983837659134482121610495945312198178394233161561516303056391606265467689795875365252969490376406120585352557839011516689306871090248949481656284013531241648490307792670718612423505738121241047297376616973942468105044108295363160998038984792726992424626515154207491484655398645197716568395962033829000444266933211907362045163894989981942111291349090937120561522753043155308536817020707998032995742707918237637086260517693047429913215881246136964930386025314056080053750731748062353874630490427164949497109656887566692918180839612618603665452494422346500813086434629335228254719365557474105165263723821961728861602924350855733911995688351317034604764991346753179936869163574713962637953799714145141727804312971135395423817842805821151779926586612865197666170039732075435445971784758511090465169598925997425558674475811821194952099821908064705701930953019935298150022591882890448870731584410289700435509701547751461962240293137580057508246584366475450846405240211410999727202229671936733929643702749990477770740397116964933746224891924086625158579729693742742183657119036648849464950748682614923902618557438650653598251653266593827438839747270114026104218985442423746359591107214147197744121222301861173781570536397229532551340655048138502105092985530044319369724406592286774616226157648218188374917234236201063701144407545155780588748250170942565065201377808406909817268867470031919967713013497949321494403145295707451849560350563808715218624944596551492447928347417109428499582716132833786954849208730445505143511349469153890103948767387570621101155900451805117367508220868908993088809177289285841824576364462499729953536971456711986554798343580561070622368077114718671554857938312402961247779644299392839039073560733855371395110874245685044764845268536884816004508043560539354604860483813264552571134431285307409339914561968388045199122734072927334180597990988462747900841092369086164253065845720253065710750474306785800712711635418130370970827238170285161667243283551666120897426298189716190831123417301291069006435283759128401157038055607453502116718308312379973869941915079806301421496756166102411227907092603303685791627317638934064157648033570502047609702784141637070063772994865544650085684369201816999139823665099819047299131781360620363677019248408070896345384580782167203677946754278394132189783296354791688442841120555811174000280671967124565865183021352988917742815573173145878537363443094591907313176487917937721996082751512454130122290094990204791206663448944214655350511207071616035179233194636747818142652410099838989286895830788287340066461021607802593976337707164644723592121190336858695643083939658605364526477406157818102388205880687919571692227319105414357902490601486517949283084096511307635161135947372237444380895314255315260692232872258496089415642343918766002864886408691798450191062401102481366870720811956636776382012737115308968015518153982858989469966951371774667690729773156593758238200900333089332669237871311663402265986268606450157933801029030851465369396386367027761225699279541717265187734358846504378018947068948802880617289050370375026504156054968482411665135278407905419678038764750049327472737859560684917597195240538062851967824273995558520311144706793711671704976147453281756282019487414451628844858775853943155699745245525435124327332142792344715040826695081459877421455729118943177752723759061876783099334425186281572747274072698289367125819686968551047609489378160906058354806770271538814487084724106959520481208261361314702349789399747909482419170449229274357172418863414931641352388878011778858101954994837087137544070118393547789226408286264888489254883617366177419987542382595579707928499309231934232832312899714994780093083898511676809365749768701974795076474338974495800818770046120396854214332984008062517025301758310545670723315058288533597908048048486524995182531233849683556366761956240029934377807052088705912639510590397732515645836004839345405666950399526257985483335336953540974254608854795719921923820522288066404333568881946259599804621184122330720505254525588960347369314219951582612115077691563249944997191887442652120325472673893505448759854655399966106603952345617265081748397714440793889831439242945385988598455608790406701180566174635044183064195345921095981035423721252384254091960809803907891455319282393725862890836914240099990763455452252883771282919828878403813628164970781252702382567641871183157772902094933513121801387417368855300540469512990961082791345849587953855908519110973635616376614552261066308406022381191561076283236129098968231172380200979841347009833196568322534957804516961510740647276958094811652798820448955666267122548494408053591489131398327649205025073232655597464022343717095776097059187056701892666637993911509773211113368033747041802056117078411405448461882088013377039463455802189702620565080449321901368042366353574154258850042873658690788532622905094543829334677672188448833837629216722185927979921424538453229692469165246411274741297986500773114441333382888609447060197227042142641234139417917754816957706672143524823796758542007308067309279965934895933010177506725269755854450873215298643949348162007325862377413984277760212189994804183946384828916768300955829679948589836415109386131680166284956156466351949707431381049749500675804867309412992140648934961624153205224694182460204229111782610828566020568597585128804357006911721891200157015933765822781283336076320259737109792604550645036832095029310617162900398142577851786813501677709152252392937669478496435298357137593428342544334476900882548997294099036758883579587894123259551928795483675937763781341489730886445618712861980916809841385832222071086961310985323599704748645989603527663139472695020876076722311133674620520188607056882220097132282633465195716840571791443063792426533253984706911915580137428495495551118624541842909149194536157143239220620928152879602182839094176011318960642381220357109382418328216299597537075745279360706952870142816807288197991809953491260915191228825736763387769638614986196393111590271269401492710489993402874319557674035057859115532374177159597478302719909958461109833329090469295388412456790873800023928731321125735405874784402442587850494139823124187243620351146391805267298501329981049729442481782665794909300578370893586576771786920090179611664931408913050666020177894491251366669355448937868708508967940097526415043997610025765935696623453938309095897568088970487847159633996260204685443699759277702187245023550979869512188638212317644903372172520249018223490253465883974962825013601488545316403354240957514987115678341491552727182294264166049393595192474617723801520301219082543892767674966309488390270436830524803861353023479377118547270979752889641268690641381561438680870505048661899378968183772838921703330294032691050472883086156177218087378574493199690588933949381078623188540811999503750356756110074953650775387941280853963336762418292634770373562581756863833165993860922381145990561977667357947141031108726196812051977664437772114904089420879281740717784486317735501947356988977447250204576179323060362963269369553388164626410857046369845344697126607707575021321532069611383330832961695575739364932691881701290124451409584699524142002818572736575365038101671985574771167752191542696450123091134924518489494283298232748439364225186858738865787541886355750596977420844474393477334784565395449395481978605451950905433780617321694613590217668270711176011014576002625093452760558969983735782432852618646469634438258197645426299563834281870934784074181163590090023865481125012990348903127324747368458707411489321080263411171113456792981585994248044020319909708928748542495987317139639425012227474928859153159838740161183452306134291465116749718347957326914582557398252725355880617996292652115421005135656009194466697212934547981969173148933377928730781703790585329332769482199288315048632953567442897952571385313640307220934322112275549634730492846228517468301726762098483540187597935125012832640378653257340237644279842707197002311062541358255435570541259975415329891350879095342386126695577888278302412773204489701934004498935518165105334740966516813269983713835363938117899404323796387961734019617928837881941916948227013752075426365482609187823664894763145007231470899667491906631517989690001184960633095464237736629507253197331643333417197261130045801559881582253835356959863592452455940725172315825365581311909152934871390362969078496857435416454829623311753047461620033352118826825128419652469170731820029594819388384711386416947682664695328153667763341088700566620589519197130917597012985775709658071092073615721735580896519562348683444528357680013802058895914288363693623006532216476544812272612607584248140647442492606609113712430080958080489816078376175065901612396561281026224382076382992154595783080875500036015974909485328082462034345600014834486986817706190286133923214272632786001472212713411607833681958715553058680564362002554673587662826772416358439310145199112648511391780085382293619418556917334575214974743671545064632960923328009332926103246472710627678716033110891696225679813205364491663556400007267432550891194587058358413014796900371250884549550684431538540227873489280420684358865918038442369202395809658278529846960865545581455889518125657119111061098272908265237099805028158118036985130561174386002915230490601174941345144383661740855297550975990943417150485536832181440612904016284815096515873468028796241449103562730312842422304635750883497054233820507731705285270587452156834987354706482314051640389198465641352741776643929215463532746117771844547037533772927018143439258380040950272553607668509733406737909073414026074759939890787940110835101421756397550733703745659715226324451870004225008468469132626895045223896377912519348092440442946882823308327687453858837770305011304271670112205724494703994662279550086181653201433262232168160286423855988101957868399337033056589818542079187513819415038580473098211356660023578836060683230018237377969020553234033258758262700001450610218999265322486651110676697620195811420080287412135710572300556650262690792230394129449425041577786507394067237692349250326688098642775366008236362276540187714128986607071393145884847474038804675346594289704853136855277246893248465651998137946276756720735323682661581399325044594965625444532209896945101999376401030821808951455252315258712126543392368853376092050099611362492080499660855328364666272392310392628477874838918370017980003750028583304129598801522933525103005522873222954783533991264846085412452376690084485009599992886788135427076582401237793794910645611473035838127707736778193200018438967934908256891574955208014816522498884933463588791850568431632697595042276799030041927013800072195423505279195910212828471707045261066366579093728274837446980301434153022904592558387524080223277336296942204594413083110022937432698478594648908617899738306571184941489060338832311583495399067311595534201541754634329659428658410068727956839629919458436894296696007615123493518403290014200616598849521330160951550739454123484691443032253086989292133330301368345712069197656607542548508908341950023843341731293029192312882284052241689972582808432888345605933177142361353251114362206933092700393444586045017916633155399854876102799433131236413643623827085692866588061004002983741627537434323715912743751616823568925109292877281671318163329217362336103531933835127814402796306708684447432207316386370813714740485960183811928261769700097800181744221657941496030641458480139435027503313714604630645311744447475063368197744547411285286313655919096364128073929481084750430027770330033627454490052293684800900337565761020325167055158546337272069814064328264115235961950192435255392377972674709252177171574496197884194080068612428940994201593424605360091359617833621263198685911984359929400739239962076954780584101735718208461345356757407599120762642263772211818404648072324852824420753225054454027754862808409686539756901797534362525289835156509314988028269791157170421439949007836282201589688892491517785032773495258767083469558691770057181051276754946698428395686457121240921098488736898298017275221362716682319624385800083179663749214327140630561069218987893631938307523102910571426412185425407515071663610938945387681484652940660913571568770478580259991095265277751665991886353896491027214819909433982705198899762993363498286837207933741882322975000750177932082284787614223885262933968394809932429623365060814120455212083675809297904570642757292695421341022653902760149208733158032632696100621256985041144981959912609807957901629205035793831480424245979031152915869641363825493416799656183589115996242263433518433997072422370711471525490681597665771956507394864289206017139679408064695983790680991361122159888019168464046136247886962747803638582435454214778587510027471799274030824392001588974404712595615288459397598977048302643441217333934696679869243097237054047734672463628643507715275233694712996087965530289528499183791617479044134644624280389646635265991371546074902033338312288057060229462862832250239598382961767114634152666881200957224357292574562573670549314076652051750989379570889966924108859644970179116103335946909828487358408735660280566479217572198983077734796889013174910309088206756856187094228227090435118153969404632434240073327065725862881968303299585190989998452686009909300573120379261028054753970218264874316199110618435835627755241982516784682385663822242612809120385910227173899429749645286672930973498164573017158646338485652086153130729554828687568008153928534504540457872004221942684943237309559182533604810943154425941881503682700982355856950919735351915152051226292619127635326509706977935122472373781603398132409064237151414529909435337373207516174215676753474366078878650015486348164527680491800944910505999962170520305324533583583013988461605341267421775370114175157872872426653969641323457018194373552730966176843305199280056704042016491373078323025111688728769074672155010987401407310969230959932770408013953714827125172602039425990574757973507286137485881508271377566199484134139846484320411651400543905468541612198163665462377553875347516388688348224159358758532963724642746031494114924236638244751948905208957287029457697660597782533195091788732712986676995774077839639432207327088989580216794816555666627555197541271102997557893479269403117564845500152464109853176582820531367125655887215985485151651414443913388089232499936476229252115677102053925815325686344015956787352799219229489939540364420420447092106483657368037258018097662136720597567755721218235595140737037692793053038003603406079798857774880150949968687742501602145863148828739587789678218947783560062808187447840822553569871816872741289182002491336634181355842441482493722853524581138110757676895623625761854577260737045739082759762039653223112217756288497520996202120189990549069855559966278062423930471824508037159614855032366966574316790219987365612990740552352574443457845825943792289689143195582875281367715514287913369651348235388644076090912497529783315299904622405315304974724620057198822504814946310667611004692586167108611548552681014803457569035191154699281863848258966160833742552320756662511595309070346841070901299974458999939327321650278933176109890828430434406578045197200073618071770226737444620314973904077448140952574983960907938958779339316972027996219652512834509034342187591352033885497018997718474520246872030948912205072981098766902599186948441648469057703958142722974216408981643528840293614573601586631252287017840891730534771730860776178366911939612232956419476947941805327409396543902238015052228753155374956116952702767712957963238224535069817195222087389264854521725094400886315948342629775281352641255942419014580553987115994512861709739550771478650694448083078848320439743506726933332178577350195210065611321848299624491489334305071904875382656858279506768782100073109405876696519918739417069704399051228383086057616863537721192408062626659691072865474079602045844694734081713212665729792088275794299668892396641439374650684073148032176731815640377246827740422976135271361493408971858204487595733776852669162362636485224200112153478872509797159577529433125247146876750174259053937671444317818708239918369742671549142860911922095344314467535799672521882551031938640406127726100468120587001288912087847893158702199381619190403758130831713450107236593639293161465904551979416794768878177527672597970477227587190260276417293891611929074430276877808624247106807005990651672652453340727401979395303510732723040191532247528603205186596760230007010077381683560753567046174762667016689371782765608134484504798611355918366918590095762671738241054988740353214013161469266502884601158051005948833399989586644428953479708736801189547241790483525532227082884989226834267320784301065502248179726385693750728218569740894084121641290998992350476913326896025201311589150505876012411973616205587547202233795761702941424177554765277768807706376943009851431518035368909441788979776633101307508826764892262889065156894130484931661885794539907085559629780858328741000495886449763185914392624466155651195785097278249888869016760477431347091718792510915112952715124541525099295058666916752773272897814061598410730803718224756023043102153704148518749279619390709187328398458958678059287154794008453394539006933086522658224304401608621369415543567047552161139960093046601552074983998514381065595873129600872686088166386241418151097597538276916599680571397234768366573144964237865214797644223367587463548339837315034498666461371511950683604441905565640494518808321982780275412091411455278076047433761056186934762561408553937223276254320053423886431291551911574548024126909784540501766259869675103784268711143965797794547670720620494192607893327727851251875071717605079127673866938581091132692441544733660779717939842177945084003179746619409245047530447669418309857788511464684882208674320932471759966512343385583563148087250934203885668091525302025925652863142034875184552214709666690395487117300225639160601461054308337412895972439911715246782486412281397500092107874352222239978560834689362193389445931075337864218923452472660543462352200432684835742893058121543558323200742193711132258480803815541956068911990063976685800102112656509867814753601718831231459912504348383010503375462102096138090699258821414778485317626165530897449382659080736763974071156316496233408409132214352522380479409690239118010295175395678161883028669442572242742165722315712702167667775121830982687034080526271616676745927723828044074844119133146471131013778297456278548252240822943284619184762578893597241940292523856858794985081424894738549863680298762244530519231418648948623406123905288844788780217530718527052139955027540523974051962838300121598406369854102269147989523335057512046765948761268466526679594140432758975265480479183952006947068476610025435752009156128651800122393139357827696652712339261004044474735175970182894617236209561180929403520344661872874604607605999383271063250067361101684058475800707399593866719683122128017855918453369854538064131831315659234565605450545640911520264816879117388433113337126570892277117818250473897122682418019831164039244128831058350565546091499840711938928841707059547926356842664446991699731421560111429519624128483288190681415600009966806808109709898154689916669289680926384171877994937449011972982398853523248128602125110333032134088664512566109533539741303831814716300624745863556908787148259802633773661914525600331723306642370657880981008805176272799174462480808716996128230606150710123718424815108137266465840375782710490172668424375011488457451541545146224856707365375030053949661971167276086120853062384829193390301088825866844643394199274400295492310461934378301354595582332968341793809482065623849885489205672360474539284324300575980227457269504910735261899764128359329391911023027544236010860091615367488756540042540796607638313694083927740367361794449064105210346080730317551914692866798917212609959711850286392666540959661005971079783647422527440368077692426907428134306763803558008689996462095951888547675871459460020149543895889063135106362287540585221173047800366401467418885409470717243030581309762183757972329388121379119818434847463933071948495791223376611835930048380359703521509660024157471655548891484000135851976387861938605652665976285627722119984353795813128387312414502987637177455980894293736598099622984005121899665170244944095274803365823504465389987713649961311048395113499112899072458933104687270447653463189777600600999004996722793662073313559093834913251654000576975338974753813000101753065470910528502120409875438638242292599790214432656252435977477411016365114276930325605850291252673127469379257293066823918475390865433662398132429084546196436871606703160571047469168208852178734896059855895756087484988255982423992138502405333692581615175942400487006267901024741678430786408034889890033678627463201963030361301231864329251458258500814803415286208170218208712676058691745756043144768813248178208311878826470333918976405238301783869281688944292333281625359976168688680235737279569163753843591020102976068927076547020030159446176054948551783662946376323069570129917420222763192223200220751778228195617462439058739477625839552784230432296925377199661108179271547383029248584106237711187254474958640757355817683517518020637653848500845178437055283952758485857711019149098211620557714359684171779233034111532043401386653680573724435193535960026694014903302782380257388201569512040899458017737124170420368013695791495658868360749947695745170873699030047717535626002857516341121133887227867847492691608932371976339723007651807951396151962705020678013503822829757336880796918775697464701053728831927490107964581800512035133661671568975743279343902361028924327165907870161652157529923135031628343591523959724219306194620174112043636814552211549115732795670634597340089762203873153217119140314761103498066540237526053469218626885312806608823787683731704812662255003617645932117624420697129073717782084179151267280517004250571588128330088041723784750769696505719221776429170741004972203707956902288815200223810921072947002679993624763426768826899237495278935406000884086886338871982366339526709898687341283801476689702110270486953046937422381061004637707619146040270230990266882091621983069971632195208403346246289254943639387639642366108949461120202292087921497855408311926704517081485714695087404634424491588917062591240964243147497838723353499330631776122796645869554856545628118544792126819795309341073314946842850617048198249374500814288827854784826278869440775486188864291869477529623932952109838447494176510887456981002165230608920107781432952418259867606144646031693039420662211218675589074189944496749039247659038057640708063117095266174586955809772487849763956045283200370189070991594638834781523302522995089596469551569250953031400024508191498015971133608791318671894986748260834138457027623903960501191601124280775405241100968882008449791656573724425153041681174603048106779143879826064850780421628406172159287701699054380572648689469026081459923386018791614117715347029801411649112981005925057380731154595801997271576360920397873125665409918298133143039299870162532625236013167266527486843060669687289312759637462582062472977934624495490825411460538969332220457324606434425318166304135087984345190297534178731841574356339462365177872580944344326306757628853637012365495544551351675756079254060887583344345956803804484459628340907847693388740072578858343405872491606833090529478858217329595711936005790876926801006672397045942104292305296984797018850673885361078542508507637036013296592148468197913369255539165207985940657784610981849189063300938291634949873520165165387071037233389063006132576715124430781270468313429509796061026806829197133714460014182298591795557962680875889479278695277685431206939735881925804613085894489231141004261273042682011499614410343925565465993852205617994953665844136980472644516660059486066052160585952708984008942879171350495818265135774619306559110473938633172129586163655677220298487861932990900774674337352295943298471720999138795095634512162253836715052800377003433136124486649243945166930983300026676668142471927677743902054638635352424543724660715419942128448247797481986117171064834063391904575450487647251965562494238384446715384028543474798202593762638221746114260471838594675834889665492192058071029083281661152472579135016183977370249350727341253856959866947908223389384199555550289553769921523550102057498775896311571900963079003465338247637811375135051320844944426513949787052397092433576135872113779343818485272167457565409841780999875562615699099570562139107086031496768233831547601969132734793144772796276793252159745366140379244681520837328039557190114981072521752580148509386708599959377226742181644688980508560215082606582720123385487701683636211228230767456200567771069364327208082086128425273456905745975477812026196173847051575995900815064901664613749231635125354581586560369575403955020641929023515121460373401046913529315276140292337202094104920745656822430821682606169570828468060573410497381113322593423409210972563852753860809193065305580075979735315931609909237683929793166216457702871978017712309478232731472142280836389906865519867303613829455697735117305828360538614799070310878543845735812649023185031346681999564933502154050700048324932338810044991604653554262012862390737876908195756338770805260829100555766514495880252243930552245033329728095943716455132732247274740162048589792272708832740684142872406459621255708999199288317419443909856196924609493100049773275185083228874104671135773370341553675278000583931335188477612399270504365648351318772774839300636206706898020837756549236267694261594974952540183798007647834969374153657336964902165198513383226107269317554652425450654136441276706374644525612994533574717574684227841836928409006581370831614568474511745953060729486226238323721705221092607251493995163441551420801532867404930626779652387070918995468309638679963557942323167335929782563405675083646562262311646740899148051267677069140761310260041653643481998051293056140114342142619126173185195923137781651379784992181796623174096218139768629707659462893478352142074673903929168763745744077881963343770211612810368367549278719657819333119848814016610372487444800002379292102653269772206523142471545266535724291803642407359594146522334184589634925254249639947859331218595917503921213070180391177667633943356688093708594390478609096438545649786566482217374777930599734709428437455641436857377793718382525001586438191058843128233363909172186406285646513846314267985221406108159753883222672100467759524814816407816648147030273374514513310340932813076983897855864986732868634054269461243423296683003827939182697020759352897998233801322815384974018828074798964382891248614611622072865050569715893809832730139095760835927313891464468973567627922064946511663021770962271918970811080409541819418588713943829770039075289203714947470810087312933965785991350462113755029322883942107850341599376649289103244916295330407991320641095443495373916710846085325691395493853225308193349001470344101745102727309056813508957774880097030640323810769168133226648443786162680285137460019466713970126517080101666565675051911661190955887060280361972442764794519705762589023528786489530016298949794494363144629017411099120701539221297709463122046416836434446786279328170561231955003246120801084453890364849082709045544197687355805390325624363988481732505488103714026718468049505117079079522300708877426186645976566465388364957129135259998537659824458489022733412605777438102333538790933839853802174082667721902793090324664586224894006930319237319182505740914535403083050441111489315408368439691665012681427288268852935066739437849268740383044681119823298864383359751984480315436162329044755988353374844515831517812183844240202454424434957753300500271246646437731903423687217200685903811780230199475903401814157368510704824949161858301383818812287010905885191296974981822698227205137340123880948543731482673998141855740162744621158917208593730488336850585183618752823738986282840433095524430186741972222880567214550254532316399641972319707982305938330474459070318548724906823538271188745631648550357792075511776412378969645384945675889967725603895887016242464011424499347358503662245859013227075779972315438934932761983510162221372041360095364637406695018219463606937610159212387642720310438267203689531829843163890915529642522693522867239914905194997498017775066071005595213212441927036592698159963740523977103543251938389272154587010892590517795476068760434993947234924603361888129477033226399387412595723990499054331584185122527380697332270249955302021844205032720602744787506830131660169872919609822549107175553685488092672725583507655868536293399371456319768420620358962325857436913916524011373688243491267672994419606630628660994125872891730448696469754730956613745616479464782461332051189183586508507802895951906991285211327152395846098401174571947686056455146872175930377307851084724727751559280182527760099214722903173257969441625509564074157904219362311143208051759466674533414745495740745787859466344522272839382645502710151971056093572227184355820121078199302405538471884093412225436943597256292190061022663877626330749649454593432166877396658779391484690429276874771646524913382176073530569853788804980324253554302691094985893437434999398052854562604365163134415797831816840454274978017292639429386917700574009088553708924796563143697147477458379737497441014038554202039365063250703612026996331425697499007130339431380194273473303150793449470420236815007359491634253064363231768674761106412369962883729733754535243844544323551466066216858101868043576001982979014014047726024569471239750986845218841541825064958571137731623565996027162575655775974962672745017430295935914332624621597420974746909945297596507192126762509544985375783500547091590391277690759476852799133212409140553860224930981468783181696365327373212018931551157905118496809686528639958203493638501687201825793338254212370723373890266054729452066723355808439642462560403800662667041269116621056793752838108451814227893177658974441859981052995390042823396460165222475400385799505845257591850652560568980186359494218176133462446037202697588594053769964988186209257007394725645132616733837983965928374862976208113560641223781739200968557891696072313929415370245350081410943003958932624733469871842021936956835081050383407299870574245974203710619399114884474342235057378762419513877766716939483088796258510689222155482595218366697290105268148175729417771356272946690145802946693624207333763113903958129549870413566397825038832503941260173513625713826324930553766177956337393200263074584848736932967212062445166645025187817126788986669750215357489437037417521181029162302831742875018294730546308643227770225293629812999861146968343441373232148287954656893277167586301570769122109409028889815514929363889195270281178941595842400620585759613751969752318913838163801417767174651674321871811479009171520912987593314082005901413564462664159810766240083746955379631350825646136488620468523630474331850212613020847692506473761882479788193166214635205287567251113826254818725487496060167311921251414727417417488365255063537082763726463420887121925950669408361702211269177002636911873258354703550636695986333819647775450059917111644972053132807076415896648572854328917692465280142896298044767813286151287766050403931291231283358164453004175838133875233984071513341408337309866070383639268898861366076091214959530549910866292995737280520728109820824059100439509954981666752741951672246710834414377628174125370962791913022115974762146550832837331224867184701947092940079407993522258036453213747679781575985678241691682879508684352917291740409767129584299125580457397594627147227391162969815971280215898126347962545885641918528152013553108447295332528104614552492340634294496273613231042883685262242978340349670793102039792350588152010013493324199680648837602396511397310329997261826910829712980543262634211005387848853125983996772484162493718237521424849867990139326319258820100997863631491484947955170651141766083332388170528560300595821338815157261100175579208223899571715259382778618221607225228002677831356339069697982001373948811172515666875866863443262527341641490038563450254058653389244705371141064228810955726744437171069260976934452894034331695000155958362938042891874972573855336663443920180641718152485252465661318793091747425268242139113085928484560958486941696435076075545994644132324236312399364268809097444497119010778905761226087956118148942943020323917728631524596722792498605234264632939807758271645562220729730950535039825575469796226405759483179034595036710071157043529494450823264905837476608624847729903730974614701423422287530881026958329836088652225521464828814061154826706651707280161978520583534082040207438341960121887793403431336296801904391971292270045913881326396433029309836447858906564263320591759042483614876078006181589364254219990966707908355090316739435680509509676265104975795167667903343988966654925209712948576307331259563820285480088679110754248927143373909820009077096790809577305706195693946007480863331987737774932822080426597995154277983870640966150525523419496097710068159870691784064694093450415811633277810261637171312652414695097617688278441958954029188072034924093399730530781884759149645146933548788485719980623834820497354075718878591502456291301822435147566717589558581270590904454210962642365953077072678495031533147674874451431825324286008139580682458433123752185518931000081908530980240417937393072107003176359072078185139224029575275886523734132367406369107569022902327119268241369044820424251739598773790225333680276310630965017509854931945559115449907370505225372723346388023083612070001231421605902628888764442061944068866864487056416281243291675074880580068045636926767380954831250454876362221952017737063816268579725472048866614221345278677733741095529252167184810742513178114517441805471157646393683152275900019407599530723136277375488688108352893069335869854208305681597103900958716197829662441672238724399406986214508130439258811743225405417678464393357454028306702664556599987722099931016246031130619508028773327766334776657116110564292676647459257656801356191933778552443858075760484582083078926106876463461336810372630036184265060538064540687513387917958919332031421850479650942811520759614747980198060179887627843720901329699060014871798605834080027980257633615470499465457234308460217821607731946293623380194083448463902057108914393808507654109810085423397148369545980279458754516672714764347433762745561685736692559020000151883325617855657656137776527714084488390684788984366335627069076614658648385528243603507098273503259833870874911931965203594877986781269686536589768133718912126363608613524223864822480199680274456695924185465732599942773643464482827914173274654011067537259111866377106014818174328442171259671371571009978214769528266860932639458549732328470366087780374499218824863210747920900073033223200481921526733452505068377783351002595481855018553935250288387281795498005506518300346545407981925801269001609956200739095447227673878892513344736747117056562861989071839154686484943727133029681736443005015691593257713447153903008701846904725832963121775864404880110387188911997573839553432264820359612366520034365408017719692926568852876821353715956860212123864300399721943820765624061108397912271010132496002654295742302743766257548758027675930762891655540471380069804852432644009765579047874021419555271698429566497740790023464294981482686235992991497984861426342207490815781789962905691230709199227146885340170844820312347888098007805442049352270568814586997743186756144498894979571412336796939857135155504690856515977560341642707700641945752605654838331121398828060427319322100456965488583158462480870113046355891929435199253281826269142710289117502973738768247205166034866322386528626510230408310932283837180796437805512964230924195265661246833432496768412938588867267480681445447374169456302370299805338062657729826904317075330865372441087608036889757083640890429616853484925865105560332421954654936415111809288312915397942427767725983427213123864372154782045538023848442611925050720989147234814744245285137571970358514581146310285919015059525877266439045381934220290409479108323691249172710538600950352930286234120721827042147345437552154006004929870802548041174090414249318158305630949160271597142999283820410757526684186177650900385786203711128859707015085664218237905547883680098689919464460620112306572461083232591463069633636347627790284218790639904532853052596046815005624299078089849159618946983812059375095320829275271577407462105097101030166277330656395798232780132814695725574761580435959996447539174807050702418217015963898581756962769613363400441013603161075595952430269219884474162287514371480840373298663972543634729371203612122279195384675092286674327221558627907775877022926296721879670417215737539323802425965161238064370269662665556894421197242322177170144980489988591456269005834866135066637936651653441645925151819796468698514597058730101917614848486552765597598367164082065034715573405594688034755162041573549245360905357678913582659777274218213870674376190209624309714141541681502168185924126843203875989308768480827695694036194587756208359727534179842519785665063424095609828218704219346544718196439817046617932292389969121675650546741886438343757067268445471343420521480174045739343197324621037366147835249471102246980659369128366784248111919656315675613294290052861173845148417321803296396590898448878952435707305296535785863638021390221096447965931406842837657516466758716427024447803775347570191156194658315062924548390734233731131424713898070262891965386923276332445765753324708842545527416168367988736961150606375705321901284257845150546888060396903186860886651440992633150776102074319577540105721129136535680075940728682013813974409339191814727615590055777719576751233688096726789847905024039958440000927102683614126169428097782917047407478487718454895883600633219335533520013405568275456647688637378031817569515181873322748306523442890554762120344519577948453192041723443922370394624489921099029751441027664839729474663237891584854201176239079350341460969542321584818992090330696786247077971683942020227063257962338237956892281040657772530074941434286903436180400477892811725442819784690793466362644473019912529207859581274943575711933822648046481922042718591871051258181874463542023238149591876755661857306012174102069754003271652142114962908607706995429486164158318868373927933241378354592577386697460020984269126574959957223871119532527849216946733175317706875034525554763590680585342620712029076818167866506606895398804608788395495480602269300919650852262528419951917627905325352968972462885133031326174758013089254050568440481889524088787997189865134511220739658052258400710129379515697840923106032650231604031137836146838757140638621226626521740960364392542613558924426832543815778583207228387635012150697605143749031270754890662386784031597389398955395768004255613113923227289994763296434849885116878929561114800321776585484799379838761088219975206955218260205911349083733262096117647841401478084928572884248946234100855725826078282226274963884145621456648703721270032107144463516419481627467804289397303325837265277373199603947147330272407442933422862208124913651082394547360464712187942377798718915443022951311572003493609513000748796184693028544333264927463270908755930230554903838604448102491609039421069752299977022460811701869517335330495716167587625889956653836708704337138218717602398422153153114797730454757518873083497787453352806583204967247233622158250198311526444925647324374852299697141033436455632220421247547433455639816532734526083939212901721452501176472863232045292657947227579006580453016205682137512579548428554780298784926478849964322917446830436196219948295861743398321422568396016619202034144267011952168074833151979956726497386275617477404125886739485950640144135985363698511949196568577896203209046762945676496070816686953873151065008170397248966495219056001806006643843552431724207755913204522743120458310369764167810937628766305007521694370163391278573875510441631864854298233210040300192612681102522408336789131611808464848455400616179578446411350100177676102043644622238657771953922889799799735695004520804780796908474198105788236293424425366105536632867617181999861338104353375340181222537842907100365656282985144187208714364795625983230844512643142479612147348188239364319750675145392182124501434439700920370339473031497680976850359190188806630706813054242910937885065023090567179154704903912575169754140444851259959534871173286352179287993373616052452810245123841111516571915416172519436419519496990713067331710101603873371495710230483595429273003171458508332634126548275171517027487941365153999485588926436360836992801380234312925981690872549891699693500442437390754587079958309727711272785263103597420806407459391277186641723698250388055830400381410198493007149117629291748764842336912553364250591689738784069492057644494036022249413674902862602939552198871718599200272640140557885574539307640981479617509069439484688885960941340428914198855030198672613958212651687270212468122044104853619435118430103780993044306154697086189480811076926911159684982222716341567912116985726004636622708616842755096879398444851830831027585669771841292664045700871577997754576563616842634354750569712616489491811783776251993702618079853606934133498932912999852584287300377086701522707463495868120162027264159633378309566715263569670112187455018367119259194319034855838602594260633698847578100308237358989782090409943348844572520244994984433034901449943089544443922308380037057974435887514256398018265023395101958689377513940879197721789092363029036980162314994671705650225136231283412079187683767894130730115653177728387660461017070972730563446911611565683600620583421885092587904017530282230042488811546617869843793919111371704739337533086556042397598914644820188813967253280112699467415372403779311689188557379664643883695569951674178589415225747741160097829656742906366444291493484605897803952296428690446307206853724781177882250026865001793082425258246215368071885849534301425231429361183968674954601572067750527428013220493349534215669409682506067679603691528568619847913394944829256025161287887315757454000921045762531120243606399990423364676036021687883512987906995695965840319964135657604247830262652410101152200359280419138723632739516369944391718055697422062006826381656835901642375693589357806442342509809370411613420553797124725770962143282209126902310765759746774888776013970713324995378733551849574388665487895690028863521678807650129073177432674547924492237165079998790912659210519356242135506677157199854947714523312713349144207909194245592578311510202211788854801279341635908114721649148925626940485361245683398482648412328240806058387374841214621774084789388910100712309249204649624509853806329933139460787353696463303131427399279356566318920278594946137415395047427773438627379677888910183103482466798521125647037995976971790989369188998671601009687239157559204263725774437772604039629141321918122010593629724123229441796886799641687889020344952577339344008747112601201664532427304574428441007873676595697692279483353135128025694671731236194241672758103480233554796438982793947522795240174415013472455026318470109864855411869048422618360907416983267229886663406235260354617779401818573925743573841547170069624264351595421102330984695769041158338981239921689717631578756343793766726479053240315644238800415483298393368748347160605160884555344207347262832739315615158926657036607905636014879515115386936954738672156878976846163564214741010806999715418726807070887624508039973172162628635003919866720289240709811123264845785457106388579114317000948319583799380316402026917634164026838642990786401876443396945972296085992637596325189370333103377894547293265004820662407805480396547070820209239848176949615428164690058001344322397511086170027801645318522793990354013689382839445600531832104202625980544470420838292511745371958525758891344124796445459728654781745392888392492579034401495169226449198372116301885347051473563577171797434835050859634591942132914823325589481737128377407949654236872243346430190378693601042199063050251065785978862088739145277007517186932893341457596764683748869879915517576289105446631140427823549137492396359049328999130245890152375203138430645410144879129346746165879250963586131727509082112890552699508555924021452589194416007279051091462116363158673743409320294070887957843242028813699031528103967893309511232194021325958540683300797030405606179890856438852205345143862245281396097107091045182399864981643612011814790187566928886543893316232977572486451426937331117268403305376738533193558552318137974127105565858072015905548669979796330674682054389738584958543492358730921158337645408791025900907429721572093309658253957789045046568403573750054349696838817334030210255825447191616514036783747204741705996311432961736847509528367999920062865099794602527861061987456224770893344326995006482967848239787755527059459632338774886150423661553409198827695493810658363161538031309719437012172635754620434521952853391612183095013783107980312234470041976301036816509617557643005482706602244287280693984029800092584152240713596292359560263639193067915205545468497420875377396832459957916045598436758367266293685449090595805814033641300301934566053802494051492944238374344035276461615183086603092742834648381702183227657118583597673749952625515755184270494381689112642551635865645767233397963424849701043876453847217656051726692307651954674635688545108215936907746726212332350069485487845615059329543779659867415409258849643832646932250773881105091376480291719330832243143759148933230198524920601244986896991005185917947936963042422339555817204814341495622594288155847860185541733085279691849163377048956933354408702878109829219094705766351770151914162189857442376272022881884448530007296630170741902019272343316388807269222948665343642881800303812062647206643596821438510588095733601723322120714659995804310023821283196789990451850350305307778724474157894711724241535587912753491473483676676797511917008662426399574608650670478703149652770535419625028791052009460569952473206281738248297051967658921114420873286325170520754378192490841885435534142904202387085799318897549599064436845083281298060799283496871894101289270669533823782469196592182407499693228360845190797573826158944217307390655412876382208162475515180470649217229304625143683152986558909322287603661458788705256424971714485479906200030261520717681388270039446294397308375084680232744920457962226879573611285032892581737158078603053320887511093944344788123025278008808612626287654812502575614814767535637387543043244030109817462177854037756134011110255837818181102424520160394663496966022204943522740324991372620258590044546583599816169830487468595122925156492667243133766586491620164209212381665522598103427622798333929696615480714262777379320079927750502605653568583574751220957324439159934268138791985348446546584047740493477935432442810803419099858509849883095856952343637812348265998167916303148242805858964968221898514112577148508464580401661960875674280408386807502222018676196243352248704688648161165858396331532841457198066380930430273810213967994863948485157891036764999081216892041864919620201930181737965717841523130889159448220334013673914060917287899896351487622891807707341575804463464272628222997518625926437130986700228596623172357398619010895692049408153947617516065033857707905188093544966200239332847826296054276134447637802809090446995435409526192166005617047258606933982481869770040912371529973247001503005801347143592932116159847566020857637925749676653351726724154113998992409597366979762771269454218811629354796426607169812629689818827279649308011141789899633901142253457377079417787601768426956982805165048796372356844668822078244915132510094416373313085235736223270086678853957827190693388707399987357283637583812828689935825406637346399850385949161500470257347969983612307799892155616919392832574689699047597132997109645629043431235711834954155822080482556966079004961088484698810945566628549925849812095485813737713873227789798616701318761330886490347854432740239685406507432177443312404504992158792302924181809042871020913635938333364209209421195365251717044687809270958229996373149092458136017722149360309635378352270344714110525424853213426919704895257591243810867400098465490466673103217650694156632464256912872724666704655327722538625842751339354084851181973540126681842203701719837699628795757935577881797659159557497672864816610072011728139524001618724857331727148291172048426905171374287447046721996798070453958595209517939487911749272121511730081650613241920571065758721945722740350273970572497036426603774902516735477945111163699070299434852354831397155343235786717640796649934706259666697007128622614050301429217183699613952960363035329634061267007353271449611353547079435930499784557788534854168493223860090954597183196082475563349602305205377825609357543072388039413930625492255196224207104890971691256042135991128378422591694293663048512892644998122348313478361271235296149321350273275554765464409447427129454304528391885212978632715054704539939964019177486878719226017479779332706690599961802257064681236416241743116461370003075762557620884140296730160054262462162484732089236293752661945317523044788548521687773652810959433711210535587330195251998646477718401523479492539893169491065147683696906323187612445624402004630368329464622009812809236252324165302302652188505366288791582506934100711367751619190908213052628566312681812061764115992270342843155207339743814629217603043921071589747578090688183401915830821300705686508711209419641722515660260007427194692127746329502207801201341511906718116285531636629595849610154418910106001435129523193575917486536078864226859780613735964966241248701982203098785036923277559020396890441260639930098959255590778660868162013233393760345419698076133948335382140466863408723967444634787247097040771794626916231545692986567017720122673394296784868226554285995448660814001069656057638105049125272273164470705699641686607436948065790161507009877961448216811085062009268837146435217171523251378062270694655132516384616806336230596100416422449785260064106034579508991198058823445100582759795905818168732921186968480104279474410621454260339151476346987548316934814291870872185370368985351940371419267308677660143618294984968990539845070701751556697858996200137459648468929149280568438518513750960443880786945638791776060069411447791161372463677060658944174437299881890009395583652848691555731881461621140460321260867369503059766651578684931109346470739035999843640464261883299550058961317616144841353811524584536287407318602450857435142051754574353334311736495912318000351774845189510003262669545996844460255907059405789433813424656285889526551163876131211529813475336596507331351609175726226266108193434881592914528735617769582137815514518596867259257973834321417180720984842263410664212197679384942315060426097234873270537577043621173029858752493639058449463967865255442655738601175804745219911379250415524792482920203148560675664391492703105725620578371814151402651527417570328748644466769457796809804528758499735104959839571174919405641151408485494591504124624574602783846320957776097539864077976597341709679094274800471668941900192967331495852650764001248860639926486733817536918784579980481335253356296062860723143321406366874162722433908180477095526222261384962972451647827141180998856381402440637600063644181397047500537628111870244640710184985572631795086612940104596478191116613250244500374514301076303191843645776314257593593822796360844357780003515433711952207416900422468085317613449644054965568156380685564125547627589913605662132076135777947124197808786734882365372799213321207007143880239176972564652500650818314483412320754441945725303524960833251722917449986301017657264564383728546299598194168478112506968294672645587671841004567344930412970705559043491533074197453062500827136181067353435839832380506341621134328798585368084727929463448602643826586700590858462506908355535284709807432458328532398032846774729851141246332461698543972953537139998760135752913358234000120868527954767991357170312698477878428724476854427689292749430889990494307681827458086837023688446236931944394781730151860790285493362303578079829793829142693125406325253224690781797679801317358601080388634073702488382655988916323509504254504651972758073729051762368755682549877424717885222318619284791516040335490130093060296565819987334015466903238460435806286316392242418911623498340451862559246275536871234457925101066951913982428258644994791774717457222539017218908232371610849081667602695576629319855419630665126550664998903228378368154893448027790514845120892518193375426968743665117708243263619181150002254492350690817158317303413095211390900213382765799386732235240600000623476747550358694672095436980356695114270191749347543798222365610200895330848331524535240703828265347757080453996713501446951945086330083599664963453623674848905795412531347126378238151276737802768766983236532280643969166624506773992686619342777348416905052517386045748578057601513752454559446949565756764175587689514538315423793243144607459150949012467463780283121803242198318874347166210290605977350227410743033589643657647535414289080734005677556588598755951288492380209565583950709538606373638048673078236597499405630775343064261005441086111942501752567702362870935045938143984168409527541168604088487374515698573687891087785478242346324108833553054446158261628830647318627768763743267434577461941393785698429870903027512021021109454920806041185551639417083624325375025618334018516169735241138873815843371874143635358094575296384346915301601647241567522105328257075977953749540796230690258791650589993532726162569999594685497231348910844952944922942258159748256809378764283472587074702934473730474252777836981758285392440441462177512061151286901560336638256691313773608267833535972734117725452464634037308094855349780035355081946062270945418228061637575498529240708744327440243367431847401459646807910510900348243516531906010407039957909415868557935289826047358613549899965044044870930872858714105996759254740490169023383149405254474964227832338066112543375134619572427464060501957702935758338009024908724089283196272753147957706781814677498450295676891163152406004785661895650473544849320309461245747613173130101975572807938278940846202357688145807953481393008046894739128276162671920320194546236040898696108799303744280287078338751485932898442971642973740585928413826983680343682708740757887222164929183607865656505231630781811932090617216694038869445847519692417146995844963800929692398281312439356649179077244395331183485187874591612003757124998850969339741628855031007084667735168131250549168162221479612145385541184610083457361709780403658566966558728864288355327077610380548720000776003278872524064954939786995217373463524011616399610614333932963782825267115739336768550516871600003627443982290125935716865487470899336363028707053032000661878424438696460800602228688551365061907462744587341160000505184962286431953614689305582517395635255755638931218570230432726152463933152977593864399566654571949473682009234278829418671959670687463706997465920731315161664900149668716715347554650000714881994754254402025117163662469068159473915056401457200279309641052962194235119062668406737570931709022425781148067056574937920870153628342222744237300836691893496554319441815696086269600465496167675468378121229603272361355705035833300322420812375526045170218691982526327058914191603046329923718982276162438097709342626295602609983045706631167829211556135162256051252420969502587559778068382115118459788931258056712460031507907413371289177995535567846335918116361841671292646490285360361052462991284644033998159594294490043559643970671256762755490790718253248125536404436518813224696525106710537384684797648157655035096444884748836173655670012095070770829051492230407795390561243169215846554680613954327970903511378955223897910761623123848863219274666451995270405398471263640337798259579203458370219907847872827953105549611708713319955973297791911324009872270813971504498575749331898764787653172083423944375160566576568007066525674377347875374644156454619739437095835268130845755803314830636725315719268414937630784643790907446154569234491736828931726773701702901974656195632193609532662349033499688524092397462722770111614153132708308446639091507012673330721218303356905776025196139519594122186491155690352381414895068402109152912065491066271632716311673738519088082077028712511497337389704977020908415656629826704743257881875206984216680514642800517350296947777077907303556485717881699947878727092506332555028703127071696630065696812301932394221594138213222818444304214608373779884465670365005211062763359626935552931065741895550999324001674133711190741735294432862841121864739628051659236977858389758164815661701726937298198683313452301732056801506844708926020222228874702266074098685183928188368574811973708522060922846901085761943458400261284025663065889292720647213869537966005063210008998689627689264382289389653126908727365248126639475708181689974440321280830987952558241724707927458477681012572414315983102464370302569179199038853731042575892860673771088186974188785740831878566360559400429501420108665714217717871880068596895795796724922692088316308031554956765423959827610476382240090571913364109392144575799861904895751259787893002233323518571918611392666922676715362919929070688414947139383454764449047431493868196821562005347726412591212692221344954681620037576890684336698222769108719326461013664684290465391831155417490376794801036382001777227539421989009055692952035415230976295274294443102003900292957185481885996436460870028906573121765042013574919601321659652554328622320494087299874614445781262723915896728019067905350151321261840999925834088725124823877198587732372125146259093549680541444627371747661582514057087918688092893520718811257855168208911775483462914620736067488523561088886582935546722927681392169434279632554846219425589899834081966550203095382941956465237793893675494498413452237326667495003345827741001238261022723916799195093987901176468741369302231233347377778963684689515362959234263033441220471362055440218332147061166981436303098048654521579565255398855782562436657427340803910221570298428823657336717314694230023594653686220449062063726013672954931397172584066256936480179805627190180036742534468874630045757601520675100686632294898784111179358775476009430977525698412835106333802426851260744523234207937498006248904555750437873869936566234114749702448261911093038190955467684249617585823616537314298652405604723382704247498839017074714429707007128649935287386952314108971592752821327748922634369186279863278381922810318359793974492299558444776775401105008293938280759545189316985031738135935287228991052371813406802924648034710128677635370900046590016154239815720059658540464314254723857312122341253230141750389745328704844758179633309217651618165806257686286576768840926902432237249092682364068020475756667169122863062467843846233814154355354563334535826726420126269354644124780638651434870742864868550753036528389276022705662278592154905375755840367943642457890165602972804439994861251043345888551036069638040871503910278970285980725592356174626766127781672405583636742850385735753037290885944680114062421525156711416539234113821646938861346086117750444221211782350402586563471129671779235035217730187768905098445366962520707420858349867861455477360439406158285078096478204035232700453042090058495010600170728085777340895802813786220128266074076916898660538625112891695718645111727989988103056158990198635338751104437026328755294923696321352989645672823075945097064372638999700609120521332948542905647389533679948930369330960951995518117230184900990516167655446865987667101451128468162767895226258422290547594052414103563428913345148588165711874992499771405529474784276653648056370239595663985468707408211326263763748174031637049353497086639134005721958431550917592339432334821881972725445056236325084890877568597045854008119686643859547854202959393564854682561118497809278492390227965827717341775164790307188299186316042946089579324178631223663648161006061164398119181683020161481162096816978947747812454601171343789107823994670510524663236603454593202332979878851283568579896109015603869184346533938080656286578187520472819102207149693909092126302050826511758695869956490697097633333062319476718381027781903204086523354404946062712934927174409406329425059873308235792768829676975103607762242834503687442797994016705133530079037198246365934198274126927972291326130532529258477102009954398701282828953674809900673064693852855109636185646721034050389758205254371519889237049025397471905023219646790445633669201324874833999683353205697531078241490458667477648468160278921210684261941168031150718317093077022650119943659022989709030836039179833666014630607869082909459216731192306896456574101122380582161252551999323473649279815848302217060091016134261687391369521686400874376395957842909119193828907372144658558192484313630543830295506416130434667892419330633692773049636532017741802744447077607907269317226683457598685979777263143148037669881031082339745896044163201779157811796073806979083148513460945031337511437502810439223249381100583973858726393052502415249759274929483484281942617098354777678201010274411022836525705040985358489098331419896424918093566163461399933365178646875512617563132440019062404023122726216359096022241478733174252517366680491876493679173569518991328552285689569566836120986850002646071481031407243335883820599578648556383870131678599947470985882396324132722728606533950045620580106734064189425342969327185357170978794333237815395023026753480633739490698360234022705441391219602027162552477426245207802679972782859858675898086250888105359395285009419350132195527724458450429948898535116148302640965767456777560356402098488784721866533084538653479650651444116247028667780642557991634937155841192266404581217672907205581465507848181719902810753270225287651075036955912538528871292555529166937848274671114846936395740068210605459464044570165067683260654477828424413788063060591996198037470308507646056334662355388836926095303313984816819423093828717841642198423889856549599602387433020179155731007048216394002738263230058508684748071691625546334826273488114683672969983561309504389947693206808715007018791805228684027689843499335297274737432253764086803318458904599294685554792257136780626064925350411757242936802442902301335358839256882541633221380737966847585352814880757706139356682794234931193101922959337601468980791256136059621001332940657145499142514356993405125656031207955527920169355693321768569995639832959640378854682814424308911315728629445018692920133696823958285532024650078680534943021772343401663196813305260147072914956719795003494140540595659777518376650778425771013015993938768418104557931576023724882556636488320672740161778980685310096815108866149449861226751712165102303771409729216978232114428622067384129395315068845428290290372107554927151246863722661083287781801884639958430741673704614071948075489583492244652435582590613733571965581156289545633558122859832140159579723323329040453224213427189247550627712096165891167217063247175170156306040319829695982357064481548751596782884941905455213091391785704515352430881263307087354117129418751162258069176342865198173409085239692548739316940403269357302372499891753547846186770066782604489744109887942956655440832712454368570180646889031643721394514763833784558924419322800610406884699128975118873523007013950580903508123756516720203933309979195339740223237869752894877629584056550517742656390039342858428077760541650499123841944198525186261519553529360302786190541459179202399051396207896350850052317983484849406788349575490740512322261513685669962014520358620847547382832914321430483225899727438213016737310702487423452252076335579434802127513813644482015349374692216141743598343556482791072674940816923739579856996388852831925575478473765212709990692296058980119246422943652004453006365742104829969977704127516431454721640941191286442788039492272300687942970344898959194066245743887938957538954522614449789210453890051540576732584006920695121961312030632742723050039626283301032650836864314792093732277218644152256755254786005028671166437974480600085199198218320732160953267007795030807768878028320539964503531343528975887674936047595602673798945625121077939986981911806235674442073937382059884556640313905468992197890429184140311106764679219804338200862560300306133321649437909782381508692819213713685897551988991211756419187371918793900825462692490557528200370317232645772597258502226061432796471828975931074404181979063782986054702445225745301025044565467389735938691404011683003427505484315072576765362019680219692669962121184583667572587319795991690861522172827543453755621092791277717120656588810770490687687146959987772592369902418849505951172642406938107170226805298383685413446842980671778785135417678375427078203585933665576201402610220588031561555508317924949219466443153472080181243847228023329531124470980712592942423105041477676094176473856738424495651165432513644993081093828579062580818783957833892132997500188264208007662972906294838317575860382292185714273099484958802771099962229249796474895123153596003547204655967042922136503054152307929104466149392192242170174308308342945049678104598384169242275121847552503620640425024946816065747484489903291367230678938321679792726934378878475565122641085056356048598365366829894807776093606838490457159675403151525635736171121456691261454247746266197350178415602944537283160999933252676538944942080358845919074148659204174768757286891853278735895605557301737998632264213124020758969797776626622532384315221729368856832054457027522197560682426825723754772543105652211397018671234616844409397413518775091116675979180042319790404973158367535661146474177802139976666516968062689168987452440002716054409276704983988644211919594046375701954279242425869374967366584365667307214561710270066675993873549189682325563653879721826888525861716889734394576373614214197333209233785135522943849147560388821470019618402819501948165487659400972168384680314262639516231464448984044929399664181898632023711971003859905181263492869168300665420735864471332790973269227824813553038617368982796714626649231238341689977997363019966597079746444928051996832046466695931824322234049841318879642426631283247393514965700008128916174140391418550422526744144001007043276245314910707034324893067293082335610449138264489844914798459359882726557116478533603180070194386393388111529084565508932460950893133312477450001060145213596034316677298439531916936166058035109236631796276593233499889662738713581297280969391789041339544404509747718010619768387219971387151299484947339990176202971276012250517790156991185273600822935523787750592781768834804919052347840200390283006721370164566209811901243042338280216845122640207929912699605682412203979088576181469787139918819126236969778785604746573361103409816167206148071011883167781165317799963486419556179969257739252141798891930874922304495233730523669094136001432796305287988757870335368238735615134203545688700790324512313348306347719961201916128072966256989070569207113712303102817401345099097264142510225265125534813726255138120120460193427437390189361788782501426910030047516786703770032550685736303823901484860374284409033592497946615702578954687629658004219155395863623325852767436139786086849642431966709889019891444484345344525972151248491267863662523430800311041275446886273071628619746557015758176668678189344271108715905361129658100501792368876629256178191361710468647738720055429250144079959090006236453637503863253512487113626735103114834144456238571176135424715976685778710598587376230384668868416953082957656336203083820999014703906437438265290054969762295444630637145265788637606157430526323383189444710291991583341948046942467440978223202130146740607312592066056427660661139697903591449457759753319544009457365832624795296101528006561484857567243560139009751640490807911852568257743982307652409133105340532938084817520674342971674827250796212055276507576135805352805007303379557324097633861433545415119203923541025216447055693069723412217976475877027327145444134525582895257210387658862086669986413490216875896691099074605672275286083827964817503570477884652460508166037431323081940478155862778152797571536893899275157200966070219375629073428547481273309048008110143241772631740740773787925015553382889181310826926323000929328905054944543164069055262928561087349507555456508234186690197841927247653511190977328498760010793905863230636259038024103177486219562791901375608035029198091449641951643134690286036986688936178143870901735021640502163040336803597348894783668268399605412631592277898690890729295658841027140101487326979453755619799198067475722873144683989262638357379644024393537957518044519813305429694034238375702454420531305052192642351317678172614924483680107970312059707061086463900784969717504284642895606952856025907918509005991836380120448825925581334973820462147628987490090077976718753540243700162405164815255506640291608886334490411063756023606301645035018946429876182697918998861713651461448026410540880730576322827554646982441128334802907148601214886369040269934986238702666008574425564341394702824188154401210930929839985497788723212802192763128313722472952508143243225652097300799632973026061756391659529409729424825493734842744064351679546096682616336367635887712571845906304915195960404161047717977790163240414954949637228674207493296180119157741973884749363824883609241071017593828437499433080886443490447006666408018223964673398099115895541468334260373615225599857505208019933727692508424900619843913638529996908825217097076731909257190974811363044385816499816452910923060837584631943511549451880791970380588895333740493329039831446887827337658470359344721632697789560194631551957794601501150753079262535722045788250485334312790932877281600327834695182513515610425093898630316691173729244598627353369045022428502826559053249542571463301289214282407685189704786761402953488708196545276939284944010083301189026826511219682710588031710023759020376902253143982159710889366382640985673518842727793228202628051141784858035404218474950330128782763238250566463467560574595428042102196730249043024123941063886304835117900190028627222668805418908765496436433183877145224456708171119772682388408071408623221540135413787468062465786912362653187125309114221091528531993450866877476452552251500810542524153476719293228593864890597029502808938430797738446851817540229484726857996091854572095848189087300669251917128319708351892292386558594193120716783642949991538778207898563211111655026983438789625771892506963483241129896120853288027609776975297084488526654617359108501328184275527147150818583371650838989263846364384201417311877316822975292874586471386238780949665140524284855074650971229901573384188102713970928446520329101221660362352363378770277494632012690209226970725626261884098027017363552531846719891524601476463844867389808480429623986564154297520514770475601115470238324730369683011151177317832348581613023329684785208287253926450734035378444405578488486935911049625570356810616729452796738429611197939170862966559894818689256644622203158090070551124818605437393879221589814684180358366400878904969466428200717967941672373815036693302948862508311126185511815294124887061905641333913953137494068819054099112181650875368089733751276684315780889107929426656182848491944900669950626028680677892798935606942311578252244793029800960804494313960681893280221237005649177241742912652696990521094058532188778599670882699696319985303590233418547825497054487080874967554405383085289670127415485076122380480383627128516346775660032330318500533482423109746340910653210096527044998101536229896568930212122270288564998398157548957220959802787997120928476864379986088637353398187537098634376132092482241302215413593896329515789734349094545851818490473072228648475213760428267240436416120237264310174366353864985212873232948471509060044127138185539418862715869780805497329596441366312186160356685594967830607867181626239284000777397891197114852154743350216160050061131689470990518893862199323709160727596588753476054411853205814545707214545349207855642567968766791483089008321768026013601460833388977263159907272397681452923915457110333088742705331758554608953050903762753640791103195140698319798138867866083960432237272450992058513283002511765422098655548265996903022042994417020373346642519838154408224180307752059042432339872133964513646054425171201505030080827570215759860018709726823268563692807066961534856194538850557939411252182563399550708187927687540131038616248341492181426946065026037999023137911589329022568877847289662702663619798201720266626627791066191390638478605035506554767065283607499274463435205752926243860857160842191348609936429685191955985037611825371785608276587609802322551796208171339210543363221999594320044550937793742993496816961967393948410471008246717456739537286443437985492358105604525519420189274180798612136375230215413000773716347004883860816711835396425949722003949335702334402896147446666088376791029550528560889242305403098062223782929601085900917292699361838387211864274024603547156211392649408368689042166118502406362100553293786178620397764531728195780091858123949888822865721899891291256835913669282765258594513568548134376295675690078962427620602550633310332193990033686562680654711431313398243609645647220780151642348174298493093494281930004260830693417118132861243737858807524930171901820203589143689127032847770514655266865708024526080510683757366827489856195588868908599162301906891509007842084518352979293402405124204610029079075539765093507676726466205260643804799885140386543834972035277221615777349951232418436491523634048055695604515400505058621839291102040946233338482309217445256581114936355952031021128194598693389925402841861239714326959571258742950103844950752858968208490722611489450765189365911837491030659802081557946877411006222874772117812071049992738368753607997179338741399790624804880839845920267741345677208997758483320185511056766153797660030641510643005992779586686272285150275307113711844692690245716617965860489335424521466452807182249567511725325432108506272122674407245148965623395905506736544783321776911897937858512532617581089425361179180012703494431596930550079540802499613025000992321092834530972685957390521521626103176929026898837166202774797559455059838545737060504145944127206641623853625383028949135005386926046104250694240053477259216009808977720529408355874878361053918085217741851564047621296452169137713466558402310731496137095985859123899234599963176571129473084659122407532457442285708382703623453177082079517505375400490309956807864983400215185112074677492049843535944358609014052639219554121863930860400949852265327447872164197550507194016278911251602400351705180435417432001907994294578881109253495575831700292564052817744253021139736537922023028420295664954128709124123084717077792154556477934937468952344391999320489247395263216613931024591340884574503237230210420145345411701103867612017197838356902523166392022317874008248639219417618535284310940885473085634492440168430051252061318733569076099543532085323833296088513063338200675297629123943296430094331767444152838719794551034014860068179531887435945233203737307968607412797848920055474866863369352217695683475625193662524371019201626797052347719554771986007153324874001052677559865258756513696441713840554582376320061996652195792890016563490550885467206949855453629278314055949710928529992932037884976335426444867102689080435089632557319345207869423208851343313176830520325174108430951827453256602753284704873757628200228839399105769278890859803123929746404510721285533175106679867025929601150648752004525352230925064129997256835374428151442163835522805833200469347332100524989396989889474144901950802299496857551898535299952523544720172632139800927841026438125430064113904595158203478642135940512212836489171119478345822429705086780879522975454232559114443498218137859264112701668838176839594780265022874272100381622041361467321768568962095326250235113712177803053443990619630150368242835119430408341987827848094491151486871150203121986410117680820501726399977704549851200725928839292003914028684299387258856119652786999922347859483384381593775982154372790227056933605290556999332004711050442293911845334054272473065614063686963825890333491140072086600636290838025507943972548522084336521469722028402587369663216819859843793802110778151839054463730802357324116914589482643627272353665655860703625238186765847070842156358090537438974216765099447979492552076125884178796065502290452215401692512418042995717574869836892247591032727050452063703071247431777547444484536201107977160960627836131043453995840729975228128252657414482702696318478960981757423944689975832185783143334011932470368658637842326990384584589212523985881088895704216312858500575060877706636937614387413485666567852495810965548097090855084768984106959929088479014613334991429243345877401182947268894614391090195844901605796034970449300589814346954377853944750853178865246506468142132516415968357929724850624491157874698722156421530259665349239273739769192788700650517294390651714816975130921542223412539681078744783619928259754058974730533397186098014551950148821723009752652570379549701794575424865068102198659517887581044788646687478710778803989783516586375228759322044820482054956566995872063828278715751678864311106408087285085971112579345359312570808844889228337283757917239346400018959144442693130268258581129096106980629732162583438233638338054811005272016361836958494158060467094650359514824193212648284928414488965273510054697921311286148107794404680047556870768122492535467240630549455736892403219709028653445062058014158164621604383537938553889244576049176784822825149304405107856424343232173015949532508462909991176991780299108157345629498069667465432363354187376694287067766599804424062753708451423309490019567388215206920117638577371999649184096200575756242364051179392591243567010194055740299923658070953522587157072804529504050295438345942320893181677579224165347955942303658727223880903709647234610937009945493580505467688281995302528348915518937852613830658825787582622419085623826591010149538320225670992093071918250263038949808806073795810124530804263947985042189041197812176443494679887527352976576098356132249518798597054543702965938219085225006825983966347732172784682240167298822188583449240315068801742857656914803324408936487954506269631504787264635854256018207149235999389759282466917561443966065957990214732340138485824975297922093126036791189488981431095282820382483727667605689270439883329293398521366279618533311406183240255689372817922752597804835538818856144178676881950889131764592488833398933679308859845442701281944057063201734362217804004425621571041407525875261057965868072058807461759014561985723203080970300946009435150777884698834806177236811997106402720687861902069561290667064810917273220605239017916325694335974486122240278653223069300598360435104087461110833342874991514362569200522788820484111362285587017275903916407658845559416628298092126285181760915221520407361977386376971555094911689311204020415541285053371434354476340309042623860816467200197211781582933955870067499957828066964383383924111041267018634393260438985527613823267846460153576167846749388594676001805327122594456070233346022008976127508458125634951515699509579535342561440831670921335951428294239443127143424770397757430798810064253935585680658476018817420406110254957415381938299954233769480926803210769839931094870325138017181923998422755285132466378173643227185496191455880921826486687872151454873770301030264333435913586974629925671364007044757039592223282822529909715136837039201110194983743560346734877165777477730012956818465754582761681852305168041550164364541251610265428377030440010735347931351918601522388225330063823196130247590680217951313607390095532414812671748130953103263751895653709813386395735008291341698135064759351663785621607741476815021179810387107722614892417695936935414274776917628279071351851885149492817107549558471854770773462818637271787077143721720316148534851448116401668031500196768233184524105563071516481705225654295314153562932797749188916568265300372754413505172721614054769174274338316427014930172008381537335662032630585524328141186097552627874088064276521247920493717562234214313354525582579298613741001871436254487377493159457572847642241455090860090065134089033584635592019095582751334784290799762955268236381351160530817747935651729849128183547320313150732761557685202384493295154092606269464595061099699838302681879015495673661134941818977912121274490818735881626477081318651308967698763265004698499431550354237903061979800132844203254185255381124840300906426401121020487367926829587256704058599843599053219570813125230080426840598389999216309427848475558973230136709525051452507001182801143283865742331739231828413344482883518330118391072333596711576685285946757763821345668282186595584758532603189194875818762735734379430915429383995031014039131619016927131323456923722330399599268319272135008565242492739345379643163562242251173579103149706993510416659746573955849731421682281044603817652705030198588592204808919689535449604474107846789528951219047173917792132875563991578025745055195905420134016940333625668449721866760955665776094366823264964594350800969191736439265412646000544750039369577093742652606818797391808160157573058273290385258577392006745400273657522544290323190019116167402619347387021456310617580400332110999688962868388731293135985424037018646024710779600372107651377495740771362466558682331824586151931718085293818841695656155509722269832117241165679682040808795956898886939554218564068252057680934701990414592249898378430007406570707132108077264392531202322982180145939543259631288006662391278524582248736588054711623893319251026969875621016751720726937459132327685808397994680453104521824749891341613626427730633010640100203121343819356520676811850607202011744902668498887408005919456001086281508594997975704900583950430099237924975960774021532912142939495700853661278896332103936703374381106139440808402888020448368686189611805055193227008521304395437348578677787304333699032096829522110549197559473251484353041100862129208504251654883800073692074376459610767949008521720715582243236442681654133307650332829482977637039007353640495497787613230612865177540565633908744243721300733748585466999422494191772005369754969830952646110184691064235756341945589022516683384993594567722428175364396535600973388444850234129987452668537622032977948166801084421752044650207599505109130364543523463321144413895638112947300146384671359452957535226535641120679841029886223920309121792313266354535957120809740805459502120239795732484295264826166719647728044526645563374367450156809413079248609332835565995570339269836974930871203867835286817773344267248343997837457817595756065831079926291683041643223068767011176705390713515200327278204696699056915775944476979613285306180598109593054253574530443431081841194697041568555038520602130748423379284625738172107300924917893100450105855790816612534523549916957449741621778483887587011526894392011909659871436515203520013306839111330850953826769168560732260367997709041080214110091539813681657367748016443080449791460341501425828465772300231123841264517063372118041999989875583211435466831168963141921854834311242647866971894742957312160531625979456681952784452406634261290074181265802970339856159730991556875293036695235313850473391849069307861850516005635987369710113306568746002140749236406646021204888637665619796407074335046039429617264060495252696961258718297747205456394985522407690194711538718807680087405046241686080454510324013460039413952291856359711596650928367836232015803870661587704895146180887467998744875822032389474556177362426734991778700530957274136821859439779242582381257696970349623602141287510095311719540550137839263700445053872098498321429235726798417953627651548743866091401994637596571828122256087348364616352670245125876524214493240218691462654147768249489625377778006218961776651958036521547107916734721102362040272059592824682093087836364026842110570452303200051609527463592341525010383929957820919775777559857942656036509576777584838243444460523213907268794335006200064362763312506291318753369708829574901468231210022249571228937510338228361096349858489616607306803511981109318957499047684359082740049712533393356574941478359331621908277368443401127495000482429288677095904473894998842249467144963762656041691466448249865542591660094225741283258140464771672301504441164423403043983836045635394832998199047561181743288528168338243463952958614118705139749216016504564259622071949575666462296772924173270528911613979316273526958806288297894933504768214176013780392380348529056419381963386384547645051164701061716187177806382475969877325525395526635157457345715503680076491368088924300936022552887159516472443920963174565768087595701413084005883795333981790309027071856258199671267669055559955914145129030264459853591747030281661767622467632463872588200328373494074116926969174596603669831272723388843561537499814777081164659308503761152930655929082948831891304358922311828850391926581038564158898194129477728069832633686134958536901310812118286171065309232030708735778793772049706668745304120950509609256764886609998303421497661262853859996452840368720466366250075844335469472290802117281721513300215784610635732645873092070892542475209230205191701471364437015351020162092812297284996512533785717978959500918411080810518959609055125324194352665402540815849378272826897375069871398111159352123298962296353389394175196418260735356691537249171637899941259501696034559951409265076445620290190419116045678152708291717383808208847009518134804171034155852015600774141172161296180644464487312589129784140560974217344048936737463447093799314569808600111133724106132238431633387243704586139496877781081486986635347959934803200917524763290314533354310818842182778403436338058529233482088600192822876143506032449875928544578635507607372519859733978190212681261813391783463812661662902640633527319940444015010965733880018873585506184656519837270510378416547440333241791482827572479952163204846985389022592538003899430195964176217790439719023374567003462589747083097438485801988462437160607146288883611348390414824797015396736985936425326375512834705519624337834383664168300562333038001733762615962372492895713038601721092955520514625866840306724663910491061444895717498201710636856718871092690217533110471995433451115039175005913345509217218185100159028765502834355881404718058869060122515633489034301085082262266116419462937013345153451142544579471577870292197592141531039032034916208770918517584371297800206026336841238171793229322867330565262126568667168156881291324995392872012378791414722869358489261977447059571281260345446874184962582459708268233554236674506462858706520812201271012615756011297151348698364188164445230240995395476698408659504255613229158721831774393589733104477939337636087279484741400872476201938809535332436166131685953076692531425834249083801207437786893159285160215658086021277069386711016637983068141048671908267800827830103212669908189259877148231203720864121366756375372261844248726905023947233975023068498131504705311976543334039184898472004543240332573586780585686819305533371797852000123583613057056336967367106565083364844689599515940150329477214398737237989449904575762853691697135305254388552004371515761409594294119898657965472876059332310734584880934590257442897810365907435321920977210624416409829725602303637636111841741679947059421058549189966240530826258464221172882369669737125394344919225690861457938807202191164310028660134559779936364700660149810663267408047906227422631242775680302566174118855693658858529696521453659456931217124742168228499445685281939676065650573850112890739914773275614541051420122633210628680681950951938075686844807093940840438349752205284893700855709138431403522397270745349300955981412205960024040471596269476048260810039483626791985887057678520994167627605443190645907821524636610636761335502606648808212727482108696280628979234202946693931937238282629450284120827050419704875460224517679201297669190258428143418666689749813589880486203804138735000040154383725565535940684989704293496537496395028454445438216121636819782075124868208766402532739851952796592737337303228287563415329038467604034054226652847683764979867120070747640763604671614324573176493508704411807209474364525969006847209298257905840821148568591087517304527064513831388001043689020728815421349767562428882078529630613869588708511821660312741564597275086567645732940380219909116810547291636954265781179208964385953237520808685547385952616453787919565432592039199144874734641166816288146973346460619234948926507297942718665152910930707122505702362861671509338686823040756559694178387996752096645651223206286654707358871795408232771581073409935106412661101262241487914109808402380694050268216710475250949377149491679473164391876795428094542953981722289346390595123123896148754654355768128922388591185399830658306755629584437048858348504960410757665979580809499421239753474682112198550237552923911925017470750091619286115457711295233038683774760837923316739961659169889480803888342001785463989043411536077476589645541393304356812957394684148710467588673191870393154890205295180304818024211373923141185955806085652490138774757832094086039384758671525314206680276675600101461324411803655935730029053086694115515211085931153684190361105695124920000854665643800599208764860186591023210520088412037024604735782820151887578270617513215857807385465086475811320163827780708294426574938151564391728453390977273786600655424449537258014921344369115454700046374573258907341095956992272308981904804742870247622729988123287860548408370949966829966185353942758999342070295094351732983259949534262494407710865033008854434563223184570010450054638286803953085492388037365922054658446973488451107273287674145024655473311471320238151449126840048540489682560817408382072059831187764834157824500072751202073353956710733783171757561277711900944914462535765835129996223515123624984301851526838397965417746084516208450262382606926986317177847857591893494519468277144120417560148639745847848122953280881164649997100454513714650119576405428036703374779820491356006722251210513490742553512475373854065946115947778673206571387429986276836365652162683909451843427831564849830235791229599860942233050739243372472444141080629166099213140755458199852021036899080930732158989599235770024428328485612967633559378685058093776351703171693889734562500923552184141526824034383353295962555533670113571891655377821555844692444644151403707602699526481940818040172960362100249591672617206136414988127751463085375666558042159120104869582456955231350492247245543663713614390560897441492756031554533290531541295440325572747703041323903744101630760014631135715316269936528610694983739407660411389490922450092538915884953103251033947926949760157986549986817178356562390960191322920903347519062980469138296309318754239336028873629678765550252544246572157294928375358918256881675271899695597669685594500402222224409062111344230372441018967504724845256204306363931271378040913208564581609163594596715558904070487846390913290174816953370371036057278244802873294300727955170978855693273652595787290809079079436337411695014698236866077360071451811993515056022561069408224087379413128567218263305052891969886798847944399988441764850165821076327285489402914199601325653047441020765376835519510222783831751267151548947499623953854201482435258717368058612327690581612576494223485908923618210863102866371510941874448006967365628085492089511577409215021520038476243777351391343621089170288829902585289590248829237540214692164242382248999281500803308408175802219091709973847526099337954850142837285198609876730428223854042384420595637197731876971717396545991251480359667125421111019962398882737505561094912221273757106029399242651691162259985798216594214195051595245012688304517905538233801455957901763922071208613779533496935569192996210916913930335248274824183139580551354753965015350011732286667871823985467934753111234102672604261999454485368305207645741335994472225423099497782948126669875802513605986993441667004053683139463840140638893523672497207472958525189745420902609732678381154442984137082170305089853292515299683277310741694277783261697663930698766045242323992835018274812217610689023577941578874564802008254484956003838143146740056686539270175398873305215126927038627183382852943408965755215419266693247395151332924841333880800054553720937922601062437751454490674135319203526305753040285447988994599658558948758288691064090183386525051630079576282226884392680679530441859314453963848783929362605571065771473139285754736294723597990516357703384485149810011024909548581594536486362644791588137494816583386498021433956757264487429550816445569738352328014377807826233091794131797738479299055647509465906501016802439171385899303196260327621573467255630258734251019809913661640854333410454865624071092457203640287399155633698059210125652545011035387921964781948317051106125079300039374887699117156771856522903720972494389727904961078286446829567833604215885139788873891687091646157972372500817128845778280060175560746551468650489809508987898441170730023719091563331191273241884056283742630079721088722507544195506346655719000153221074950178760776079491533792556162563994164389989706488000865483039596665250484354717919736814191385192171583100761486938435664238346300544133607744043539744654581477529839993314171783567449318508096526953259299521262878484943075852541335815702420386132751065424336150363395950706381839556203865859750701985136488390213192142397571178170804280097716191554508836848150223238466697820058387222611162161210566091963496485045248411545561606160560166635874435094351980453394406003108414839772180426940906608098216530188241541462121717031340295403257526835690119077758759039659311378922652000953966048569763253171663880101453611325368486212745771685539360158915249410786582842816436339155402119108537603320069758001166867311156460488467015047645194734788969143293615317656915830811804267789621628226318636985199309454987752862878281406966232748396403840944379748745622125811987906174778667011344832880105870740775226661453258540593441649462304056981689657799861271153608567189137667310173741306741163819547850758023178671781738269673001010913717920504838440873995192988285070582316456725314847501039390141509103214659373705544971434465566150066372459276566478048303940645694808131131915687869494990357388395517218721658410827284796690144577300752777470688095273946645082839207371430581033427257219038967426359599799165771341552541341645289162083209529243729167318096875373864859523611727827927268399860028760859963285641972910383853552663024854006860212912668665221667919377933545618069050684133335169793777846449149462541816085297979054786412864506619176696167233152161910370815198151728717735972649629325662492855497383791509772359446592577890008794845250225220558090568721676858818632031283115909608378354163719986558061746764378896766933759304890830862297987138012811847865589016491414824665944411541454522788831386557214213709572656896625070424291700517513830338127921613868209028122267441710846389262039423629555995156249949416152086716895315103023230747477471775847502800608182195625021021386242809312143183631300104273850219779861181120017247925310659226348239531765509315982280085207397590982590744058879724179037081817621456699833624398335056604449194786326384916211971625149727844563799629954687943345049363791925967117808303041244417120123634532397913126056064186267390669676814039639234271951092591049207612180631842521123294597707215690762498790619593057009962535960053084745382674310393096684763210658396855455105707208532681325002287013771861449723408184786871990819791106219239564032884239903326001502338197784052556941509027972803547695001954371436135093843800477330848210140321558603182971053486401550784867936286770683906243191789700812093419094591956079066301262677209617741013523484708131610208518304229768045990581344211564542221322078883452163322650753070440428753882399995839786041625238212502395749947011703753717164928737598827602175341315159909887705716973224327647986691683152884958481983888105443249312862097781571897721763049596658250227361986258636349884230932215828570364376712810548515990063210474776876065617094229473151279092517253814858472835259587933460649263157961186833596754471712758981984000990787188352548017754808827466676541945959008753044916144945190217963070656995129128094654492099449193786380012377801467100892644444379640949554470996113560438348508811914989147532886604206791796232137076070829758695919979232663271299842799215958020807851226504911642149864175215139078822521132549128485169549762305784396786471103255300851126974280366067461573631459239563880281131731571983607245543898616611585719299715192506973900001821559702564047210465659729274553027804828101692614482826595193259627515321901510635387460547555620781888223218087341640109270536671255314371086363753601365082067228536563766903914151385592633090934659073954770486631706185610962890196821337734466104613370013666832664605513938075356172496487200945123980384692807794300899875683340722352451596619036910856935968709237528579779470317844391697137633424236133199437201737275276561532350452582890591723232496576437931170352834832827186448286220628715669880893719169627177847011282462853175276118032663434309912654160158320142013012369993024787619511216454695886831072003337937448417250467385940517325916607681106858163599978152899787099305219261435210815626475063575372416877472130372589281296658521084475095746939660288366613703695922980058172530892601606793837462762388967485065074773402679076766057278206853983061572443762001888873722934143737716826259187825309779555699045015048211025264946287949111103253921108286695614043170035246983989895752708381562012538068187280594943992128231429554108649617546365316473033181517958524229371972178705289833936356110404179701773698211070970947601205139306153183082775339216009086380924402928823265201280133414187032816222614642332049382852109892078083839493231949647785291786112829373993862803117710278879175176886902952021380374928167358781372234853530851344919381086530421886981406876231167230593227100858673174190910578616097973100666379921596408661113774520274591974083924017520118587096351653465275039607806402730724568881282363193241399264837934585679315366597016644592538240714811695165725068012651159915563770734227839495510425450976857794911905017221843365978475582804592544687526209459847192404321578399450769350525489872836630517831813036991645481404505420682655775561457835047736371843878368682451062972190123314532905173671823826852214400850745231743327893411643043262738735204530248951466567709139683598549950137764999327241491109719475631565862253201079423208345015672078676501664556027371583226063782601799774594740487855051744271419356143658548590430427238115707368155581996229573516355075272579047995366490145218820658642326532103349147406035926708730099894918623675225176176626723265153661677311790502530022208117145762244143138875018888630464889129560952992706032532752684048737565016573820774924195038495414362927464366012832457166084572119681141381713328155234055088253090958800023740626735468282344785753485371660806315853499329685559599454734532551617420999926006985045179152681515316351748928688479397034290817289845514334011736832503875849283003051356275044962244415364335653679205693958747994038180683860900087212746825866422800930152667784901910122263256380906542177038477924708557537027173043560086940038837616113041451865591183001424428747184087948869730580030229860715351049959205835137020119714359601359235029528789073139273147798658532076317343471607614202721714299185807721337914748619058330296939467853112464835850158231500711803624923800304487921610969954889275443644269438481614713211167283482357471354141931888603627798308707006255469790644000921047671592070792342200089571101971862755509204496469472952253458534457732392443934565738345627446999547679086038357750786982765580813361104837804187150582116694594731322065684454482116761043821913826231916817017138733345670644343903295338906839391901118006116028542977592246286194095050425530732749794132964028925150945295374365766807663244276613248726265874010475573662628906109113525361774900373918477512108273492514521992509993695617270186085962611782607451966563284552492490344048635398489310929388200245157044806776401425199586872612658326440507325513966797526903637703199844296691283352226354567582344130644523527189276346380947848804570368150228131344629082433691484972991074548588763264550894651148252500557096858175543464471728275466396035967691470319879171934647360612380320477462126753279063540732248658813791390806400944405546632569737777717030923781719741220786154263575154333122960301494223594720306090305960988704597229062402006036320129468223939846327222606169306516128157557059206448906856383565872651157136281389307553674119091483152655910381074208988485380716988373247448575257298134267398890230839868788635082165304759637284862459393795061307849319727057396325449447915676969334003721657775740013361753052242022029328036313410430741810243727740002951330304740818366154941109104023017757864374636526883571150859914712951550030750066246165175143372059438031931135439569056376731390272476938859700453053207386556199216127060587525436927839078275169923901409761217121389619560716061906658870013861731668066620527986169231853322045402817521118692372529942366320568333371659921039568177527773703544966701052298473023378493586637117411241631575252319818252569597513208045709426622627442105096148209108593296834802170681777619368481544418410865197749111035183161550227880349879677201629790594613909002235951868949722721994329797663037264871301407702110506309328914757673348445193635558905316866593177366769858269933084069605766481434270370192165793797880231058725772470814306525059412510211800515240338829271444994784871926489957185386153618825901621707201900036943621313668354981415137326330732463474017889373617221222212411972847785521144517306482619698926717351295738644794602233022175802069966025257731168087861908565651794134370284339367572340726565682214609827046579849513010369812998460632854239398531218731614926303595291042427080110232749166345595628819063717090307321200815640193725066189522041377294219697475902085660785342001082665035175270324891549878244958369241689208514845831293719195732927905821711687459319231415919073854318571255335462411302974434183234034972072591945118355663339070075208858623346367159874348893785050169658085127990346984334269698527601092386909793280983278829307908198243162059497963204079719412473860328787968080041778578441681579596161944187897271127954127095029794206876169365022345889491929697871982889770939115575101897444168081190432484492181796542270830041386744196371719379411948704165924620153637765590901238176445963734345244127909394602726692028498576133231033371425679454982047335242122804141666325715233547038650069611501929222303992750231876841589091635101463203430356535776463239243744178797971863970324367865309113514553998328366938984543393464207713344214736874679172294665581121255171546378987752052674282895848318087754679329483137469090933998961417310864671931890788101266211207642148869189824904532379509309456945840301880868907934850832739475741818866011576890569972267924751730489148809140018463313409287059575387084411421043093945496349874012812378094976859964286313591135744801537791808220053258431893459627856959408359407758580195669321150152938200739215491115269892383841794361733076153077138701780291061700276773577091859087293719427539038197995419976216822034142903341351448023362026599642426244744025264477035366741841444895956591409957370521657834932332081431140338678558185159367580712880652127807364776724648723541719426749369375934671931352125951137156550549034680512982302968814596354415606350722096732747265102249977322772489228463627627016076255342529639481069879069550964887911527230157516242516136682843026766953140724699914732203554296019466723406075053307765316886748565254229506600580253954669180675939396103080815498071469442543761239514953233387227490063807761313385265264631454077766686480788863193709782170436139203576380212673071366623911769083698062822758829444663765911472961643641133186706680253347112869094559381133852951609886937571153347821925465712306208496581575655107460350125589900463163746673352096871929618011914761149369211795890889527366142617977501456287208108418007142917457212067066115556976162550015243807564150984519094111563940085010538334978784939071944530686060816427344959935821667440696318976617090849565410341135480507019041810695220192577725889649298057743015061806980762069018115459690632917617935732916230463171338365452104554098869878974522122975473366130465069575437821548376394833700862559082868494474403130448118593759312448475588139049168460370112846960274884108630997247114789955970852477606685834460851650400035191531844639720707809756044528048381585591116585210470226147433146506409697723313579759254677239491109782831528850958163985634448266915119925294958574234612136632439031498504768468793829927067484156680294771837348468260117730354446797794161732675099958389948158070065159828663996149176405848795764957879320081564895101117017676103694064235250935931883370742949365229772297617183006862022833101154920459139550707324594949289129011946791998320710565152056235289780923441158888463015802145721752271942501253211135100582177211508463389046226192694126205888677498912873062346792815666181104194560939405212125889043644842706142558602561031639370135718829620277895766060635364733587630306947932319406677985617176501728610422395590927469240149707245516560617156914902408524629083543950358217921182694451711200439282458678675367856989876590312214216472241117022073375901062936428775244978186821281857684005372037112700838027594470012296832045228712780360636854793611710070190857034660227561537747790562535489672353159752004505277565726548873966281212445806092160141019423979365377466424127629817798543281171541382527173471183616785534378683262784991975822971053429522559261062971772474723613596875066967625946511805129589835064214782436776820407225069676050391694630593965863602276128460617125628222663071398993733972755350949376472697928441169307962678573516520775634194687254500834624129062702053031937591021293363803384675526774002009761821191378833462220246539044655420676095358554622162637912051926521714483013553929132905337669153124542664319687549169877922603481742968447337246873126631355003969408078215899400755038304352418093072731932174964390049866902037985943375958598723992826611613913390835513747145657994038939863261588134193113696958978187447098947994625011417932088913244209524511232892246260099409985568753624701294133692057616159262561197779720909513216936230167174043491340592864895872470869802910608017565313190633497578057345245076112419543613415593772607034021087223224201978070647835340613382221158181515523682589861271281220961809251359741689056417146647894481553189219389299775474109121834294232475708438998328922945651795407111396939378993690139661168301997567421668287563913465832268335672127423572768052144410780742520558153849369264706877591081225950088474171934750232753661612580575042989398256781218637709970418250958607563480529281402150322029499887653654196732524260029471212432981890125771638225383469851036252952928031143243037111227807808217385870777038098388729670595687012288830392466255018322456626568428641761726305041012497021672074587213128176929304590773297039689285455518812322439626627608367458516282257759818808140511655448460048991600296888083269272104350813170453160733190332327624177779003380194629582987755907388622039727852638322036299812906401183780055625807373517905531440307796948292102716640588340547956038761289579665200832337708186055415816324900471927560237306675316025308823788199043645524594358031646789029492652610517751016072399642252174269188453574420751963465444426492552735087563835363188424674664922085028184832834365807424875481190027518978101048367959382220711844027624531971203670535704961136586025154552579807373231645656070180932429278936736296110393421442729124594574588143967183437197567556478083801716134731867431662547493172348689071330971038770090447941864182050724223767868581604823903409579648008178547247115875519042573084069618857664212080781744762614273392983518217355957943896088387242937131353552369220441974076485172417446071704100853033906728665450382200543987235559798075748585080989726016108376117722394243633223370888481660303081441545624775685059111710543801853639673301901488849176206080715837892645085876864698911070334848801987657186678480888317314420052434269868736843042417134032932287975979799898524042435313639016935367803280233029101721183161611521249090560183435237457316541617053983692187811027351490758385493755988553135823764369399813364483323495297094655491631762013187614921086616903328649238780135909485352720225951639265738059829695607801153144257774477680319932781419252145852721715815521138519858765571893521077947610802404806084799166759576145231582108045011964846082583334552786576198722216786776662034126502898892773003697685136882250345491442470497573101091780730993057409869722954293852255094072584962943040876386717483890772349146193535930623515100198953306409671225342399599315569510677424463214804948684462228953146300244182322908006535014852323316086869443672189216693852963961635332382006537863119213151876291588080382311408509118861486562669634083625352071550653738777197588279307131431779183723041016305051906829143742220480676890057049127711923613452194149012059121481447738088940125107071740625105193698594200756404435033342502016443394808232391938777130786058124845655811922501077964110124757949039044027911505811142380650643783095941016392480615481199044683936420021737186409455032383995267264187654535915040648735049907416584838840926795855836000977296691023589392492802771466575736395673848213518899197426195930042429222876394570551579064219394608304723788648398904025130497869969985639100564973697390553586344346657568230097134621786882647827047477031078940867192915490580588587691715122100047521213898147855617576789583129406978783732876785134994439369645407971211621414393668537358366129835787532801492371176517059925984621368732134824743243424708516979129442894562486461389056282317752978307771826207042884157234287569806501360996534777419594837678816620962307620805760302316439090463606704553555799045069838090314318948743416720324086742623050853766689577983361906694925750783293448566237934975936818375730157298546608811889970103390500651603113435095167888396642331253582806694953513058756594626715856160163379359583407443006122284558406791806559786873645922265308984867341553048157040529293808097854459102843480910235446416400478421215928362080945866985124443813409971320420596778946151851641540506954069923313374677502547378060227288192719074373124294454921484371104158488402095432333235247848798775354407076747197026816249852219042058791552026120529747509017538910168926538667444735466873025541471109582556495824673796846196724186006213178325198881116204037370214973845809269675722551320180814609572643023276249865625929169479523085779898213934071102282321466940549384720638507125697537848542201338170319704405628084986360709869948610855910876473250316237419942294272429930075119958748520782746233198161158540780253055557818991991705051821073747783926570359643921706916330625110647353390050070915934265029178842051052948539462615807222313411144878238181671790245039420428068792570530812270690025421605410413392928103746580207737596172590074662585550167935531798598095127882960291007942579290906014653780566831762338122023606962160434777482354202290530366294031665208770002836636621795348643161273870680284261908572404177282858086035859515337440799135673769803703645044426972948105044074513528889883328266861908409474870101119619575490199248666216848486254330200989501888165392515018015113620588729311330456067857964784233275983218135994791827141610856488247122447270501344209109188943289737761631334537218878225526577470906244875540582067913889982853068974839682975874051170169948828969996697247341087470180138320481524136615978835095250601064095185985256127103752543956523462725852155624533695262435626261727912194995602812327845976549885623562537243276676954095676364656890594238023476112287957328224791139380550187169650959469372336246675314664541973396044468715650402173490267348721394825668855610127548936037262078890794012788370742960780332528863245734831528650206497244327402430462766703574744262441633103895933631074343426488618570585569407381035058420019542698675178140923392230862819634449289977939238001163741131610740044916892002321647079390324155451460939445970869393790873754544414693914635260884217899710012654382876897891263207689809414010581873515380946262608381886019252274833129178892191661772795055780786811308652258357300965026947298527144192948515830792718961041271158396025069509415231779481816260614983975586235814002339496889536565955819901971502605006470269676026969299470101582301909804014486169397584183265156723824901816191997303236606584142228226020546808339645303566100840845789556104550870571280055238649496882871868203882180864955821345977859191131663570113971996151979267291905299982089520102437689366467516604482923371657434972719511045363707236393052540457546721430447782382090164375607432252956633147110115949402818479583074602694356133261997490292052427952477272177811781625517186395726955629634193410223535427919465202650314548511485382876636140380222630800547223319818054209036780630386691106584449424579368774055118381310917050429235943207202375131182583965368401543281556947287949175756912120448408527443625630205822648430539161311734850457412008427085512195098876520149298756188384451642424774935091567486767345478435557621040147678971962391406033905051610676076322115505609085265932378409950431655560277408968882063465005006573080791249138720797597574844287159936468640667696882909272666917840513190348382711369222755584045574034786523867408482061483131813216938094422021989485149780157827681554564137228442978659365523942281923850090920576430407635865155420102045739825027340951436217257525041001407555463624994034544157780757661937813639879456148418991939444816775972185161651341284245317396471799623507704113091345927343404327729467897750203487379497743924734829440160280900102475546523701825648865621793752148553737812415195421002019780289313439971103315881107411703374568513442791288166429001533284379899257408526087359405514195728024655574492616556499121581680583285676103569314441346929823898007412099257127532453100819958043840872314264103768515744242636719615533015078480097077003034452634837078551808091705241715337435453890421606329286912500169187126497450145015674586625052124707944842835035748387632015481173439530508532964709070185241750093308800596977634987409550804376339988396080146735910858145409923904122540954004976859498278238995503306903016797390817832098701280834251159324357752439248317056971194496654090329535168259737305907229524934800802828867460749134433555359403816877458731054629069434429819341019012121916520216632744061212712847009635551871221901413954922151237918367881688694109175701616247817881670698681284243632796988788269024392864076401957518155300166828500544645056004403910588564366012023173618879850986097891247437924351911234102825020157459799551505605813183771002267329750276075391239983355967555698835962692949484084083093113955549498260353460228423179711560848212556994221161317420697924131544404646962194543217044557601550228323538290028880721009353587197797506057239668022790380068237395010460762361254311466838849292808506712734474109073222596041509285758900896016994339346398441227460202006863439234890566320278756171261704382847473398104857274058535404873603635161026040203696963750636793704397864467621839444540562721522873610312380888113576154875482466944671259873392980328342204649678940488137438687221433159096918629665655054707935082513137475325964454225374665005800077184812779255453560703919359367657178187046149953083658902271671691127907825752361216701936379597361766905403446607131301908813554685994561919787937650041329781521856532181857598998837969044319552674769533695670528253130776140257366173425180635925767787406902090052194723189963259574339860853649802099957692027073836584475100952642530576328174549576924064970765919215544636824696216179534507118104867389111837028598275855516078366443776337693270871779061143911551015783607322882576566479845852178830710262126856754086485342744378205146173846713624142868518272304091501460878784973793613550476797956653064594132471269270843842435581785792541149893573507921140845335502264559610317976737218955745906664922427563458653659869573080737644250153192610426956398072373293722329839229990154058400958463202890784775579822316331601956575024571523162925521493935001800364504701202326994372188543824356607215318074006589369152754844247167734599619667220191284468543697094073583606913206761808374109856778542458285130501383068217249069285053725635707719964764255683255202790012948755188363976386025905710098676943971550327170345652815124956512222364142508064573296869443707507762458146079198974495268694719115228360547738630825018872664434944252330594526044790843387672228847608873033541515326419003761790100760047012737293310152710012161591260421110839399474938779842947226932846784886698599425930944937395684771374805409189296328263046038007171218992028849781665979835528287023353285909654945965692255880387647067353091790840271665977300006836799973930784154941046364742021677028304361435055339899828276824178540210182718327231984762959239224003223857368900571778719947120863486908044417510160932087648144851626543718374024123544408979834421199762997408079979297145118617541567090919651405664716070760833280116511745264665567587710710889672642124654711367961427155388503734773424806807452876859960157425765803428751687555358265180564551524332408152377345984606133082406788323405939891643029744752757480592641103274677544178487923443895615951582408838871584218232318140547686159189762002191935585974507898069806206334618696673224322778073243747449610136515734982424884220474778338605439569254036695636007714603109042525491228041771897468276324809111786707892678377226750663895049516074585236303164934941544704961518310494398759608674071738004589757834076214078431537659963950137583497652985406533707392880147052274653798840847139240282684728852792908973296816369068100575694933871277882664493900049225454915463934083004674491187287917604804130108334926185505427654468133960689640550369012119735972223692469913441363565867916115001692867000301405412680250498722241440568030318500094464771853437558643667453930849479734239964633083081756486111205299234993920462497273491749028958460411357739960751542025141383191345193212330145296201095795168458399821647207948688317291844528905589161327113138735698600897104244554485257859699127846863082519562115458816407734051031958189737293242654047685830716009933082341429014857019649985975959799571923589001261365992656683595681730408308740702214087397669760030633112709923272336835239781033950577962727608803217597406549779355055351921133648463491237344809061724393268705348499263277206346767260729831848664270052707985662806202854317537612935702731747660509892261009745031387756285261266045464895994120042782808559072107736674339475261467448984758953052883670653305760400691241493984122270707187297487081798740217712530639793804186518448114781924854926433533993707278603351208059628846965494408030650846084354192559884454078009287420807807784880755557215139525580201678528811595993395790680694800459657671591310368707819234590029456237597698087552288905169146560237449220863334503906007307654600625956908303697992102966758841274777969410686511581017527562854052349923142346971749853673069193075329784153318181641949926907570766505031661955020649753333951887814873607278938050370564455761569443158128689140590732387487884252091833316470809894703605784586642017310824337813167344220640585602936336421435184732668416702026105146373396222411128697688829432442017107917585567638323244762564018423327064326821249511568426838927549228395469426871653990832440533265937794374824876653858311324948939514664936503258111470222872645154801945477475189621493780275624496223596749838006874290712851003518677390843270848477680071184335204542080910873975029055834328224816444727107644937637443709949482238067632699601765018164030559052524948494744509782261609045361626862232279833151790360380656041445785088608418457365357775979470748834606118004989383001163112307100683023513357239671216446990036702422201737335190171215299469324433278752340746839394341637491007922531816345895331879411393085302714535888235994940686029579932883070555808992588412781101410245627143354573771923921733427680170909068447455473300256321842674802407971761988651464271238651009148379272203935336598720388913029349490635460549163009597783334098049419353432202395464106739483904739623752170125652065633865474825933011894367252080201707980272689074131882837310595128505580943782621755329674226582530102370536914378812782265488480375978797360181566091514689302978482527068806527001371277396941182768002767806051618082219758368608088740148403645824452740623572248787644169040984253242223900017149916791778188875048617389386923593861838731558313539429411265688117493546809674367589542450004337244001412945538212694148376251280347021400785262193198337633775023928509708549476187870623752001711397428643762600277565255077762754645582452198896896511128933878409076505195796266847374528924205391557966403834227719651294339192274359960666730429839450587847282099083488608291376682115113802233126380453300992417806916369451736594043593926492860694424995034333085174066340517964641554978642069109112746331429265996716148040689385755886696154717582760155889487741510511345941510782116591174940173997840537830770353463882515951776049782220729493757931106769849245896786825458064854096662857010117479406501200616965738159798411041737168040023943918497822626960111439724390950330973209937306823275631187943597930274382016761068552585452439416689842785819819928763531358805511820924365377812535969849837794488701127386419091123681870542345050574813027785123317922989910602501639730864065156278725785391898875407676285713494563249259364247653878528436251447602266430026134053096459562876594942464828935512539979557828194064020715826077213944974989599401302444616242891819819389564148071498026824725234923006019339254957275684580558260996303864959553169127707438949150262884182503636561259810520173673664439607329177753059651045624883087199402051573411366556229084202513766517717185852925604694416765642974406191697922628485605274502341933789881570666628267078065404537324531955257725742500514975935106810587159802420083500643962029070268364028669190000993960055794081685086772456047486936609717165423330707883098039419384916866704282993665412253138223915906280754746443788946142368782984443030452294822775888959160403706265569365919156932796326410289686981055097281615080493924508772460806990226723073534174988183661705950548457092932956646931758704499543291355338934548897208063767728809942260947777884368542398818549609070839545587012583429938125913192627486331219957911923875187636696956865834732362977562468034315881938479810235241893379938418750786437345034697595559688333962938452180404775703824609940963544173706296658922234837311298046734894282042097313835144233388294577757399128853310412875152207208654060354055735569064047469210215661173054829791893271005305199869864122058300895227664815941105478243461300052933318815419607274099141008699054312638232073136016610247576236558070075018106012296533168982563219138996719043581695436248593989459236162365924992129510250382432580584732657863457627100451819075293705837058420151774562635617975689566719227960681814222824827174667437963464779994023065644534813092347112948730094536392059901879606951841309236737479200875423193639651168522105032621894947878649558726647526414217283264355564993818772502796957720188235652780393206655080205408611767178189909965254392064233460361457946486186205302484087352842834668584750961340386335207878454664732520575257371748804469405306027784568211947162867082208532052016763146205877045691715000255080814601595642128205323661153459040085727258350448883866373638981709651885168368090421282314736251398815390134140333099755773105354012388017214336746956681012446415181434601905482272127999224373612170298133913682918898884323042873154459261641300097829937126540804609097562920103805253032576085946253061117769053700020882420663726357252444190646558627438730576830527196786899199243407215547143073226816837918114498862405035276661935373496146584032342887883150583729172575111721674771906354104628583135046368678423929218496299534222986937987174776361962600918601816542556892682694296418660693446749079594535887181427504172040176249183844334363284265597529199441810586993046430046557294672130469649451942546383007300894227724913295403567417088580608674112746584578275045080971792676153423239608713455240710617489432226858890305622835632881290494482781354693307379136821420369204265432321800991310253767166856692366327413822728865766619611252879326677601630693583012637977032596894400305937633880415406206396466271445583897625456640588149246566221130192411643585367015166099738632986781231584424586252591803905925716131479111103018057760484911028332456797995257580476119630481444386549848017466391782267968192028446357636104616114022892311581096305692319258652502356764961110108412790307233894166985663956411498298427895370455102859250028332656575176057562221551631063741510982346872026190503501197731327826588184298690197094704587843389966166295741362108580463950183778460979379075626970944914192697309414927054369391412154742634374800619954358427031033781427888867850185390840506363014582191028867214526274425654036466085661998831074770398713883525455476302480981730355683625411851316315104888697898342052476867553866638387132817090962362111952813278109697826721146085997425471772473815083718920372536164178033216611972333632144123150510766347729484255525217647266736545633682772930223006690368042734971282034277501769996766104724842791568963606669888796236118225768543462520172829172639583699886243175454943693630022234108500150523415731218407086608345070094032962964505248940961048705491145880239364069506503038720293367714213923778044907725279471737958815412016920509492474617538902698468067341879546179444338677727233025858908429333713384765249077522839691496712801296337971702291660666148286485313857184799929423209805987318203015584439184834451218295257399500305252533775118840952713472011990707164911242497333558591670769499145809461974506062310365732150067553720393799312826852668881516821440209444240509584362061828182512569268650533835873366677824426206126216126104034311693209245402638619311666950366775454742260113603219514090117973296176602785919992511491116133717671825509961838917402400816763842599022719793903510304250461757590594957959192044600600301451185297790352413020126983644990311089649206754352838165130747648031544612253671526191388412057866971355867434456748635415169166832039947786442439272963808815965439904698791448486904689455051029315951362756734028477718098583864887914473915894604242929118136355508466460821781287240960809054650322685167817961622796739182628361425397612333032922051966757403103642454601087101854038573832078405736280446922603106364034204050769860737275572790284531852347178353145048504020111781140659738681860469245478609476640831346014376846265244734713120432048854284629169624463739691677683352545479934163948687306691477106344695045688999592696545401510526805929769333728983198016314777172486203399940403026155680286911293258540700307802654804119523187331744094242623536017130130016992674181742639182609089929423830307053581716307765608237491855536439928722011225493725967475253751058908347905509642655199434399962688800811072346880009001396397217666092271396956983494299617408075653461751626286714904666609914565736128466956143926407754951155931717963263539874306036515090705154083698016781552406671099340760525358908394586076240545088121503271178921910767839437293440719972403877316976602300320010737152119830871091915651982191890538258038976149204428104487468847399780025465805416342256695096322434579386754095679202287696464375527994492754182707244472317498176574071883135277913370132157862961306998775389947111994231565428758146283248434986620100966110013155170071969804288649385403077013413632179733749581133652266441604488391277048309809947163209411836732525138397169780561310157495005862493459131496662237423506688241947162348669243808089230294025679377888879723402836757512821942862744834363471680170032862451340373586706859598838302150949236865021617705181521359772328704243697416396948507156990203848004817404392156847117960352715030984942657625830450438722634681464586177309265375006382623974002461603374438403754619987936881785521428999762835405795291417531464482741460977299010212360760436685960558947842894417418431582292508203271929565834394556452271065796504589104805392763885890730642247251667452096291607281842668347420709726049028656546752708685538953987817582618617919112819560003379957593233630815226862560129096029617898424052839683642509350698097737071636089476535958454886503726976997440203880519326053939052940514627467482028032736058595237393320396989947757910409489680243904299127712016510388384770657882735961582340309928487109044182936154377188299033610970471053743118477496823376807823912138739361893876242201955714795917870087566077630012499235710894721717849165612738324671027017053933091439526433718590819057777357963664039955123656552895239616666349315845055752212037652157941327940238369672219785060020527598343476528745616238022735912108832787704669014320432120158422297882999141814888550229193484161285744731159568423821542498043330091434378662327004452164109421859146507455480116872069894253733878886198862143655611220055882550941295528279343879934163018201614918697044163206357004864945688443180756486411451392950181176825570799766908809251748676876252490830707203794062055222047588746696914435259689736351098070878187552493848571207482018569408869537746524159495275481360734959407462166102190616297471420236405815686601100393017296036510864662546442836298267575819966124034363360249040532006722506021793533694469360276536058590296088630892348078578582272486531428220863980618464776996812891914515367674890269965328213236830610006361020844338965282405772221328711763506701673305573900123582339637332786453606225708295663235699291773415531467800806675567247002357611874210163937582156452348104050558538834372344736881983676889435852592440580350091692642117031536206892900306181146778690936269664774289862798619793062117021067961410156808441165452477897404799504223612402636437142122117752663009463161383169675736233395814803965493330833570073853452441323748165715879366118379092537976840959429438046105393385275995174637635947601867910805083897286356283383103150064339330736326245791491136286079836583506103945318042197714074651051031151664393807404945716887798061453429596453047238633399171402261269238006854965783555301062623624045623606602396048607719393871042400868238712077810309795475998648043316142986451288654905659431427017331164202063838747752835027013645703820510550796289432022061711678919190727149332171859158222370298932186860421261233416369252153276449081918493745649599862339629890229627654247330521045801794936216440399527469732348291293489571968142476860418738099857639954554719708842627333221527232406654611045767545845706477919819363647544249702288347100322183584451103716299310388763390467314688525555313920523522796657847714030373727665962588239414908486476486538264945943054613919739761876362603456438806842522633960863442598687152966293254319784099947480169564226732254908866575863215818076488235181500252158139228240669956622018482689933382590183671705351685569048817258528757970930957784710474952117431931994657340869676263186658084385066450618288587447743176356288260293309314130087695543395816154982435184756249383386905467529714693179816042667679547742711823764166400214287297755581271377271333934478128382068410318929103290902159736468284624633444852172780063170721815010605592342774532190091348027347548158350747756982740661349150971482515474587677373702572002441931960430477411333442547898125344309804250141395118494497981115599509674797951258973382209580664161871316604751454811905743933010261250606306945096504051005408349229130778934522538271114987522600838669698715935171234626587227214000863465364941973709080247702468915085760076763134067629972193245902008727920842772840210003872743587612684107353589129937735749623503161018942805702555069068569881647744548060772125521635224810200293649348526405271334623477293043720286238243139546679933317818018123265919559458030231707183118701680369767118811824060234130725785894260722992298248378094385192169186910317761949942598367849098750696388755774820479242544526433670805514992130196741105080463371998466987857374233333568145862969637062340892324453771710024209989026556974404452909114830779661607024096303097379529934136299555560906496963231724164826764739654456831699357608348968162684045886868730127216135820869898171420715250716905399728106961032964428186658786459533985795774533978991314514045951046475584853769428128760202160810762057839037081253560176500493007687703909013969316834336898530814339549569984915549026849776228535317415481602332118601936225077228986085088343161539957632126642814800825638343563756511508709228708329346192754179351861364382539528177896119564298782101224771791031978618024631093286285249457468681915875836412621049829898013964057984651790156543233052910546416632432379346181321365576051780973972176172291056382133855605780237033874056866250073060334428352841741352986099424488680656978776477742105162535070406786341430790719167909402326080598153124231437567967382398700367841558807697140551508688115164555458077946856786858293190423750500296188528717135523352260474501538748577998811691989545751189998430231280609737403954434375197934670570416725061503309725167296745849317813436619316719347521183282217198539889826479333075384817877739447084129103232980578577109375855224563944978607283383216034591012978637975504435051939995922267683772447809302769267438315264367437259859340753865933164910327727854137740272705716344264727550669523263808921553298413172653330198348963398756908797317657779013810239220954759523785599073624895103140094608772641574666767621782908219006839367959690968251738168776164017234724066289239267035595558338130116692382139297110517562093848280125199542311349888716744871513695372306707774429386489511842835449350064769271740523952155868946046213276865958832336795214403364364750947458634734241834261382893912791031145491407545339355616775421427037668613426636204831382361010402660940199368694947726563230953948276198463052417562845145926119975032734276965115232181009460388062630635481282838256349632092369647287146101042074045309382332466150976824712689176450547951412744906717289605068555014726540076429030673275904752820694191523095822256005440651877813715510491193585203336586034496027803039863946346769780669144651742899311777595626586602162120390862689724427845598174982569844724048142913197424186679203111967664546274863491133863074785827812727865648378498161679051056768363354631646594562296688559151675801774890883241558995144306387743220766095874457958358576854516694126102364241488214114328151027668574399729447488130732635785301906814262682195473051797760961727596068974239767027721480686635708752325147340253799117473585626220217622787091990914846325080146991042413998350542621403785513240672681281287680941665552421124494429622010646299485405260424620649002824202280594826560365358917652624381279380724387952646947666295514969427461921754878538923464229430788903506096371407220024003533412216119334323834201568192099400617114331206124850367462321084099832049541978662734542194169874867525405149792041117592034504052919883473523221439758996163970391157677265432151979937670368122120994298505432995282963300615168277364720555536944224597743648917005010628354274342808335971573733044568309850729692782833333766635033336150609702942857047059245115945540422745355296451158759280671829866353624471299159239632331147317280454965574313692389236072364947455822568625290835429365633943704926864756263650535156685102353500767991571269779155834051408961225225793092125826714832809094392657800929815368550989161074828587293461814622527695973973997221553896593830059722110458420210360495795722190742074638623028265883683486777086592117133297989497750310524174228095871390570126134245647998671611233777342192507393897022020123766785507076200710660403667405809980288232571758707336194840237374398826570222784841916925329833558871316145674633436606316436100768623950988962231109451446642617320820443691976674100283040191456822386731439563236922819255270675890929533630876119510091204062036587047844055967483714404678402994052237959713955559449472861059896605699247708273387205847511288220189731817879424586308561628423503644351289894928826854722276262015048586657797416492277610384105654069242998160116810643236918854591405337090423162601023740851491960153689290509699401020466409201073714366984985135653375309637679048694206750303806652050423197899746436544445186896967426582740870662483053666843519597218703669236372642104620588305643054489991023791728103033909620822467950589572738203718086584042375777345526343223125986205330279544304579169752951333753197330132607747805938641696452214827217082842765732242767354481334851623323940973131200617762882836609466818349081606350527706473546942629538990386422341228374770713235695030811845951613823223244675246715117974339581048866672499802410783032585138509432164469608564860953375245996039386472728428732230822202601146678133876020497503106278555261288070450707410781717218383097272242141818744586054686092080509061802019653032311303248559510414119363234832155243586788456716694401252624553063663930887927385547434731563108505258975305690335922682110409067013145086303943631893824057783918420713556708526140827567578394746029697185249192435094485541375626715740909568192015190195667415436804370299223615233472054225769467371925254909628594084552170785437930569226711977080839676990419428932074024941208630727990818488649060018226099212550696541074210886897681741763645102775423160450647971102662283266341585483209714525889400538414143716573400580529452788109544639679808327221596943410139787685584788937210010104419883076344357602765669865432335978813217029317979673584521247589246858553590732659968793366569454876182422889788942961652493368434864039612295188108631321800533534747341601420138939887609137038459219013710276014356068791435643431898413106763054393118526670688313532482989477175214810416981584129081732251188578664265488497205304253265938532188014384938117996271644346783073124086579437291437373807437787581084060176956604896149049359836925631499843577774086459188403912968209823963915324182741090066586981268874234179448879897141051316121747151372884556380336668961441180604708642234396739674859815149609400291448042065202363426998560699285752038230338485333028561047803964355019143633924668998452525058922845577170037264495140876659992869391926695731000209328434207837493847644782324814799244086248938693702211630728872855723801088630065606055596432803699674637529322712884815191179693998363688698359766089754635102943432191954165686840006688463057049885620724397169857565691559271769260576587974448707316967712974004523644819496140959273961253554188689049445541942833126810136942521431849888898191458273981208701557576719923391611957717841458469384152104433571463351240499207495550870125778049861928018979444520935752291224103418821437851753398244711856407924139542483678344422808331741807611344389030270583516401052497209947300993423546658527601728856454953167953780610103657783058360488229290828596582696238026651321462432028301113771058943392790827378530120603285208780898246470965637875938596776163204739202335263185650002665902637704639471351738372682327426540453731563648431012396861468717203604915998005938949518896184914270063929328482458958288062010112437189812379511936258819400543630794778084273654613405176723573539244685382305239359960668122852970427773134734628064836051210909650914553279534798183406219419854821730474264907247720783877792848162339046836192051945608741039850827687600149910608858570955893774655040697338227403383525253719369975706253734802323288127082077262122542947374809268638889000325643184153426977901409508984629439844691880672644391539129666361469829385801998660968640058169821403760237972371672152813442192463415385819931874839134821265862769305573737665506895475146354234104238045199550513131458651358485037940404075765299741390892120957993689273309797922167032951937039180640306980316072597055710249124171273283335269446968045569961901697703627387147016977583570436196727896694034585094912618488645849096227528761556147464182748361689908935091494380131855890670440159380458907910494634012451670802750313516778347048380718221293153987115157841499196577592116850358451147960211912403274717399442644461732843100889451129521812158756138812430446468456705587126726120433775970895333391181163207500401455930958624477175415021783910285457818546076922710217499378449603139956464874465462481285376152332042396997718952293875610573267033394425274134189703367835658388725794722963568788472958890233766051400035896214738599642478416931007609225951571817357143143254239383007107453387816374448270220654684202412819525055096100824880255092133024418426876773063923352598039818265321175198347597799011561778244294875294118204967040080851646416327614023245316271914924645273098846490265872387078692503325299160631078989763230160732724154691099779641578922245826364784503116002492580256485451457875238218875517336891442827781374829932650355961858550839789607065634646711069455101589880193016563349566093528702963092975358527973124522983522167922003330477325558631151691440669138137629341473730694037725139985650350089282766692690321528091617809922450992846438566137025045969557379330518521536821224427225685037568533089295449685413858755981993495694396714576905786372664984534123174412102870824487339094036611082285495570419314655067012989672791745785560632405706360366377229133787909542570521157810469456750044985430232410852669545902799931855037305704205794564359679317096393383573739121423213226455299060819466576813814554543339152626224176410452426042979792773513764017030733192589333403045955789392356496728663011582859736536214916252543060353583793148432830620808915831969674683556896458974139866685073608995475405707249931941831225903912387565362692922209767745945113053815122432001671735962341538893534853174090235695040767037210122401846236967414650061740334921206656727681591896288297569202963103417455869229252134984400477500268714516630867437533491589961283261865421207709616786372115245563942976137135691649522023795139919668314699475547438978899764558646820817079844168685631359144703347845533145415801788095270643222342463083791526339915139419309276069572440519191779506792057559593443016945112876460656313878017796909573467476106929868557374953535073781457102170601370041770284760002399602503238706626257894862748642513197544909804954033601543225580717930753890493716809500629131301467305046926909573193218170007129868447818328625878598139977060164568531953132314624971849699833593240830458564544995764974252290592720217978205640906963753784779158666676300476394605864196881255533137185422103623133494307160605407423370295308771993073393211481337469733203314111764219233973078950594639611563539022371346294267949985174078371777483421813578951587984005711620215938981619551585042172536029019072116370896204111704091001323813002765494958516991704490306385005290872741235009718336974043528980860549875532134692679059210981264962535051121559430630473004238261403013984417965779577557921954981358995838369931300985725574807078513949393027773150977666601321124323324682631936196315299898336368706538982657160691695762652028337300210747662527130416275878944100015970178088054976470309729502626634717638935294351030077595837860365013700868061602225715705358584111903804892610397114910902591988520620047956601699962143272259200134787196902351309542240729269647323891965645111033252922393778457551554126588081595297288945422454705849993220830654011026018847579708326160913525892340197057859797414469378463135013948001514397413753897947353853711122924720304074931340118626482976297852299964276986232999951759549674247147541612029996414154470649636834685190736108977547115451360939850298768867199868164511501624103860781233574326708152633924913085892369571765166161700745432709870661978084544554050922440960553473890872208677461535972157644442938144543078835991098807950088883068882921681502978940847134364299976226629831831394480229232909338167427276459532323038452410699434028030986516387521201334239088845750700868243829804446262526929115305330547421841097878128837752566376604413765544935364786831368676388544850076536308328920494251649947886529578898951855232750478125548443421871710267778389647895325102504692405745765564095908755905317950403852163828402152113500606730560423201135804869587576464613456478234728119953989935858673826333607124642622447804702078993665517178730929159908224365920103909185944031956829960372907747211426532982256154210117999991173666178691581357774518069569579534564380119146930868029440908041278414971309846132127786142577216621073566607513033474222721878826741813226935203217654111281147643747398948186729682378366093195000152682702653265530974470715750490972693030699121694444850422305623026981689799640967248643132364669878975590055192281950042756038774339439692958885281116025986975569754454418920430774469271153231888960257852196286987038817572174414967152734473985841561117622503114281520083170835751401188954342504105886391226537158895301317175262717196658515029593060164670265121451981111557607397764675401840938704444918031170887735951672529463209450267709680056246135692386717606599798662085889092577142234368633137893186825148360338411141367978714332321850574441438651902774118375212059943259132242608648939557316246657653626205409603030056976914315650764978945751447600376146238027839499412838552755599884361091228514379235062896343035979829833425367879574812024395446442765395578853034814502953010839699251652087041797373327249023058790557855161787242934101275384533314730648369029863617587312846190573881563560579476804748586367223373621009831445744171386779333480396009762849639978917911509747923010935467092419025065756197075656552305010036285620251408868732369860838000848568736089419898901606471895766705218174875109288090629672907042652608493852518641448033284519599163234492530052756573184058536066701006341831776691384182242982791674374394277467577594128902874994448291224627900110364229197832836102904966176741064428942627644343595982915573265777986630708292497654764395181780239721911573779485721360490556832987395974585222273010989340148200659031873155808288965331661177792417782469553205603264726912440634973677406856433498431899913131872544631845377643556700149861414741175223177445133494287449084015085263388711881804985599625201938142613801928533788770751512825080205506768684886143870544865017316455625743798812139719877548484310280120751199616645519597664656816717856918277929228049051080626234953691553241415218749759935758387449400067959244529724007278437337776140406566596559537428811883355208230590015434662262175137541122113526263738312054577298302823545759896781624739594244984587015004357786887614174232137875915996450117913806565868609732540317644292200214770134179891002935935723041305589099688932435583622363203884757397829843135292676977409092745298937649158322567535681416658261846047978958423359482738549621492431647652022772333004229856911803832202904599786611624420574516963854715361662137745072746506499658071190474256674036506621575565904847502151677128766284543472932157717401152181942363903309989733016133496669178870464739481855488732257483164995733301844328812261230912221928487216261497275029001633808414490210320236011674103761245101548129283262365398848929326959559643568367222828489260469912041598476627628355913827566256796708601502620469450758962794060573503555988397764680551022879166118019673047391711310339699190598455691563316183950249069825150552823373309802900243376210554035028795833251909830684137547878766349743902292515253383672158616910009014695761371636762254788065407965027711539681419698002539191756149732489006715215788136123169017382935189821510759216616941269259964138707294090493634284490308865369872869646941277443690548028629275803378379672890027874341516487235428896037001032997862782912988527367113833662516824418704113256401304835607704098546302440881198747032038177824545511359226160565180602228880863788780412532147613767106599583630675504854135727106729827459088728890763695317199494474323409890164297452780607250047257350958492053295713609090989943461344076420916162314032193694461127155049124909016179126411590018009467302807851781443352872667689828259122577477948021617866639662982796195317867089076723725222047785078243274044218694053072032074308015812253817595382176039600457824060683012174071999050127298491496229901873189980123107836064511571570620327112363608862347151978622076561844728468118675668436035304257410137271233420218058489021119379243257418636641432120187861101067879987225980526365793614549932898152034700883678378129894229537888448853295979118057332799081192938018378611880177467155253614435642036459094645386129897416977647692419669851667076115511878498654143297613861848866999688177970986650215975660655921223568443455278944507282286014247453519660645349767684759263257942041051185975789621143379531486126446536227748852078710613973429916445591986865707215287560979489650390677774679791029760717857230948178114557988487060325734582049600034861320363626221203617253505208443621076721734491916074932754727869684254379425897974644704625834113024631897217684203608603420485255559913176579424839311593717655747072976787511024255138378351431031839292122669380761730983939525523734805765773675762994195255165159429025562946689113859922823009722570899286764587657474192561680588640070280346824271072981915728342405136473720230224130090577773769163687973649521349430271731833799078057370967791157956685135993718676707091720695656928574947084067238184357731163370261150469603783803562126911252219783219892927971948680922541539345778240085333871536423669794492845202459906249193956554502701908655414343536063446324409757093716483013161186616098290914009892369268478786716973166415850749931288128631937647257780428228170496318274147545449364259151900460228515183945647069661478037972797863352544649057433209412595925451771440519243077779594565771934245614945241124474894983755388903649928176291959827535491795266156968472112290011526820029555353214796068914278273517369446489501785586759213129827721389113374755273825366709363914040222361157953853926654349473314009116120836904566122223734467128564553415059604037093023652800291929445969784014865326342316314155739742903578809042982646817727893351511770553093976832748482197961224119969432853788529558378653060229335048779923629582950022204770359073473660923702545091894461909557550071481317444234135962513055227188552871912720881666734703556497241714519601551189979207317300789250190111592657881588632172786498040900066062222416569879041861506379038621724760489589906755591154672109379217420784719676586744786202148477019575084164549036991223401713438390956837083650124193288853620819597079279818152158733251934408446804154731522587822655781883109536043203810974252003926349777127543567870862068248469176223511508879518373435106016973666981846138760202906902001645594040098560984657283393161786423482562961708318350192579481743259868465648392406351775162291247512121523525348599318345497926301254209844692423499465961377900521886377052545855601622337896298956980540937575376610469412296173937658245929578422736587855964207372509173016324004728044683747717676939245576860045001626172232881887174925840202331589638364159123272355105721766494729373343134061881295691169889512069237236651541287956218160891208242762538066186181313879402994501361900960827267187699958695450125234760429240662731210685811962204468227574278506505255132814625208020859542488423752601200342243678522032311812560906306000587320202504412129087681854831490296823052969609809129946696470623734775264534226821783871411437603023090518688112955054365963164335047576821885455223881114749937165816570806609145549081407886099486548863525693731789361566959421607203193722453358192793128249177588938719032341099968266097804125545906194128149313388342075935484863772534763691948550527738597004413793167768998557600231817046203407635646556847780442654423110366018073580825885007417463782357737776192268730098048070114947697522459806523925640687257476696985697822230919907910333030306709370946645018840976949953764762156176024058570817464796520527855069050064158304559313074701678365936666562504803760966004790460226042967939660291207742142140204362324634638230202760002412762161328464264891943161765004330707088211420319244613479834135526322240474321106031200102961872406574579743824317939487746169532718213265805453564963753069505168800049218526781486208924610647911550773816135781211458726065743578369724861329540982663903964617305296253462621189105376342048587630421836076068023405288668037557912557781244539345701000698737063313301518259318792292006147863146599391644707316564524269807054848453208063170734280767649627967034900922804239897237507867841568188912177884410200388235992314384619653383924071736484750973079764790972783185874228426102362997929793979226351225126107334313648524561959450670759166613834413919584400099463326371327447864536834002296341242080392140280759659084961901676554196391242348334959502393908070350691697233890040162704719203185480471576616945538968753169061075767110970465935777227899915641764028886169956434074412600110531166365534167532209749454040583236552358771863869381348198925234660280841345172553658942815821444369881581374170264302145679731948800288337903292571331729879871989217581730525705640068872053023404225265272461257098172954571224376915046941250021582045157483254093824702345002528788321548907429683489438780104522012247279442841139114795229670487673116494024441392272935044935710478515109012439027639310883655809923236978843664311903945025678091834746831859729713597900219982950621191756038759466629391979907973994284078773423319957459826880379737507438918770815525849294456689637336693065286632857762518828872650702493468597153766556731371494734182954154038798030740623966144293420414900167751459066120796504044339213492866310273633649432568749418877610159847687327874755158311671338030448101866008828623960703361878259379864291897728022972475710928582391364715843788260180231161905303892805337982032091937930407905461369240746970752125392542714501477147966525818578090692712348407879228163842498246563176797658294484450936883384439618495537051368940338041628771120713785565503504387055829907654606336891259515029709309211850923140526813503367376614276369901327646389925405604939359301561639029462408042110024557343724021847045743605386657086509717564109474492794266904261301967843383260871685258142535994750818739989729806109149370711946164970667317465383946838124744103435161043560921975072828306930151889756480198223728398134960261761795544434323863198664068159854374570982594302003306247713148930853041432141258980655399962916730477431918118594004792027140308846407163214979154643005359101348543226058954675472471828804008639909227109352712418466635450972665564973419455722916341175282351702318626768381556660344397170439409088583827641847725966103959642617951745805485521029054298850092782229119472719585548277393442444999714300573195255304782241189604979038314664699557021862421376786367439180299264500985389887218367850575957904931392923106315895930581281683337819143538317107419876297075030897055181618260573390170500100766769858370829785731584698013166911862961697091233688898345671912854310957865954735885741598358824043392660216064914858212138084302891727591418887288278442833401112801826768476284203996420655518936804154632050207040468801324337939096746426654805897114788983328867711639790535236922816633953565130589844675293814518273634181936495547159455849799824399337904689431147988973181133565479570436156458289289307980088217176970548181962881049604070247803134704534377321900414553234712302783000463882953617156276470542019153567350304125773469983146180703376201497766586483798584967069098233603965423926695873916051073967685983358171181395298897548202192308272530172814861842016447746594427115098843974571207210911141231474732619372268131849978017781107542114094695343584933584812538097072675721383246743750890526376619037797055613750458872372786336403239629633799313130870222403299967766989453858023783548857248661274331059365652909732527556201317890791381997737564832626908884668773788863017349396775136560118133013527206082432826574375715483496782442199475904143174387317907036911700403985745152176976734184518444824621357494007989030283722213435352253382438467631725291147908023081035348235381053449838541576148500508567098913306595015177910856298106639395563517637218805228266180540058409120323027895531129231846307507654805337817029360160655257848106545943353012647197802472115094890866556659062343420066739966886091433069641315287745735079603880183833615669506514452633466161632524852755011607248546636516047759538123910124776924604562243749456866835054415188522038047382818492314995564397806668333129518973385545812229317602097113849103415455556428312876778572822698086429495664108574800070401066422349727292019856204418973298771213332478019866674177537222657919536907502300154779449464137327271501029430035162519502436146750465744193648463148310514614825185936757789143798761512407614880959797864686908181737572493720038670908013874856775601936437635798129607073367110872810949529754657105384462241828986681194097367489886267929971300402078590841270288058803752819661423448345079209355684420304929578647799557145718879169488911988451073498627648551062343470703890887164759748385356704542650038048746715902732646480710902446905493246364767418030340835385845848279421530496872065994616102777898615617585436372020820491247950974148351081631856120961635775706513869537626922868185109218415284425025417127868975399279753143226617868967191898740029378935329108951526424542385810261445669513470366182950179787363498985713383925579967350731572027775282215593648078860063670415829294797934278986789255288204540438469791383273362868987345571707205912110331214351417168146255117218431772385746205269718801236469200268157629160997335936028644683872589251543505556492768835749226011237010706553982647495120308255114968533004826693672455140326959069816621478104180058129679754137999417179699241611282680347003416803070264352430256423274558691892723808171843164483326515190695739218027163465632553991352227423233376869579644206512774011140549287747347649581908539297470945092421784951719312250523098802482747300659187550896952024195568397453397963754681825277452628028695269083092420292722266598498339100990727739269324399084531829899796061788772810714297521698798315124508495430912966628143826294477995694186769868976845118870590642698255902054869299796729548588399504888158932822658115779873657583990574183644067128321587718628046096296194498271843921501733005468734995207421588712688701332556237092825616619333920083792956137666505627629650168409042377693426468735132120082917215804499136358765553998489950915107464422514603686050509273108870638751250294078060891734471611092058045396779624613906505586274894952954563237326455450066523339305790353999080563213853303066286172560404259054615377243800490988463581198488639919536983228756677195351681839890520137908694245503604556268226118327836460706730087477813608133706442967119053466725971840443145819717643988871583577372034330836160566486191605981472686767653266300779660534034000438466615977273184766503559090116767657106892146021558361240680615096040253097629134034878949713075228088081073409614431973865159713640906497363691197439476203446212509780355378900388310889441266311283362133436214464206499262568269535712522981396007735006184024186998603894922987103304390912288540311644052495330894959556283264709474424144996611695730635839586173379343432768232119597514247239583465291102851430154869475969356196046159033094473549703324375098509372887787333365547866964248199431008316424081507314077903352306993979468647095886920684166394081520571624323053691657564332450546539432901071249433319147352676544604422262806604303036379427059856696205235398902985435264734647186458993330784622760713733031240713712154431622087528334123052648156204220998954457558133968211287317726353049898640956436092510955646359532293019835283331288083224568636333395611742732161436675267220848376109393319897128707175304784745023757019090471552832819812195766367684402045050145174475684584171606137802394917917891529373620190152966374212627388318285649973517955977558084991657545618907827302758644105218888863229053699753969749228608124598444469740939582510115594052474196220676067017694834581865515503009448571359681686286963476237702994134798699191870575201158089863276553271773734022653868317937911125039477466366956962722684105633134317468904612473667105182534151326504071423728704617949808860958502416449336070024217846066847329856041330049917787498442665689932231435133170092991567387964875861192345413623546676709149042990714529138139959599126166359846383887488083912760452191605703818364126941965141312981994568036181436520653503049128120577843154340729317698370300260024922056237664206813759885210473390385594146199185214202891430269888692576214140554892780531661600734466187437423721346742473319149750265825250768800634349214925857610216681282444460386713800984278671471949942823584700322253884708566902544309548381090095540307077631980589712763598826681491099809082748469354901197528178185217144471540526637910040896431374697082001629088572530374723524708396219845259515367078881683683818560094650073880984189908448745059590537445889088542915124094258777071571819110181937550613697853848169000955946721885187391340022517582594836324681199108595716773449214852915575841911772145358642450369753835562031467553771890039573847807651419053646982831906260570107963846025174768844099056079953718743379291331518170759244435108609941705598968339979303413599694071102537086090513129047111341643097410253913180380413491370549941064133773945744078920560778795855269291749975743854720928350874134438878740436344892215007829823844299286586378738773353736741713786255015129113554390925502313999031072262770418210878172191738255419418182411001180946183107064066579002362399356200268279121174556358303833952510435777734834169071794311188647499269981214668235240908702029503236990690882416679419992773191005292446207837323196217886603025839743916829774356476248170316938912322828034389182792165160885490824445045384802869124311078230561315290487179565365050378761465687331551461750316222377091202777680001484070244277297066438247204792102058313068402347535434189742796025283678952280513168545362765833782566335099776084156950839972091101393936458934111822963285168804680561711759542360890876467129680574398948057187095215700140019431762072738386193234437492475349027752538312261439062331878939104496894869785487893605816919205227231811847844834420107683323684112561795667868610629833359712645429222871809799482891249778580587233381490202144207660255277566484904239210664020260775460383323130157802162215705399204444992489714588771904594175616545581464870515168584380098435325660476322075667225078360597145885682620344588998634335879554810884905422499755502297036589959794793683251965484714251690705460587385003663171187548364578174129788961201401119569044105627014111964912854326224661327017083309223846190457503004055479279454740515723615325740000078716298420763559000941465768009041195376013525310631888967714882461840655663792089072359895469374054102616824716929280212517761128521257171136600495162576783182582527403814239182318770587662211043343185607145585905888605799525969452490558968988545293016906077876429396162637678383034527955754228107341771175215509515360281629025426538543086770892077941704614726061888181549543840136100720071693131490260028982565242219365089944446957977988725763846958647217380700702289402503085526987295922313108884145495887372098646867999594447923699699065933213031028494430794866524047992171974489317264582149961908825732343366510842153122329858758495127879814391596928514236583745967783606906412324929781436807408030676250329388180970262569319435371921665538245817077385945753602387776166178286121396817238796870662149308757402372763409906560148679635765564391724667234241867795679520155557530536180124832806972847236264842848921919748214141147104353358669283494526477580683859292856120052236010930473574163783273555494193231079572999427986935064485100312670970252349923444702223372096448955692569149021781179311430879552036962537850070742692080280874950808695459646653574983549038056784416149250633634654061594129812371186190162402289220615528183882211735748056545374306389508654803437478441219975682262054179119500963934077217114524394258766193262222278048890165335114754328977107668824265051706098808709800177800103901920039052569923755361880843494491493547446669160295567967908111783021123435157518245708004003326821057930378216890561280014343161144217954829277020330997006578857517798320063953740126097267800188392223214739900901021838482923646798037299521443046376784345101092446636326346747089091474611730147141081745932052828385172826191881231451441048917232211925099805289776509102411674711592237373666637722030010356274971737369127729231937098231297169862117687116644116502606177868129630790040331250402620981766492017821088387997205426374090044012378182560928447740642155860081333200146108510377307510922244198495970392226646300866795811741593442196112852153414956542038002324030507030849369890289448853495958152730975136216433053600642318948660454192915547241780075385135810181114692283279737660353605037363017273120389675567229996213565150049039743845810563740403270429354482627483338803875156394566690225552143013670510336375861050841163282930133978032126140167271728754300692789942420566798148489878861710047027524522846548153300406122463901107688462345896042381274355688670959777098073835597391831939014219203120813513558761617289243941479092060209112388083570874897548570579146644204757029429309147567578164157189061385400887590252172509512595319336124869800311585240175693429761826477554057520139569375820445886338218828275480936804251178308952097206423900120714638713624425434113601719540173339041156433833425807043913965018454745112483994530024565944250319057830308880801410983282867147109813954849569300643823751580557128412710068255791277017306442076225424370685477627267188770430989387597720312761236704732403746254309738403839421665652234172507622063242524226152232557140677096074550013115359281235233582111064413001610339863861256679928393929050149395203546242215219085102062090399464632629972574927238249242779742187632315194807630616436973044726957496054212523849424989062285259363075994911832593189790231041637633927872474476330254080448078890641192296463938316721256351277573711771404400966745999827510951667660816013342848613040724834397554243189310309149189217932578014083752093314766928101906085165227334828300815385633490082911779932667803193575231146415091108618069089342549218017449033298469690663687299110735346450023681622232711170987010036380371251053370667494895915739449285431997963804673752394170640489567912123298824462752159121069117655276382944931642109965773835715109878179243288071811472995603796515763812895893328546254849124011246367823802081135779792757791985705522970555225661815429459373405298671534930043819502287818231087884936947955898186953527343615722901851510791470600342092931164860366746560319168709936763465315517427071199158852075333880836919751641737449421936422894911104153185490896314153197946468325400230432110023158070024202501573723125199942773752315273558784471314370186584352966268236860360123934208563623273162471571181750442311092342146132528004960227127989486894567167187460732473938095948000551448224904351645292918620334878150100445779353445986914813137239942269180498327201151599456020981485438390211404231591697401547288350827873362429798005356404064644846042175010674399065348059852686749680979920499886396276448524160108141283023606935372805088735821041695914135773797396760211747108571930934282990229254674524155973913175536047078485358052478239897938453030574225978842019104372276029602361596663885114129949377198958988554429276097887275052419605566053548116563594611762431268053334158391635239023162637639693905683634440207428309097261890576194395139133823930782744410228508789400536217549483941206465984467195471128604847303952517475083614368555531712339951362659697370750442988651658874733762981593301834295454664257151234301789812964800122548003535029446302680323534571329077086696047889205581294392059399967070156538491008657999627151605087888501937296136070762640074736744173895182334703700390027378360526113676092220656141912831915986001791846441932030934045718258349789639631381996133130789450640996573734087097425376638704348797949570528487262328749178265097223539563995035431322295522544556149707837849584713079540435701208852336703699145550308572511749733028316933483087378679472322215603335586023880815904701771463150990810246804749109972851634649602366004779030912240296951182331110670579988192463649352682006106015724056218171766749873868403207895753676213576982181996653321374262082958574874541916931999608028155096981785254712301805506446473468859770386688829913015721674825675860535516262022651704346081559329183252966578975792924184953238180281053196576163348985189762260397088780632853213462505333658633982640511288821946702368152780366857466096179099230395798885689700151867172835912799610423088892967576907679181615810363575030890120671480832737130156575267364552088198867329735299129966069679505465530438389370984871017161463775362205524510213087538935735157200430874991250261141143807911621502159388603692811529222040635141189186000968900947583390462173784304481050864381790655411809687221891093970546738271361233896179494358923281130321848989152543352477303203254900605184387071856961105009239063627142285895704936831718353557688673858987396291307214644247344689723913668999164884978595372148114101045477763208016374459627728703170169367642876017339331907327374263976789190805659983258734237115327873321331021246658904090883269808821876946460812829619228432177065644833285426748843406761195021916239112227022716037847872079892268121512512204219696046778775344851494856008860823758628502471667983354840986497621046431354392002607226643918038068668954161538152592985368086239403832647418811791107095799200429629615338370458532937921294728696547940742999843065837345473816801429207156522244095329529103256098530571889526071411401554731148704983225949019620273507964888691386411066671259395080045653157596864969819591926473080808466291878345766200119949234991703715466260383219795993407849818693851712041907194739047948245419698351138342394503682170220197769705525527095961091699116266061198441757513662316044759453826498412088193142526416277362382578150527527869822502399259459354250826566037051723708796126997389613373663617079877555216943584961111206517419289272320342608613484912999888731716175968868527858218912651077657385876667577723580249832826466942165983914233595789816141331051778720353559178600625331770712722485410955042450706771056008731822433165890658949438978945275446970084750004435653419108584003972730231671478289957182700689400993322430217489076658656164779814540595029253747509138581063524004910491272504608978228535658140531227121414128365761773636769858495307868897833398427069560764266171007310903952369432035509709554962157536033660632355702596051415243287834135649092826444277147150484888293458902349463041440050542763406352929009627557859455062994541350859153086136541606262180502002535747175737223867710230855313016110071676148188159421793184041668169594385829758461909954567878693536828505146469111036782172388730465628381633179393534464841829066544878089643170855904907782016950602196341403102200712556106061346732588895797890865137965479238900953541001469953072253543274363609837619541752140860628468727977090548655987581641260728969324967305329253405731838988978208490320384742951509467570022588777924463965895745113138746129949292991824588513672649788587528191833694118038854022728693591932384822024538396032183449062682910068492733867801349600409880989069547351274456572895285736090701679433232703106914689381228191413382325691016937280972704095087115948016289330403741922606935580465994530283259015400071020411755322330596265484778022146920171368889126128249743665274876624753196020182363567914664657214349956352939393995838787778098166491077390114229482020995905899947627928794266260676153274185357013890924705897741303369256620712523849881576862104430113847829523455411272730762548203786684405300537931464108871979848320016443796057814888781416570156371177889512952899323900692449658868956394453722952942117809180347021401539510742768261495988396805481297030395573347212374834716965289079996807918975903153074560022207874198928237203965002454101848244707344133081750080949622469995179936666261907085726585990552883427193838507959492698835333827815194578623387281857805668756127343106604419250863864091417336915902644796784151027445255907914127283991143063545571547710211197038043812087640464655335055229479379007395437336919939529095594703471599379475729034353278562625973998045405982780557334220364446724920389311078648346771848418490851234782964002230628620396593248497920633082340091348457367796178955429902176377622166022830800796662403782553111333272993311664898357644117666464048706222758708210480978108987577095507758630605381063503968325395485873789429107879963217684088521889665506865879487551505341054039378436878295373608412722235510230912354001083563794941172451823371191106857350516090669707519980330602299614084941053913031092580291693390423166009598197362418430959827109426485681747789417983550697664999210611055142368475756468224099776908844965895148369463612604244799094148758530941248610546957647325402081303621347364421758355928792449038094726967200400175732083988545876415448964249607878246461228164472885990915961967353044735066947940557950556129400490196424291532460071219990690180587254424311210673382005616018153063531478808891421252837243712253942314382557852785828881637746244740481202042443638712546425146450019206600430695944044324155318474559387999495704688413428678215357296176410705321112789888543048363886512437335712082446529383910342775830946869958844710596846299747433305814425282127368209917143518695208108366643108898572060102965111206305667201111399974284177662049534953104524665528464349662484092819720177250975073628884564934134619487950910445082955879858535215296669299727352729918668101944099704080089273579526535808951726797849108483383782843161316306382181003130118589086260938480795818687838634090670779108760266377722905545589647957396465736714735337326910311362546003499077307511898576689493124261012000192619772723652998221922484408058064205610650786049907405364233684294262093193233154283655648390412993260304567182755923395750881550127340497780126643548277850021504363740112028526433208712059045269316131631993101975383794781813374657307326987492040958036216394307773478951297625016230286685831037121204593600921768376759431851664012077690209395746479895874956085210402677033823236743736999748935389041030985524273279816363620203316359568497923542652345740479641655994542987687410675851893744002111889079651022850545461123259468520383026142608965555074026273579654979951321070103344684417234620669284195187695351432497779874789724127730442122899599181612906741881329047049641749123648207358758034806358834838295271785054096293913657244738802609250196385289801130600838617810790302890279486502623649755835977435458076697293738285919574745766380078185268975719893057175370432893764593738506901725719885340370219657820326606755830768841337159792854623460811323985106213482634727697019159534110592691425076523034849337530236619035026494584870476875552194647420209044627756535668387681754772134918192375448031033389754367523027838242304947184986733620794644278341701929554440041019456178470198653733404072911461450604240606499522896528204833400447613525728512481079824914927396769720631139364783889077191872638644368285549803822406093668102466255285358303439595708038467721263459931060921090214732515619051752390547520688164241577291932620847423948576871051100266312838477401459639386756971630848651295528294282212925025356434099949140678834873483676147500766675182879894057935548529430318314749610591749935994944298128968010356587109216985552355043632903538368351913964877388009734410161974994985241843780315718653403945318481928221169445973321869799528441287037210934374485905813233851705929036677429253545081790231039680865979957101300403107204583242340508979493331648930517450876097386290953132946442140640812064396017641470761656209017722695451559179707632609598304872679538056059392934890500179137449351775165219638312880199002749675416821516260572019060333688291578918364519311833203892587453065692271048103131967375969707940466604527572642598751262875405045996757499524503544045135853422508580729003584583163344865147097675034011352890451325426346709773077175713417322762470664718956460600001342477114029256707485177449879340308078476294430168624632683560410264075703238962781290968259005164101735474504926361156718724576365032749428613027187699443604865239061290504102351856439242036804317927665603715199030671585485733575883763809736760543592727266950292445842893168578276175942232364754510134440978493086078627910370921882718555196970661945657987883712736356795236497830884152729102903321790932013484222635183514781215600315748134287741824391203603828087156648135297149508346186563278812941925909715262120058507313740106488704950680900666168329567496627602929191280976005637347380313684457076845215306661551355001856749467538440588215566118588374862321204841674486108767618762456750837111709754839347785992245218204524960172112590878838164132589934737482614462715187017612312394113756082327779823256121723914908588439118402945389992500535594438093669493647571442516836910063493644740479430759925736875734614136263041311074403281717329922378499901060561464352557412426560910840963858238864505321819400844131757326269063111359483304726304580103640090165266617375029877309887719071382538207444429877234883055930983465926162808085185421988489300050636557301445017054933830940232457087790018234956391440919470924026477562373863767092693526414274670043068016106715766728932414121506415667070332752872345389469804690016603490866841289796097003099069797143824062133890264556292712833560047687993499142081109545578418117741569185094877622662187782332119133942310202768175034545362256187975623366790889214041976323331843088583136611144261853361443695226222064423115473921892337874743392567940953368638458036811599888733402238741907456129982088617028304937768346866438707685765036921845182019232820342859758851404984860032097881545181536551502883649931879767379280321162332672153339722094060390086382921093316514233338455653119586730928329229440763281620365799486954871053496376379443525633718005889399967456137823861268894681579225364038040817013886436639636655568900385174339316854281968842925880970839106543431995031351172671953169826839339947401440012478949317566695258573249818292479191216096454671269314468650120835801165041541313171347441083760783705241307519201977551731407412976732526030939957327612329250573371587504107823094536371088073860117636475079800085953143200213521459994662623241928805880570592886872049696494630691001869783604587723156537311024138955645843726236576947735082607935730989847474450646075941685379222409694101629621360776030822063753359702332574352468627801797633428432129537586193513359553544095674335570391431860623820984362750749707632168438515377350433663174492506510914530237874015134912788092955516630032923251071383399289140956235261674607296272229068288607218125664829007914945265603681923063046712566141430074337000777182381794697381768735018701002437583241058205258907675892276478528779042205432577824926775731862480810872946925012541865304191311859148377650582547357731893203730364816083973615680447904847754716653122941477574733483466260673668483965531201145109921051791979856281133429664598069452891346629423768365310524003125960101203217333368843506328627169612579543138330797768078273413505691340149853200863276162730298327771961430360355658304104083154487679547388069344992797618001740255493137506473974663987505586181789123946424016601914588134130072422253952523593315505327673050406098045389409807573688476694738147390195791746697819445587950524545946248986240733758401072747427000463827367247990013422501150538876751588799728959909530038484006559179490543163088844809802655695274579745341440734192782398473191705310284420340697101029617553761703388991893528867177845230365394973923217748689380751414161445295939394361489435413725285078715589448598174882811529336348607914243705809925418449591613054770819173994830903446788686465289766845222408190592611293281796892024846796188061875404957686173508323073121053468247913260707033863987031562353097297173637798417158320847573948209509744137858722775503120777930072147358837305662089477701330592771651725607803824245973744222811169694793041940144173884727297368606688640748088771900000988598746173877791024698542952273379597314807036530549144911804678329873266339274408313034584326868247701306290144499904766327069967806282292611143620949548190171242950900441931677082440782990463739406058151823014447936752660079818170949237036100711127476335872996080029170274145568245313395222443385521862844788588330958863033385932889196602545472299458210683085331360998635999594863569277632442836639428042000088304080825257274899308540666059117360328700487695649417069901901026539501804898927907626852704280579079868886991207108032395581220775677202691155561609864551882342885174174340748830041878150708421729003598392879535518234700875484066067693896471259011974523908029035438700084213212489943455290798039432612376422291705244949449332961114368787826423224669426052137920147582209580547970680640655665300103232358165865102518269687401425237557084914335287488000449498029367312349404491786086131465960830371739755836468740813222171777296309756816780785001807085595129813556306962973073140770879716565140960388050991821255190384000286530662996772608336899570330387768234491700631096138939531716723610655819336322911641095672591287663029856013255442963785614165127799645836516315784075532294493518522399676353002399575053491739747103468660557756537806426780332982697745041988577272531126878759857004556659231591459365550646580618186735977030017366050367990214420795460610244711450235666235107321012570649860162388519864749074870226705543787375022234790415132739315980798405674066177428837340891925162217569463188909707749988614017305369141854668286935070380385183320142626526977618521111244284731911382359939952132080618284785527124558548752331389653495346764909619825367077216522000916838026656888417243733468921690381424379119727978282632478476937071961214545419731845424032601401616088312945015182929721690488445718484241118778941310039261540033406707028786916337771980104095415753826013974226530923267120840207896722580229710911762447747479857024128823266023297479772479837614893437068051489267994717995500112160649679449064793702156919406950098941363874868715457271125853499279932538613165656104773011075037384984932818265163657991113313565494485391839603820216795950711147614837275452531938019955643039292091343726776168585193240465945045662610967359103850146817467604050257233267994258086991934463111554029189891970900167177846190836578483958418011782313999719769037523525022145995532876229759320933964099411232501299597303015992445376860603767096426916177215610289833993035421135496432995022367775715661996443055115795268499321658121098729691538458768190629433624955094458331666766757183297773425532296094692605431627370170770750044194532938764650082897669223117836513490655105981631244907643554218472978175395394794870822348416292593754959898263164666836170295135561620356503678023508977869841975077248282680206900883183146703955478941305578114194673038579601798035671789313035289571644597576787445025987052098338666746501005354049720340439082341042053410726646430968892679662328664074867612914052378431887259647268739416424060589989798286897409338386291752514324640408611186832043166215858497972922760724075157788637611617748081027723595662422149549729945961599988371829299865414394416180548668796041886084439469725807528109870278454573641073516734190636332277627504393364010990787015386997034419866595957357560671930922426579963754259858952696944873085196520457944994586610771643564228311990933540281096291409789821047512337062162545897978703334285789535133228287907203677806795205066934831627792755942786411231176734995161034772290231064814014303860267607013403643457754697661683553223300789347955922327588011578718731733087192205129847936950498446328221303722877362912932965239118170051241227747130088607486405269445596596607751921231245564576596302371707740912225740468273673876278799553888287015474561513182667319068152046018988679113938695001006642425969368604517840039709069197613089161263278666841438594548229430939504830705780889565316778363337618121920465405188613945682423211675920368421633607604296669340606757756599155566374630081439097681349830697430817890209887327208767098756315282780514592722033797068787643906792869644009134499490123356514814439002215179064519916729417567810508039231910412539774808822591183421027639661600197154096207612915139405022585794475628481217415139846779321574004854430639520041597722200384109139216074054969067205600339529548710404536422960734459671413158425619972923142171476728206793532013215554468516087978282329705047619446149330904528260901066531483316914665497332402164718653358078346729572081040707226855067995704334294884979295596484626660596146717013984513278045662307578200351168699762795469543656497468158846037651342329525392475633112798747373303188397862538903045217093693457439310242858423287254370130242956951455075432188578079663316369902200764311577403490761830532256843088229612622760225828413401096217244559151147185424205264031654340310155499185071142162400243449892361299378951953017338359941821071167032178687100189537998819989274500499526849916865075479102264179262474445856884980562632103008260029420801308446796997603091412789136695916499015232028855132024077925195638691527169955949734263106118821465207435620461000431014264387599063897434560325649066527215167346271640657914742841899622266520078253982524612180368688519141512778998746417060803815764788987890035169571854866009832456642643318537820336989867270457151918404626708902707960246366720585826641396053682502307733763174497520087215312584130977809523422086587318802942114040474221121154961569080208504737748377879694541931077373882051932495966406050041269936889669040685666316223979721554915844053945751717151761700122487790881230719505982249821414262538987340888253339836583075295918926276416423258797524557529119951012047155221255952697589531427862598731211160027866416409778368957086447038469289806633614609203230048228704326119437536916233863189268032098454148757356706840570002491516696473058941197661334873150703572004486320999675706763005244654444621110055412697771866324814251265494173922251850862663047401209184046617901760276158211916645365033758246695528469053813349399561228281435693794464521896391611180459478556596823108926428262138762152887332344107503145912577046768469033645351308683877994279597843654653379236517668134218412127275708792937337032547278648500365213593981771023413155789078735688877278497057025220575344188096245400850499484615792922765981632722525508052603009925630810901777670918912578569182069705624628393116240024207054640761519959727139873441044386435530770485215647837068923612342428674015314489694002007168243691694451765118513918328536598046537669987658009508554563269784385012389179844357363000535189398571749730046971297433813742424145653256251956177974040326645511760311451035114654688260786529694923057475997299856746543087853311718235468314835704493938749523067936501523324030286973866618466929110602764817086125288427800302177736315201676674886391551374435659271679878224031880226683739008341297606809361990016630019463238571199768588013161144700964364080789032133781798379043859464474500949438295477414304599616212011232669777456638637611980281667807951792577634930911245160557188542323626515818958845968733115848492068304545010729235996047878209218842594607830636834885907346111220570215524989341769041169771769589865456342910407209014754751025436200856619612887976489844528098392927431609443902983199573278839796438134359285495382531907684340898221224573890016754760449671644380578009711305289807432781394695978552753246140992102627299811521589024204201279038119497044550786481542046270684829743859924485669567728557621168072996695424872069661407403922490916427401506488672845828854512504556604719047838373335863582906510405672660101748547734780074418896096108786779178989826071813511980509558220189964720660615475745073742752991916468639165493150945686152770187662454584744752906980363645608417997818284069164477070688627289054900627407354772868734762849819336063722873182172926759469830114795084676722839022195594461230552553132280207807600519271735182149497638680862954622124566830058338762439933574866934201336128531101283538948466325222427348690409013589167877701177184840740271349349515715172492184981686998958748551171949508106408640174475194420765109285640746621967136295845456517992452721774431100933524103363536514415602183184899074445172887561626558951363124003600396890021232261111946246454241395191968864314939917019694681789598162236302245663949598722854048505692317607013739758258229826140856995315203276031797414926906816236297110980050610832728248227394924568539114551203653971213335038204969033812607909648155665117128282379812260940548778412168516397292698659533027308948705916915036002480265185224530038367088025131234995077158014681931329873365161065986029789589381954449037071605246174649760668431322137862150820536908494540666114110429615111181618311605802137604150935557197835679457230013954770291245871248078488020765318048890001969290236258633963924002546995222352834198203189315763585815737957947339884031396513223363185334953302268524520262304133612620120408356852446338253754940874860476443050598379202309294463964336647752085367378194416040144237010278818907474696610537140907597927367352027824783260038686854470986809868793059121290155879288283630490991010668897940350448865978608973313385036994149244209379597231223996973037673482134298137726824639556478077307619376727464521150338933156023952988090902328799500885962668580857704985736188167685818445334078805739002258940753586075674408839370109747458153558482500603485983044924197958810690570617938112203977925501058516731958580612448329709507679861088116885390525680622234553436828300755299930082274224334767114243857931934979405076588784904848917929941926085418042366003005513564843300868001476528843686446055574540534555290361215670700498961140182705874542995784432835549495838241967665736274215518126967298837280737505948704103620719790995120168943759027779006009838283561053353272477030921277404968895766728565041569496067774959160623692910341335437581139399312130985775548773048995240808532177461341331449742292211872596020014441864941059003689683694412763454923287635121186345044979525027935333106296061342609475073430696858523906447573680460149640261466783847210322403896815439615097836137088500383237458144295913290610920624537539277700290253963588559120622668439229609029025066644150179208764955573480441441484487411341595765261022072890935894301064205776173056346572841692227504801992938506118406225411771822503804368370093411654012231793050384087166118069196089984431384268239064130641621901038062762248166619846384979340425587478302359451312152137557164902468640129839854661416060326656608376050157672125048867277688739363093429744896371899014931095278651785111016358330212546366604388340809904555116469165111316126607644536688142251665523566283510089022124287955176404899987568905559655914602329823166997397282472014097624798632043110990396873096984017544978741871230535262874676213061214641307117417388756284732825653248568260644767109300541500678599174999889131243984236272386984278332043238119975939292254564377692470979075991367579535087955892969915349457584326091367820008597387734380345581479922163010917071081374459838709449483265336938040647958376566040687120089826240313319620327508675524225281816285449008974553245397007117558565895459995367707160662957140735251237711641045413639136483679820778051336109678719336400725274752759627262894353811832905341805337871193186834228892104056446438863583622319344186448453962910497986404566686021575243632082416210288317554392364119843925292857111217393299200891642541197180098942333982652312851107832100662823774537120952432069707172893696487642575635999326542329460257525333167223637429277761395577830252078962544755813718493772804167224672010088630455139644074801475009552945661103679965445619933529149625483364489733345339686878384045671926799144809018753085720925143138786921102369319330156161290771655147299981490005267016594537123913883051639824928683274062531055672587449828262487884914692435140009298112266655202151432822869262970729692394160046761109034651779611636148960629786182899814650000981615120864946218620815771226446850114278419892181303868040792825102501781986628941578742305508339858887038746842833760617741899893293466269230564110436198791275810239355355335568578256474822739398612921696218437857932389442143288103715438043875037209208775910595454180716027666440165538583228533620002789318804870473191331744651519629634368474802831144883127123873706785412984555907855619954769028444937670592873852963606791493378948915340824817239008553111918188706394314778503951446452383861406211917599788309226913351731175955144050488256535896775996641262019874004922683640295587668760658381113655351382382985482929115303754148545414061550466117473961518151038804700744961163883894999117681131189760650687974185226065697745688607046821130360124326211803715480087844826378448712213637170727393850197041618862071572499685007168072855914734949686842124696837249930185833815584635628302580121556560347551160396152970951792330069797927222776416117145057223555097006559164467250094975276801133590985769130631998078452553697364836796736083304368026408890310836896580071033296147698946552223373830979803143324364844366266632624002996186909633605656697652690219694925266414428739134191535270174755661828757545881747370677917056944099369972250311569720517759954980347166439570578298831817259529099004190407824220443245934984867567689650678554408440479443690140759261904247156254841132381444181424372299653040584325128841290938960142628943449140800658411846066622523666246115409048136049647190697320968818464022532115197627456345565244733268666760650352894222678084140298215043755110298538485684376239656542807105417472561792860455860203494656656605030963206439183244027254065285625129502498203992483216100545254956956697547499681764348981096351718605605694876475580197936351204402942377681693034524577177249029291772283747085763533555248179094848146152054750711672480481942631416073500282657145249921824094879849386624875206439957358490150844957141038894842186260836439245375302757354991533647251740936515949002363762717811433510990964704531481805127482049931927414975499573255936624751632069342014125702895183412015372266586086669873197324105413244713094725506411979435120479549818453278928357983062554898617791292501986623611010425010976876050045305756994769878394758051521059879439589897499251513883284781184166321745728640460580410247078590916709095632403651748178481647861897795678989556494686371048256750114892039509663000955389387339542786002705057599625291748131351495109560941684950855701356822960572671179218199490528385947175943725017204980059119062908274128722727025475734707729636228777561510536877116852433366296975488639540599575150399894266240311382901749129368643786196614802845356265677263609587243577716421919516916747965351202338093368858390720557860764707627078794116605694099308796555047978405095916447934270555657652941094326437111172626501528115730735705559540613043899049104189984112307156506920047390728175991302544394166655572758102175409159742237232865613692877389761066656854822229856196193983593536912637397092408488920645334010418648236945908487809172637589429397169156357008501707074840097961517892997002845169942004854921179998911185249068664300592146492601739642580409685042421093034163754280038089625866477625032503773007943742509056290115858015788660356134248026972996369905827857127033094526559321849631488208904724985116886943341814996128841438070480269782032168025079110194704863044534569959269460851002806099957163699053013272060183496214533861887893578925288795221074189224470018073264576512337612327688807174900271661159002560306711808542375684184880131102073505576619510376661762043232858442563780117095552230418416454419935931685823884214192726651720570398724743862851303769258961278777693895827979878546388765405722251453810844974785820444899245358054793806602056137249398640171847453519377160510546868119087429097187620016725847494507343975699986591795498843145593382122531112834355091000702417060701323586405515753834227002390042812353728074938094630450796861448279683547181508107254288052164809571605330346135114351081733669327615953064813222712389207497427717992785634002964869152363291699940738605721498887957323305474185878722899988633319343341409252211517573466527329179016882374637453817446769636149902419575785623973700202298649982674050686038443195143300592264321038171393467379829351969269326254188164067073374684679516916406828019292871210772406870104815763691940398064687494726283089338219951325899183003292231729604719675099931211173638800958310880588581746640267279796578235981181267573066282962750440538056865676151397292384063584915852681874602577831902108758574857701561484660597866722124003985702894854209213686043223577129048772425528829647356641576360802798404903281403885960484226171167089416526914864228405359546041724652346655081846375283101743836635142863005327140826855544330497299171434960755111089300512924696595943976542575323790810343884482245587226481530968731779120913132686657967183467729621013691613422425597948637801027964964978933064193427520761871560535750322678521355296423367940049699559657455641153286128373029228790376063595004055777837287617814094719884237858019078200027501847251277035898059089462168187246067423750840436800018656629325959535483675664524443565325703229217740243116603036278265513917792024202217571395455923266768374960673976686900033654736799598469450127090278867515349111418625489175405412812796655507309583899802760366697743326580321043799707397119626199207550549826573370770960499378580908361386126857395012642683567170172875771615802170571617414696467608694348562375099121783439424483746444867135246791882052342729540216713931301161137990602374710812773211458257446507434117255286388932179025119478043043377098431166958053159039418517405603487735893364582913021716629782797437217008630812611890662074350966241788639893193662335076409668513687922293122274101627690622461988650034416355042707631267874437555598048398312919851599608375257516465284467605812984190626043721867584078156683925367819046058009781791562996416103592769508308641382622705590193071715715931374041337791294296119231271807106759247723738065736695041865451880811834920457943990074971400434904745628563324919153234711541507665810625615926725995244757110749457244538941615574023946858411093464618335773370162747842355429849502718504877335360298278240222421824315031932751385540888917145029986985270626419134276804456641834257576452743626887612986499720571637169122170758469027827093658459279760544736618463418298155981836934915321171634038808655359978162399942969165111985816501112469085580326871214727984969960944396106090106944978656159222434732436696204234634586712033156493405194223423262939612020503662574274968705816367761105907448769424883710912230477060856771893305178603282500552445121765027284643506317555833788689291676521850250249089275326052503957464941083636495564006651214831555540024537178380869713866456627396753818514850417507546547479179709194175357234340057982046366156714970256239338138551840339260673095880420494842350037238817322273289824591001131523574705991052098243462859520319855346452653815563444489079371346034983660716754492752994325285800833334959463899090140213901370574622941879133201352975539581471294354927493226732620396457181067852213455841120997830469362944456909768491251685411370093150139271722120731987037178209121780314852710652458621198741241544166480792526582113896108949214292409738369745932009889027102015941720614251131082767636799190642955510279936247005166045817051552965497177649020625010757619094355080867055343276334497576099762492173727263022591259393384538537907421950618368819685768060813869247890215566247010115492779156826377245518528900768130848213181502756388415021171007535480959084934167701355083415599829293511322982365757910853775679529207040696412191983130504578432567960774927851594519497959345040355255569662932876313240320477923225193630706842693044686375876060714704158497158100529053074009601683125956469167455965847150388825377564234210641351165557165119938963725339988539897375154674938255070489374401395817797825548622888927518493646936686723117270375571188590324338449515315639658248528147319565607141569999739177731811862235789309824186688786391651648432849159190913058582692184790369221072600036525564916039210070197366321822980325546475713356769254026050586241092224848264827539921431544615388466214913673705500100545487816049626479118494791139732506775229684379542999765627155962337292679137032962073942010477499635372291100438569282721696664213578382244636561320032045308760294273091191427047541278250204625140443807702896283609554726349341499829058578279558661384446909739979593348399443936886315258639344670127238133230512560942342971438465993424616891592367414433804170141110232735062017914223676872940419277195557537308450139078101299574835212577742504423371203204881832964715641807995521862490923666478690522049348618671725388092208248949794465496028682931311315584790719417888333544457834922711801417503302217985920194775416739111200346582066370767994939961978263605829292071782463991003730068914580417857842196379357543097000631875869590006296252311777787807298765405324416566821495342161523956159860370508484178497883186517165180901446628064565881260731368727518351533035236553167381101772593402628597847444339141662758584998700675561259885021936964832990902891587679621382148192905925067821269533132502377683480763990583921130310854838803715893752647720083922657948855029700107812594003885768818426980615224354462940758262114620920217723053369735231996742940788124235449719910692257847692995422985624049739874876374543330930621438113478699582792033372989940082001734138027509299045416730011125380904597395827081039446474186720564573965079773145810615323078977927509984075033436915938796729750372408715828394522407412631735244597937531391705890323752304868731045183916245662324874572249238913448994393670837741063466029442682602424165716551868673480481642386867124228145424738578095929941743971142255772893594907454527832287030215607897384637284056342986943440572336523050119544729060632373970831762758451512047008802994783764912794353079610108446060746202215644147411856838168900868252052503195131675860466302566843577067193884470448145081988483182773688015681601424504307343106102767336506156041341990200406725673275921109899746292777304692474083518097588808686391705185081139502095138132279506297846579737570321961007340418120632448823371587329062988440805109486890787588817626722819043657439346063871507949781281082327026722220763491195256132381658941682442588114712381181925658154703759160644746453250583872835134632146853186975243822753065574550181886693023830971313461801457931019059483373729828231026632668507938652875482761113586389478317899236264773214096005834879538100217994609559867294310116217221874328636765372856664118471593386400558529350611568142100244400894329525790537260245333885981821084767526482815586453677836526027736861863984980295368746688743154060941222158852901489159586228542317545063235860221547919839633213158743024337009653430799891288121445118017985859599766268484236077463830943779955641830818051674123963397695263396387937351927223167883923566080659951614496500125002103792042684116950063133292551597391485269699771465917530512186071594307778461974034030587666054153297807432369084101790475272299490351771422859884910847596791649590355149015785494539618642306330732233632027924342818851197127908920946428501415072720461617331867071346868295954663718310508648344644115785025226191445306036139648235938127170608054172601501672116625742659884604866628498116129725727477754546609725324713908019429516904622697343390424377909417140341631707436476838297156212565185630693272349999525365096316089055910005208346790255777208517643908918047163243637095844866101776887934009137409611355988702360791243966341143037838671201296888359769717168166339996277117710223838812685667899267781019523464324374125813313358360336028814926909442060993991918975367539093016296525820957370285184615201958263248905313719935371191548009572932170981933573544774073240895132010820640277894141867008164097767439240667265019046132922431551387092667032166687715272024879761660256528273873830425781270798745334404174220119882825197457253502750574055155018380536841579362638034452042980842837408667301984444562672633478599659674304535393867390410855085139855756228964546146163482792683487259754917946686770678307049872339544351125377174604945655051093092435856559869951879087945636257003384017521695813077863239562178484451341292325797808662998397517022343660199359176375819384212651839102355103898373140247801958076657080902206711129009476393800364820838383542711834551141031098320334290335306588419868173495631319379179737739476008640258772039284495525020308886510967266609192130925124984151555699439483181254846615604440800583651802685099655470341854318373505184584653063679136732111802436674725412914476740511531525403829551315717986833899612787936921085116958479042240285327774918685206233683083802287740800452371576376838496332842275051232800459222565334722544915419026949636138519762104135144655678892569059995402045464469172609330365920103171516246353819264307319704987634602226233790264142721418378690419157653314747461886026955612974987493655110120200549611704956156394019522312705847672439474805702111873119363772245492576882676234281162018405624395897079822963211642780734985689160145052377177676030579349630277079902659981185510841565348822695284919449690175593969419750801013663845870519574924107871669089167136247061254656760453325215036705372862062528649086468582527322345137687423653321071687229328968011095014918513163886020953242158471278293348574258872251747360380237258944246423490976811281136517926740836170129482438872348678492839918037299433423490438328114198123891142693511269534425532673504990497714205478172860004582446302496442661296317199389369170542949331847832322076297637116829251653549738754476693744984040648625762242054884859038082958763125162907070393331958477515299154423298795861460857631144955484558326708624058090362991195639708003318352732836751309433187389323163657690857460642636169827057493267101034753653155296605398209265494948102992775681817423818578906543714558684711677705705458926537123007254869326597805873207863400626293676236692297402789097860605668155111845259759320386184359432335002848945382306298399951290633548847786641854311477739387390726091682283743618563517201910278742431908464819113356489886444576766464093018098847124684256914188768747689098636065509285594736755575838230518225171519858679537059774036536540520494350169675803778733793696311682168667303505173095313044889856278474979299904438348736813219624932818524723381670207521555711543817372365975302120893510665146843592116307238767485082872768213747119860951925816272619640951662702158252740962341437822223139633626154756417070140643103892819403228792763401582996265158781662048016665314816007556884317231938304105195789067759334750667999492147684709901903902052639815671043553610531415213861850978764536953079760839975986648263910657228465942397559836370032397374097202068676243497406373680077021930405895390070385464999784872921207387989014006780754293984432603470943863312320908495344072153875955590289073419373897141482777542032043672370315787799271279870237721177095128119835593472276048734802128387114978623014023596113074914747748345052692887707748422181957133145148868706334678845770548133483150528694864275740079247853222791669925735045210769295924646294615764814731326923397737332390289644977738719329227466202437417874985269871208478703454264924413412947075837854282584802025548280926269517113157428477589197394480344238935194114066178682560794934986696478089369842813432039246113804041870761489579686050839182926394520239222668014236632940700493790780855379436170239578445635066301402852250989956741454444770122010173363712231563644054904056812169391016732147768674409705297979374512635672662652374377531296595705742913601103982415864986076290570330502999766439263443340587031494049971421602445191480852329697077408748363739852006747392384869369530312759116984949536249024625427316875130785101279232328148111746994185099374126190417538595469181823467582728812541514384942825387686165675123128249745121078158764021408487602536830198199924364565649301110718158141918537138758930532135380661199638710626003077653964133312072780146575341026175763925339743522059086032386219577619360846786406404792621096964676740575840552702085083911299410458939043315445225056682003205070119423536943976651876500469420233696405549179825003785533646474230453013496258590433707597876889386560847142737314620716033836485323822033403331145690881000282334062644378822370977924294984022754120543314886727430175331727170880946712613598408166282135183731489881247585896349996266497591752288137997223647741324802500805330679858307655986168536986392402502512970918763341186973832057078818653821767209648928575462899477563984209271682418050908424102605649532536376555644375156028270399336635159887148227506620141042463836860701648310843053579884556267756996197661631642932656522215082342385060710624691086193517192311230569678442651436393996138531361760791452654716933322846800934149658238543157553544819682300493708493815426314538911879880756168141548098037603698714418439632231584330646566482912204117498103446206699011367415639965918352000834506298228570436457818189083863370946207378084178575091262753576218971829268711109287519683543095153000964789127942618690239399701290336848636016243652538660150661641006891254438010485989934728727316983250206870567261776692242901688175725895519764004358297627360037587709010299048234198244501532520915165675268110411591318098090553183305060850386035679921014062989489694602585372706412808444944044595480262318516240147219363751951101848430727361459159177990222970912046884456601337659622304815442739585352324818764776990547549637665473030027254904057942139058130977285725473081784248799977474977442085881791232446536552473874633438225072305652957933965315210931432830267886539074760831374530575908087351207126971139739033795663903178342990957610797953100145423884498460825925580090056047314588668131322290012915608880027767579251690391029814388418898394649576742561358662765943666186905272522334021971338379531968752598472713976467851563182734773968355517452738296394419914956746458703169387275014791750128513439642058983141202996799474656261203022427359752410948844815780502959245128343606936893369219174229495227682017374313167440727737227207972150156371608616848674556470454895462851575192506702099181866304731324790854349645360222262124211866191951243546597089106595393785204683090128746906306114490417619934364843324281443771315823425990543418067595689647359069729822560805729989735510530807830695702902578780885361685547298414340714818931336365587731058854939720533336786441435798358066847154298571249604015277968775981539538703090908958102086648987330012875159905362063944000058896421973799411553694425279062678075935238148285618669257437105159130713565783009745606002278235862492810761390591683606579531285637879901491074697114885987724313171058228519921791750048927864828464804947156536033776322167330586451445482940442560384601932217735796364692929469765485058340146131004297129159289805652623629833310807697549201438722560140541956968870031963372294856564832255878362990993332102958366060152023694949348144379699295204690473657427312514114783460895713052172420840594226164084173589161302943105179066895705447545879079027510290614866454325857779176422410135904106686215599907087597274257938559316686700699915503511980757159376076390496324975808171393574334268640137453071372008699481487452548034135581827920624502128849187239187290639788832874870807900495926204041858196000045753144881132373753760890838066908004115237879859174232156277496055553357181464076315478917595132719217331190903495194351698840169872058335300976086086142484709822142704207046993986187835725455401392977386313679090361064581191928564084097068877687860189091840626220226515194876187826757533384147368361963003303081046369018266743332817693710589930327289532567786457397031990833698405795635081530441887655767835246777720724940589603246154791468441241571200502556004459617910724962269340614448157328140504681429991223591702650334980641151125914917232186416964642306791908453902033807682867786271482879686848588098702645301082843354124818407423483387637094201228951953143090694510013274799911059796942908274949044623135356115747014366172406134216580555762249340769351120551829713814314165786208519178856736155477644377187764073535647985853425966944372336876187757829341512979590721159658341534634253649787275360498933683311562145664377236096214108087840106796771691452963921343101303703555969060502235406770690042490042249084057638472592306003543579913446940551648445767854958939168352566097838501736124087360934571974842604966990246927031943348177803355956755880855567779633285795145998012574045975788515549230435418137787789784730572445152092116902065217983009739361023718763015795890835475096504142743703482936987713264145324179877378592961364157025252809708436603054453074646396720021267462706941232373233430799981995144415740845649342889569974990784635708920873989105864598582023862670091156656844791291711057030304493047141969592300137754064856330299165215384588613022228675165385712967216529299398936862008275237740954134547773767592669411959228020234484158443800461390443036835402231921778132414814597315907474941447615596112653610262930884616508342752738386915532374287994601513404535099020139164935012529069973394507304309162678882861490495912715559587462677006129935852958663013407782823632934633166747173004901893823225727557825851731752954860113173884203266470887066686507168840498417400023236092432232425136896948498553598127390430886875061157121871345668625122025443127964804653183709127588141836089476250254204686818738095289443600927721196753445565824358396229972772028689978638828674083499736051564850524542154613747431091029081868316701513033330923876392015822587270136839761889351619267290154046702727132757098110101317814630917603486156805743580994906806652623161491233308451420930651740767153812522249784286583941678199965887165473018934204827350598768236472317293490423109768759935465350839498325009023650950544987221744768371396768801483292815735345024118015788969590357339826710161693409735582174984699011848975539252611392760380986504211785841128326225625701039324815648511939909778013711502748063714890597578997542910920061521490301424718312596129753522730634533371755230844088403051652167491663152301122742460979953913548454424083917570149691872884827161925361632560980664628818503804656784986528858994544539930267272914412094567132425787335990857613799095482067335855096462710758181875704999171600671763135219520806386155876903073433747007857488862250780206918444579680226907096425059111854648611152503929469593338007384192544543847005779456407548323343064240337420215167890399625582030046487875064628908962789182522287060633766381360211543299540347765887153740869578099217159678358072261873809798253101838670095575372698187477298607190645450533008052638209422848474829224220829734838183089145893006887646974257941455683192731958851724680061765446223647225383950283564862940817840531745659679989315138849853362062500157667257677858749869563125673715489443062629515065943403200224884845720301034218377969728023825928358336402016287449126886813465633189033830683944629137580600906863979408678429249184961461248230037441878420372369851808104418447087348120509200692246082487887321300932625187636231080889442184681094577039269750002393039884813170311542560460993039585590899674489674523971065896837991860584764100875247673071378698387612687917587588950268434303115832442524619007883323854454048378499389331199894687311355017309204836933781271053627296022111124150789427442782906539389640261339394752545657750563467615681880753445773630924537566212300953265350484538668811881660439897908930569409836826089318576378967707286880901689810982128748242291025347983361858957062536770752759075907575247149421688277475611892003093859909422446061411448476743359764469847935684091221915168419870130382324766632830940915822110668741827225283258465910639726210464736922876541590366893143031146111061011482471382496257584944134491791996955162865128848777733626032429540324815850436554123670739118935636693047234509605940085254679009053186986061147226494446103321584624396908328929748686093991444640555371439742454596876947671288599031487783750806096994219052760165636257015234687260357056326623389362141984545850824473636872037510693634903424204330566456616164539856762732219100534516264017295007651652583808558585022123574313501480850088929221138789986973422345336668556457352289218148385336031908344671442825311049657976022361280309675645418585819529508168513184630806296039810466338478908213010932299657066453979451076661804638148194897815937377444864482898026039783949261619411983546986635650286377884724925596423433904143963178221218016781289113584009799143089917983149406391321859369176496260570973472627277637737595287124401474708938964154192880694837452564966796688184792821942361416600570232850217972688181478036522760223216460224606760754761020947442037653070215610185713993906734767839343756420664050512219937016001536249578027887459512236325507847168138717261532005626893612743249399757637840377214656595287629474894407713775619123648246631988414268337505192720031023541798419272620968750385004771692644479562527669551019276519197580334409994248517065830974621662033520275232755092551236768963842480782345069558065969502271648574669564725553454972592240012726286347680912143660305704878909603138316845963136143016691134965597414864588754845876371272528026296345440864387188933538263624510487780583125117823848131755391370226657097015973085467895890081072210518452459331770552054726505607449984448103825948745780048128593684610668988848113797486131203579385165093282290526468813175417862158948867349184203934087757659333782869981265928182866540018438911883972813514156814353567496760464305116933738137004029597639112803202472231967580045851826628947436129310088893262629439765372584817756841474929401189231650471018782327768256903934127537216162123598950920500673327389068197093510092750299853624585624007977329959997540596422698159454382695276311341803275032222933203690724359208137355322412693850236957931771554114421244309283084201497646850865738345138374646928875580046132596837434222133993431935280161419564808871702416039842252834388669132051242285946912720491297807965929842287153265834472420000697353099327269077435845601877332212368803785800393435770903304190572072253891777367235980525722428226843825752447857685972012236649065100718347751772693698883387536055223455170941507341043857251168146529278946143460792200301934998633354491491059056242802004841333285632956995867846010509194428591521393386465085256808362874453011089915536100799834800299298008311157550420440637442333251743739998592990192360623419314106877319343706944652448410058627909168014974902117184967623067898011438724645497943746856372411299048049847572167379433583361381611743448563799368019061826108152792720686167791983521726672861967163801537530674016919316425511668418995843548493983512251428109192007045145961265762634042968776598388672132292697093441858800362023333050692302483606011840753205035330974730512623353342990541624125833793850336450026409975864173918184183378328531510599047012315916383009984448704820215461996118445539968559281863511404689026509030466069400543824835847934103701759382569313320005724616512138394063233634147768542541891561029081402262780635404101337172302775382281137687397483026421920712559722279879873489957752245727570431878269338640071809802412439526598778953992709783493347583304573800636293590129731548538116718365920745734949932738281217089282273235865207620148452195085430505701125723918298600077747414660381232894968241306271921010261329277823020412078221117211872208616583335645951863348216869347295503703134332427418571747080337394733037804659782627719499017202774204472021221206645150977700051934134951829478914742050083038287842207168687823967109016685231382827833108368759804188245535847488890221188800211126938511864055418073698901920236376248899528727760450183789177318356790443742630368742833283573223144902947861294000824051810152609397728797821172004236471665189977808517292625733935572953178876623931280237292059976171219198626191501064166006339269924187888443427933596291280734177193734101448977065467232025537404271110286178998908301578670149122081504333984774292261297794719561715340934820596321761823522745180078621394756795089731637134829503792877547828477737475183890424804236088832952033585765830183462523991283470780816237512322686579075046343962838419706288678075459938313951103385757715080792893430246699818389922913182901887406459893319373985743322585292958705229621949592502233395400551669038218826578708437145050752771729782654100852581739703778827207124634026728727383604361532272212147199822908558039009183435682593548775514762563226925520738505937187931942591652300465691696853656682428368633841000544140639430390598019040983566081760744572815482979875935389523457894459008832508182410304085853177044621515998704078889066322502303866944126547953686806964740288585537116522204642324924549585678582556381076530244224269765059056990215440178635406446392851789648190184450328849212375885537033839498543737069239728384137235171501765709955361668683963958628997580333502948867684188687046216034065266326695411097800348491768062629825266804419793367942177034529597670562410761036318764768279876161077145752959567093752660516215609927647290088241555297361115972848312376777455103647422163913836035813199531615672010811212538285946783314077952428959114107162312074361488276900309967821220693913268149140152747808098018268515020436527102468860561000486781671008892916941438202419302985798657146354041939288457294553250508529946906069089586130224029164720812360644074469184515304255225943833144559692493504846496272452686916359063221865200587026419568785995374847581113369318066707243858581748095925822899137573673535343650945423006399877482356791498741319157538461968186179012628573496538669358799334857146155572056257437253447358618585099407566170312783796913332983265364952426327155744785440145135813650167045529521874051189335851550831945931098490674736218862608638356665777437929293283284089623765165440101297683921688100893212731781114268393309050166609640108222271339207042855972163919306534794195642158757127999087427499343889270008461718751686314555046759364782382881616024934991058725374692289283245394278572269321104651012210071594954386907136938696645335850153409828265701283311993941005368583747630301889426999865023027028629301091885557148970268365685679794792219654946339813471304690960768736070875532670405422013953711673325447727363022511980493737539088762465661699748581133286994671925043501407997175830584901378821063169800690360641563334273316337233786534427414991844998282228331484166548109111453450130193660754286777967862245534662443972460526954055494172126396079039820370315356834008310663899539685154347784890070957509125328740568051069637552870638408304197270304632822965389334058437432887317614179664943855743975483572161811202300580377401375054368840883243387971877504986883995399828669383132605207152311709061012501488599710092775121737502668069980734863783093370778335693840422219748196320992672527773283695910689079706286953023984693877340183133106327667785310624834524664758211515209884429618654727482972036511332577531152794654028067886084901944784171804368112692898905085138331888559664422101328925941596607225378298000996322965095663652506978812135279490962220055450101355131932804111332793991090620337310520335885964391921185595273995460905121871008240186626125877211986980122669376805917134058108441776761215700393370938833302373711598586412982046290967184012600583710348586352555857666738601469198601776811400689759438520865520214061304851649758738476591585976211025779817707755677745727746496660222605844758027904318251380739219361138231513333769130633686471381966244611864501031952749533524309821501851909636621491527415603228833177027524603250484903734794365031552763283982617909672232128487075193900209485689497516929806364230719070717967367628663829583400139853038488747849678100021473491011303422847436181775780735413262892178845643758128030481851153973043789869417483174630599786535683647440444781105969400865251960403960401161282580582993519777302851873413776783328808117848959070886236273868511767633297174814591815695483374323954440837391441128036054947934881551314628452926585248506765837516117581487312983621661768102038082647256120656843434661764627848713267591420026650247791589876257153405660254068042783399678747069509430211761205345594921538344131702620124251683835492973003005161055652196077244074342917693518224194398974286307163953007960089205399812901446810351527704279987393791721188530243975830502144372295760235188019676252076170372134548626056745342615895286580060948260122614216460900289193819552023944961159435140003659627152834084239336109542879595403352863536199272907885316844274094896441675199951851521739215711650195947213113813688492366354508557183032372999676592807567756345999990063641395103933293743093980692929081156813071979480486696045486024807943852444463274763748325327481893078337955937978973609901536849179980347259249962068688955765286500320823859012889505297443602891692305733985748078219340508237456072868246857432471543272537406846899180529468486670564690508220207352568385993190048101774605798936384630159168374460333274985420131837758298107119180104133553554319703205208092751659863014947033827977596740352436910595488770719467212776492964381744392728235063885660220106386065576607867836235646502883220791378346121420726390227277565596694501329290551716187881402291103716122179422717989441846996392749840303058197675303247845439754408295810851165364510596466231318413028459492649630435242165210475314533617513745446059388870513360817163218246989039392197082933438827419785089034081048800412797108735095340754143951731366460054307656236254163868471795850856010994835222278663070484432693721371837225508586034878376013107245551073570489388932208201313936978369125519019330636438486108353602717614936575043193258168597091095031043071227512450871679489831563688148965296675823860053605154238277683416888766486500280891589754906815289251796184033724300302664174258931437753719345058877128177925543563490131896984118797611711617807836593995612461426433537898130430885867316266272496106385776930501299370412961265708254448020642086054745940926149561659363945755237690078451865155584681845827726080005285836142262712090413472840125600875692250969327324157020272899321523135560518223710792469267950553746994527653908088161496438992351464264214514714704243025344534465570979082158625175050336452559206029426833457407927342246942834982540237504098044047181699772205069235764148380087318260351880967135107823883504185176778110006069983343261595496345279162292136321722245139624049834187713386095342336411181394300629147245280285255416198175580297060055096224310917588461160950495075554612529724120504445469197880404418069652371380832559614307594123533952013746496081817094804046453635664251978479388141006262640006793363191237908473206927882269891701383277996874980443815287235687687358547452479021467767632623346893871700077127658354358758679673751661532895271537719779932384631843679924354717662301356260741969053179780988694716293118630932604467812419504637055251264916834182325078273806542028835228380616478961462454961894600079232689050667651853260481199626670344867795675826337296028559085836554707268097478040592091194158106743330614948392366320009389848078302164083082006202340544542720489342939061890999411690814618800114271913584264212310573991019722619455616874624399979751047731666818348233514638630309757623971836785277797592975677671565570612246986928550999492912484277286131222716488638563746174228727120129356645990691526238529926276477365477585764062205095625173189383128294133548089058316964734679880281561522135138320194580279245697759206983045479438855743931474587786509859883213377714147133797462624863930732412228907321770710402226687779190589092728065313990010218975232300419334793214184886061140196378272742634747500417423347235617934285846015557916462746511469751766761499655522260310455876297322098444823055071081023155946473964283399875679552272768533690860851291464329525922378527792712906233838747847991232573822942293929458285946376824268751455493102930006812309172459371417784129043368124226208843868157404519325137221286304141077963475162282071097092515003868181880204913136983899212975105376287078775192505869938259188322426975831626154876712461952520058230986079697639120803639235363707528634425180361854210111238828094827272164330324497329488423983172365626172500428605045180264659859867883931307259412065957786983872007687752306118971688203871315199137917247542984485500024360205006539753004256223536097154245064540804867946061598318237962342941449494262056626943033788303823477235671426360572459952377066591622982240069167217297882602480436083538950018569470621511406287159948197040561774234843218476676570365379482778456659770733347286149020562305865146390298457228171817800945857555845723125994037067828579484248261911358042916113093320500930289832183994585526305624083844995226040952228852122985661384112394740412748514545580177085551564160058864323550838765894140537912139697661148494797756571401702106877442835206293501561938357527495719633218331069993871206025570640507773962218349921744553503279403438454471181356403251430275317742744795297452774021587022627028826667135667190179051307859545149721583512232392921586685028895689680474596584826729917087146506729177480680428462511344357558431424438890258115523765974690113713939717155493140885265396702833788373788067078743198582753221995312124580843361352583158763967831404936896736330624665666860471597051766562294099590475151316092849231053352900062971947554258071417733690631427425444776018798691606306039815651581874994657846956772193379356409994545672984078913494259085211746134133718066616603927845111620859031349868823854497504349365991810502265973038995024488699065171605618931808662616210490195521707255563091012931014229658293700319536310385449508490115205577180992979201090372810674234859400895818039799148893170759890295204816777926946318283672388711547851170987058934691519994868594679157512822832111760367742568150494591509927877760535452824455194610737359988715907258613780442401004778610272957873662651349595649182825065207844731222431189523148483297632582501179029597600644855683512410396812145252911063254232581090000509091534315809305676067196547990015801725663493683056490654545187511001836503690818131340273231647406076817910612655941875362531827009665876502079163039466057229320716268092941685314121729218663590234346719845650468382871728412572427780812335272511180386525400723282156538171506062696733428383040923443875104329044951042317408766147561001918437896815224719992238434990952430792931060655286127484438746816331722595127292205259973786002064262824544416397062700712465841158076373208941407941430325427137934862981849923376629904372819189376836628188945480459048463237868854492244756743707005165734262047873633750407341008500790978002614892306771805095282086758297273388577024497754345350191364157687170495558144792130291919495412160383393723090822326914830888897678812131375821697448739502674493063155568277323978193123375015463255953490941483728310025950313070413819483597728642918785168073070836310487722914632779905586703785085663734474692202347456917876952036180851601522017075335613406416845286339412683237592405016839473204222759383278902493096224078201453085391088868201905464499643947704046375874316776614165149210369791476622938622811063925399300770812331006084652897287773724335588513414832243205287499981586613295182445112826176737405351736915083579606223490297198962387836603294108099451574804461781652209595100937960531003661661737361024999470271899846988348830573859573166075004416988613809353505400127892638047407931441531155498338554586634543662461003775590703500307338684035299412033849095128706139454710691676781632852607394179733140621970216394028422716332992075874198424390099127693795543891397092089298436037403556654956838611027130415098184445784743318452484255330354345859531556351911735270296884711415297565116332217290309495394421914204771171747143579885020279675344187445298604166231194074256152507849539710358760993546046938189733444378258639317698067712889463340853888484583237965752149993142769684128104595212115828701962604314946340510522263207005544662405943403397717695158469637302626509333287748457999836393134589716535388417003582744037205374324629822404963937275592228951113424760178275069682429549143287566775340579915216717775723563044134015260132601447159775480527260937494336960280789067132521929250199118875268666846632874733210620515821776330982552229380561126912267154054321294499694389543682687047910674967802763353384454907466349639088176461519028075780990015998954215591409608785547673058774456241296523066310687489719525824007784239108423910447785338112922415708966096853438357897489099355372576386691988280658089722063525182403144334685387553415575745024468776321893963759755691266258523745026912366477920062102820769923531917380296977405638277763633430075787912440279583338732657598914006001674694228299546977613769684551212656686177392332353844829779254651842076241392078092426232188794914360755709857420756296414689174189822559930727280850302162464810934057816491006924970926893386141269757452592896911904458483978968262010420607014272341352458937014657884466885584775550830740404454631875446492699602514752472753357000754250567080356026681314521302041091599982588954622462435262919472145871325194336039082974056951935137248743027159737357554972298098879254937011177252695440131329500011564591777951038719619769276974656283269582608859584803261075535518329465461445622928821854232354826159072516949446097936829432313292245595474150173468229257158122026424066606709270031362798202605348592112216247140156835398900751599999816385103681644720896110786129193244033956688205179302597352788272109244163400369514563302990865290070002661842722230631788088358028020818341820070333874074785325856118998083402097645324101170740067670002109079257268144756585266517294363564751583115106932962894845830824408955106176836333772569785772125255371705060589014506074655218741686819392469076071720502005759474186152777189127243132041947263867788870204738200457864039509421650674839662990560273186226546203452611193668381580814982257258476552470318645419263048740107904681954218292508421085518984519898907783942413656398990912475168980651989611624036037508837117546433151330284863758814941045570626715758078382633206727521725007447930717827632540799224493971234488490895467027791580264245205063522866317564407188539814285427051604316044531076409679556224988631918520702537638208797357766216367307494877836061903059871661769261918708152207573634795290960290481096477004525876658860969754621183735325493020818059607803648056416421502829316993644810670784121975794689822381201591642174044048389127959368352999615642069639103533986034783506702281838707739977268748516225579360630043617301585064160375847511719282986793998243363319586008025338882508244294669042372472811572619997579028098492764830993899829366630480086540270530975525976951298171183255145419808146443725147340181907655289689112731945725180638341223918729153008355141337026252858848472571712828627936961508710907199788842122614192864572475312647228095858756344627077242484090538466504164800487359387746178468221655881683317521231379249049142225607632832877299118256094279453502306864084432949723545244431106537341099182094727357056541434344115829745703204324244976667634166939920508247816385187571495736721390969227767128849808990256502423784413901136565098188722385806962608384846396992331292586506038941638131253126472171735762255412025216834574136997281301182870984551486699217723818478185311338880850027017287050872830469353659664051661806249250258921410045847382929316337682289724341768096354930123836347127434052858144875626472579692171710116640328904044449652135425340059082989315411830390088143650737637899727380716926118442981492337458476374440304820759798086299375394687367312483697020659202337278271727626483691804875612278269329116342966429622865968001419826665934059908227958463522615079865761078389099976340583921164824030200252768836142977269336717378137692581017263309838089188041170150174303397924772402418327387792153721103966473439564055217961298701969785966218493472361562859381121235247169030048081425036098262728094009740451714859766624856872976299714494849375336155558887596957987142945000557304416348774098465054128349717203622166723382903232682277638039399391993619207640276895898133636432967335423030490597621493947354342581164266721838687826546875512618407373733292956807486778562377169327867343743605827599145027405693534166229265665432818953477571849493567495831305330268406792976527309536223920113293008599979070401105624068849039631810934520956976440612568877705911202910736908484044352745708529209479775225849756005568647737797458594793522287335390530544824270678899404058987706070694562932594887856554121576911912855337279916430177489255034292960435714556500090325183040650729524164874380731325709592842120719914610432902919076184708597884471936084733394911817751707264207345163368870929032111991847326130510744744671284696160992518138387683341577818576238896996556090196930525899026029445229500071625938882994291875152099145078366680756901061017807233622803760109413572576196652402069099063659202322243638034145877538772578277203072219770115566149239916134471092435690852962349872792189186560104363390430794810919992832437999987360906663602563590309608559195045557572788776784751997238598809320788800468548223084509138957325061473341255068131786580218744535426616290260162026943459372834646562268394108984195525893137288301733756478360234034552288991168765572393546807964433354221385700255693444987454835072953170394361539142346409075096542930157165833112461731385137350829298706693421777794276787720885421625627565323309422908921980248998514013230466065218157197722550679387580705466329783720501017636673857162240755321320945955305932833817944441576403870558594845680383561097136628811970170198324886648319451468617434332485327951942839900046331755958613902508182377948989877822572255873869841084507350200469346715120356322120490720813780203188007217641897146188149452664013990154000647464349437219747180389499568717416047087439288683849882717314009467331411914248992228764095005103984994115360716704177660307330225651945270999383361237912856908061450592733064238509417960253285101201280584216249342438347474345894924530671822862562555248508425696103105832753983846629304603436445416572244121090281530715508108790437108354070245334119130781370835743615670261031534868638594699775737936030633588431427794525034429688234001203596479295761304786807332908159072304190922197302908079106230820834435714174890952300738418628913418018713815860315746719305652618103712200093792810087166062809702087637427644674777840016192429746913826337898848580667978978369134585355897440352419139780801177191045762651951382007098558107845847888237640284447745513957988536609135664054800983013164677064137299812459242846748639197490343250860265801771316801526831477930286819493974540442201713350875155635982579961617452651062387483872526156408083218983106470517105470128708142678974473712268019855951657940723592927178535483038296942481687884029189589823759378480052481335444391825396605181292559328343114578972328089995586005235347441294471396454222389290500192555801896262906913757895550224484135434828303336146403409325126036031509449548332256325786929861856364179237251516184201032903743806315455829844040139833792030645996690245596434738593488648454671395442187346270140666103121373987706861750699720290846210547538471011905056719290901753234467703547855957903958701765027319852216509813735811037822059176275250105412135990489092319159277351056661458797233063758969779252870118673701524339881083782394589816258596535931399555982778914151909158046991810473601805954750739011322391425877045096216538604441079957611615790302459991198479337958084273401387075236557343230899828528059355883380089818081095654501411875554603088000180986842058764449264264532164735175782142055120073396115196832355398615529760951689468170470523896644040343890195759837911311496590240981599422259056388255894596580871840115977227904004891369895415837480440704794818407456284590262771520746060753018273537456544384100554606080701182463865468440731366943600058050959922057499204271010698219942788732194533493331111245862397454525522005357220948359480628915052473198070437894913504398765613302165203112304696344732551490363131923897693167772705858603237662497191563258162245670049233266869688504458656814083517299930471505549841419554848162744518823889479010504043889577757821742153551615576030840781004851062637363442133592138594217872752741212765185745593765840698731014262547121419312195034190743301761024494296754666041296708271053348159885389589952956037118472584293443766438847714424009692017315375860275137200442187578453602234653459548685072485295050838482226219546623770752369965594933745057457789848005194504641878923446546508606035419430730610766965838706333223385479420448737144934411024663012423242153173049392868968269531226318229184038970264067342515464805590142709637896593201449378153364827107556575061072521430917872029644792069695230948346723486525055225268866441673617582904112857383026558840763601755821321761714336893376967346420299319086356903097145257476420927118738251703544667171376384933249948047121083944730607926694543160357591826341524403387224601902998204621397804121938310215120382063300774558178517372911293765985367291728815509237187928652649841105241444941771062553091290365889096975160710746038980209171911685091589476396243500918730970002578551237070692765415416393651235583637104509383786553896576503517088802955937590656350053050577765272967779917285649537476249457980061126617179347472050464790051975185345877263766773544353291210664130071381696517331980320291422302813018809796808803628874503087004057829567889657478966618324780381666680608339361344230458224360644825113942654655588079020745708527750762655900472594900359586834133359462790319462260055212853263234975318552349628037533207757599432436024486435791652627606357437930920748317288863602611351528410034391463263405237956463594852016072104081743814751550782638882478594345852622515243792314782762178476732737905882722217354718443214982248007066448763824588315764329986398123447506062913252536091653380156962065802764645715644649874899317721226808497778398444861318826127864054217342363272923943265516109030901454175597445113988496079058693619003504918467959743637680465867147085142795786454671081202083810269458710310230961583250669415669901714169061175156601665187194628257168531002635182563144302422253505920430110324873800856092217844726081955313762967550058526044122979884680008832106109772170443024851268395224040994356173760504627131317772586124544621537291620788008773306993441343430439044894503122030208389027952468701934226773797940618655964845868291365787613056225930614942252080336890113307361821588355959283585581791301930264075888728172612154933802738323050810971503792639029726974421376186239300153187278851838346549129050344182727380053884834654000508959475937497488474574771141987254412450863607436523197150909603140110228726744235456700828867748127930214659527447964871511113934923724127888709550643608645657266833671907617822707297292136388252412743546737736041327818921839765374293809222510853183815465729353951571145281960846539497610114031016092554571474437596444594467793858651139034554245652802567875012255627294807511170913353627433326242671207263736842996819684389260798478484078850265212386050598077159859077503174696951650035992951842746729091010743871483379973542036679006221327634270228504339670117432680977568596934723549632879783264451066287719170719892150291701125839130867710086285760649250252830153402077765672009468365175390612587205637994564578200856054978212294891992677913287795475650807222102855711307001074222517534577900297230913141803756240094751241905565878352852949432472184532498345932571420199615622035504355164342226956183807831505476416576819986335336969668350195312843289347987733025360584438073964579357244283137504108830692886240677124540750814059898465412918472627016326028228777792904300420453479290845844572513892438307431238382622002786936950249554811896010979246111910971889283491031930902995830883563920062575266619784721262127312848260564758875421224731324714293047334234464189456561550953462532401975839530706883014594130128068826638781216929087124156421146491193333654944999592358946454167510482160257731391837199731780551316045864517794602438405001773726148765716248101119389553890819873996744052842317555840507606689030561825362339359114349412082165355290964680092381118519115553158351994122158680636922692190603937314856324273055006424478807165534523914801369052857428332069785991766928260671295959446401699450524783956137209844114005904219953223099257526790151622072390026763285561569321590916917477427021243041011106539187245196994050418041136338589202359794777705519631345442422874847543884689738774561089906972896334101170815840811875192105772728611457099186924240644944920633683318873265915139919221543003174815295116014228469301130722996049189275354962387417284053693141877589537357402111292931913387511941522245815352406663928349032990806036165602031342817389629736228366465438101207814210771319298961551038720396718905193306415940947802742463101938317943164827645726388330442039445141513972078378128941528197018598701502146382432895716647630285197117685770951676624655342606945363460036894822580906820233894936343138423961397638843605842929168900128289404237066346943636032064802322442264585674786253964224861506600150629402174827583140300735636375066504226989448328040225175432471712955630695834683132810472108933154027673558026352979221902575239758346637252404856745517502484370555134862077318356740559263558941633128294603195827292740069290325088541125062966560887405958165110739081025745399576533133044218822926957349871205749158244841040035002703877238977049832371482543170085659264950077283573679845411510106849702675987529397650559884493335130514204840877644315248025904692166772836104120784735621942428591718031973396145015285841670281509511642550447965084260176458692739325098021338353422393053745376386350264353722450551602663414747756975082797890572528490739687832642562626094751039496688849180194499739645559515317028326370010972919213529932124799929270639175185173979699341712114522905835117392970370714441637220296047823381721596789397344829168686030342334764359035684135022500090880714364783838867569657861801480329419043582493268738176230736969428946797326811089379524623933204101614174278037098948635582886950655662092912862280753030345017237637431395850457254866721098038998802157121572006466108456947813686908604817381759687298227975194158422368633305159867015353666850329617476452334387248858996002838603601087086772032687743472770673735386702277500249890225671948280499949455538753154057779194239905152827258565666258485827883273523825687269084715483111575821480802796863851493007286352287970505623433844968552345386392151473122338070939274540898722395840693012348930272176234448482828547080681597106437318267308902632883514472245865082896044066774003672768072027416918895071365011329584280382332496711738769291442869316196488492354325380202608434094381479447970539406645989405713522585939596138061574152775750133746602634609057871336889209493513056586955751449240453962451447883216201101772175089053934961958148921935827107207112691300735759621746625170658552637939878623321526564451696809405607976202642587540190056918249441120873745465252042374120936880084715326872054058728852319478052943669028957410765244736279876003946808142517686459739831866420724800651278939716878359701236062893175997517062926487796395505532045388836705212953060723072408733626097780290488988931968580570771038128253046641972377835549597128555151863141736790363309621143096276698719210248403826216182961709562548247545063136426734795484882025703707255506623177205583801377340139689378940555469430497985861107200208053561468710408192223953758235460270377013769639471968912897797727797472605480094767604892105735540353793689896809134503083247792184385194150844308685719919981829614523946361557470499135118981926769974821600818893094368555438142501932338126212276545247143969117581075608968882828875535795260842344918053147152515133665393197469018002392867887019659991028608060475792922709570503436808986896555825334366851770942362221142578021102859926519612400262981462278042334381714808481235024943630211099387765248688679556938080817015751583690661375874031666112355546498958655848210570488697679556270040917698448421722415636074761948260100384971110052927953921692418793533337970702315377944197488214464507189627092178057903666834893571090342562533487764849741721826456141085261277108181870592467901606018459261938620638486528242819707913975649897120005324962222338415724841579058480212133216041162902566713411746729575875995409854574768350667308622323124439725292184656464821827094811322747931861019017256312047404969791859510492985471336093446793346294121541980712393658782395872774137376948568982106264744106823654035706641214866973461064128576387662832971645513424518287780894716365224156370706445720975493340989528016982420261669244027053175327510689828128589541815674785220885654090293976620502422708291214301818300223955619411393240446986654632208640588665866249785834077538949195414630962443295921796377466767435111834577042092910008709352889680703971522194411641957469673836741538097320628811609105929399162924574983144456095965417083584325650444911415496182883629929778363549695729704286707543168553611830737421678679454944574781331362260881581406627641298438314165372887146591763724203006506619087658876559221627376684815211043092742310423217054303389711357880676885470835910217173870849277422554026876245352380551609396921790869899664781723820712381665120809370247581439171011458596975483754969185948809750148757060134470711536978686991245282482018087864410680607945720141457169749822488380553857162509512417076745785280096479206540223186290894647896349611430888594701511475455256913832059714281873900129468064174135904485820200550979102232440072000596157415736952965086415420092242243710538306130952719808323838985388688181460132612337529175296997082862052094308840852600419930112802168392623701948083641676191756427360524960228102005314534214564181179686578081599079293134095564435444001039972183974948194387621635588288079373687263849056637572355841020450824654343521915548006173140132275066860336487681764206771468610075294069874637003317194546560630873139496986284069658148977054384468770991794412366310668044229499611370308465143961888592546572157676915067531855235517944937151819530158869997262007724765704914538030938756482941771082939012343723768815826476410499689188727694906542053686620688754572165658589638337778159350593148557903446979244742741149942798960027376978223300843173694710617275399229602468952871336321781602755005085201771533201906180597391368874960364636749700323904855504597626386817882777965764742741009836868543092151825154214730410582320889910663377684975825562569180609972629837680868349404336812133379365909472515449780953747682558339265193459907161179104390544672622926133371832285134423917568371897859331663624086074979607365031561893383960193436699392228656948338505660151472412734569934889637778814445394542488336419435714061745976803200733851939787158110801346876395968056465343833982337784674907509221952821485346302596447632980587735400116689263921895502072826403608428325942198142709358288667761606095160248299242590791231996559533807253167376820514453511496602847285072040100865989910881363929677258352780038300345927993236384277197682849472152495355887983644265268818110972949082954462805760159293769610944946576051649376849034321234910371046460858575879516419771636089676278628467216344962923570334572635015880308217571800010353735787013187027686699186876632128929716130507165864312044885377154830479667039173636679347799933613542390139870218017274497133774373786843853418089367914127906025129560162884536183717732238241995618283170162739189045500915432639202973749046151388909692441641259858635201264180429408914546842655853685703220787674249877821469418142489880748845814024538768246929076528417639222027388142319868005956216721278907065727581146828984456924339168750332452587845672951849064778402673920009285438727471546405907972917755226424514678535125848991493686375443949848579409560072465875205307228752913425962784720736871969448073227811228352897879181051951630386287931992466909602732942705280061606455878483411647126715705174240972657536947408118473433888741725977976515531253395736753472168302792695109351075490172080023087568568916880508428932633414697998527204474600122857361750922945780728274066485708579871828035937044692969178368951272831207038109681285421059166426231570309115074399477723043051528442139813382646363473784436867043249891392286876493783502342063686258057706437382851145343343900904538332988132364731102075474217938710682280073748656625346828280094679092963702901724146083883241256857856503688746395933192900118846067452738902035645109833310447309267893794935595955391612998125084695843087419039590256644481813040012691287814196154304251404548001941685401503889189202085812844412164170871697149577949452173176618269115152238634665751891701370220173070366008112665338005832803679338242144983149975727584575970441503623408385482957134863270426554136353760826526871455212311216899874351234577108909205087721720850180282136723949150470983765096553561266196789006284849920691473275633755376724071072674392620893926822660363616884499740453221204380193789258455851812908137108380110017648098202132070445764038417484973558748695905236364923477717152025978469240052598045667131444849906197272189506429180967785473761676986599915696692034345630282192463836452112424502059233698929387220607613427758101891963025265256265436582970027825188516963035158704502389149712698219739857060965004523920964299261375310284795937718436673288812733787024058300349164015046814888974398301830847165202374820642074913827041092511940425804857336647496955985322057036591083105321406173544762375816322867217118397689426465649530801726904665684217212730274383827914342161127086642890481563746334676047137115949525424770568852364016468178407963665904413194935359026115070643972779403417146619967154731638626521241461030525021692930351781231478952466031390827727133410773916559543903989647030126001704712918334261548320694835038607526355944408510719228924118219227906428477459219173460550259159404630481433988184413906293190094079103684384607861676618725412004569114124503577286780515822281832349648391408661843684560725597243626316564830898009503855996608006657742983612203640043836002464396185256605250674536880072240519489829429551572708958073869647907444343468353739845044612532849830852335867343234131749838979587739189795872204083321050261063282300022644269489997105481367079255771305649932100838596689771216676949742524698143772677777729133018809629550122015915134069893219157618124006514245464561162140269363799201682195914094474646209534467340857467131055245759387653450052442226348970379361414202805260816910731266111608071846027395562354746892878460731639883079191720257725609436550549996484599099022536434253160303032863859866233068065236500659629255583728191647741522630123275477852088628634885611815050448988670764018695743508169443276372710467896192647735784805776521315164005560460507396516163016353942811687116668236792156110363595782653054520070385066837437175299502802029609631627877708078309082327951360872900171584635216678144608979057733030401267774944055500886167307737258095127859875265036926229467453641525738267547203188402116390726743570477438101753749894469217499157577929811347101843283621903705213986485202613259035529022295768396170198010158829704058982930740327523117702113823964150056180344661272016605629148909910438788086064982531589426983484703233853507602754984671149207358037035423983415467869610498743755324690777185580223008479713544032630087211887250354963627059988355684845830765232140196047955870454053107997432744740137810582506079647621070299152414811891431902840322919971420951011932079690227781312104027497318351862682560131677090924464326885516029116722867289462513797203102437803852684362812414106855140208803553696473546973521810625218456422093184877649602722899375924376683692678388684513818521331195972375980569704911157613243093297284796365062064684220293504456194640314718680407687904002244610533659808428411838504436247521412214782735918927045108252824372860148216864336904350755933957175866927487155579640098004130054264905037065074804264742727422178952956250407938861349825433882408193076094172188409995561701094795162407698723874084794051517173955424160357617997199836921358558640839190662655623375826198009019504149505647452902926881964078384572126085588718877007165728259425690433374549133756086663147823713100351943565531480603014194586739871913033551434666173747114788820440604394239054782399241606103224503217401859581759968968033464092037027567865204845091505848115992801713269257987679284383602184160276830974981075415825703021005452889232289477066248229945994052009116956524321440770177199304129313267630273576639437324001056860076798184869369466198794725826596504336913750033699526049250528127635011857533264303780184554098531931711936315397386425418190411677677634976248909482397871101922921071240996893970682048315100274135524639038006865638554618355790000200560964064329267983568339711564861440219442888960803694842234795312829082970034350233638418799387728049849075327020583809255536665005766475803827156474811550737529685678069764824476698099434702246925750906556761125966902596536437805078223492599457324356393821222877495722255572243873442588448490549387135974149362159233460035494312369515378727818066620479579723264861712473991170358834665885537911160339417039544899657186572061423617409154651819182174707840705270871458070216186973894926241560294974354718586847021623925924540426064194491357935975511570477378505579397376277456253125950682378595951222220506354568085640124955399542464889353601278618639225392088871406261189302623610444647575937765094800880381298332255363061369121764145529638475503181209493161301793256722387566340661417021712624191599286911650479013334599488903099424104183083359334325417956788341950644773764911518222668589665362815042500517762330958657708402242791268631967735120875188842982172092718598352068559038224138854166654709905605855385356355859834158699179789798202406210849108057473542214018037645943329793443643437622588044898554244035585134990517000141499956842932933452890141513867736327238188256646510309301570480509179735175945473213281573140410439098005125744233120274477678248938564903255331363200741631594317447275720430066536845229603654924324083948201715963684251949973780513734998352203493503001031996901394391373757599741459215932242484450361805481537241364149582786476068985594324652547994511184794645313293629632302530067549054626585355221150655347750871563375523471956676769538116178678700627711850815366539482681873382706888347022388869579782032296500443844810609990813330582002296169095647570721330415527609550868769178443417904683898012595259570112604111481043318254257995291223616790351718489274286817799404425604677158403076447394691594539964805830739575391595967200743606551900011232388387745500147763905643121228051350607878959310451404877447634448478990895973991867161016365412568422659645254674560109031772213774148386472866523952792694931402568557711632227335936396704605519996932559263049868817610637535391037660485167977184908503131798280025489674801418952201193098931438897787953316522147943084495881896982962092762869313427506255738972915455654851220729046112136375767194411206287619673310051822203509501058693411654350463658897108451337456203637290739674734032311222136771594769992262289988230249652342093927106981678211140792982772421776817809474327041113300866209484130641755455788025195584858866715585911928881806095659563912424013156725097277853915537222660788661512656444653191666489015776432339670128711980738145637416630774519114043393490098433329845756446723026525436660800002737332514702814605827651459331557679965726911621295094000823991316785988466407589774935312814707214585156034213978587406843117153818447859955961261874101920983628290190624412956385396748132097833033968329839516670802255174118542727287198100651606698716396544706356897958333922173469692372322005221180820784474055534006198134777214474820313029810299356560432971562126330898372660146058435566141293464646489305589819797889104665346005207889689174749502281166549196592184239772785874876187348373808448983515127956356009542074624333839642661428502335976810060354416780767532624616586278283629523748571146717128002529614876534738649780642462114737170173192221668626842471291433645906090603824799084521737947090577711672312916516559412047483739030610135014476759115995472139671250611712460433008877617341928635163387317658202090895171281881845341289792450422273033143302731755088428898234794193807236386896209878587446376431226125339144187717213324203046850536061218572741921862439984974129742426582966600687397659190294882837924387965971629759104637762384506279550570177689278379500059938902277986989219829818802812457744154807185143251494202245506946603639685291379225546146073805843518848863866949487994500516502876846991417934048580180452274463962127819189877992673532404909028013556769536254793328542810923754667691700472835025629818244168915690479580921340528860930870535082922063370090962505226179475315431165944326396749412612468667497546509296102382802799499426987202559668878578737951604489375163572646393130838688149892213552258404192194221917849186511401904955979364229680956191614336654401978047596822205282285498147971170694744118499173146254820109990335654641130672015725072803891680505150982968300617103744687019767302149611269999227016992440926804118047939898519341618925960773141592584779657329573713363695137898422183114268454755949880641471015763782550774505476835471997938243848611600663790384544397664333453409428729150431966514559265368451533352786728824320614612631083176695877221645481661772034250646962175621100998860991649138634203012242153277858214011866560703785997548168647307364352725841470684828786837748963298780116982883154725927955014755604454736454689432737906924775108892582985967661874452305175149897359634919891915991737969760768931506812279875535718375212908896444357975221269435124644572082181467430018963509219304535368114353277240606917288252643717715726124723652053577923753272467549410206765958176238088910577585982390574290870542571975768625629557956710602231896991806273572209786085043161941906003296750535529551298736440764999586838647779579859097966611867756248664072163280484778229741059951332221807859828409712008771978554159275673267008368236791941996383669440926210152925520646157872825701061813774657688414324569674595039144123769790903352656702823718301117916856617985569194768557007344265868094286727213963837577505428395042561694485338173053900287271924100126326108802703957366903992534545667163222838038978270496120425696784716421294545708160054939483614063065373727247973690080271474074505414359663265442148988692932924523378226374528543199354386656749739122518388094729959944990919737383169438485087849562970821639873189608288170358323244379468488758347723468833332278012468253797964638459002365730828346667900162923846972743225469806891684233480305435323695087719000294393030705325256664769669527060595381799289029601449508015798760794680134156927604508472014600763788950523906341786827685444407680258936175641402442413222955151295020435103313809688192533195735577857498940126522360524025398073852149914271989980304444574913933345997118389345527890201089352846297510663426671326326291456959895358059881728699575891179246178234103723382907290451190898820149337592619113570236495478830865899014896711771040200715805539794003684898957241479269717888787171264295433446986405463126385927814693149271633034127936416663792133505324756486622666035675692576806055329829760382895494105606626669491254049641803702976250753196432767278577389204666052344178844573762329932128411053115229844432543104451561547160657205252717348367035665002192149279044823743370155164123013570381646276391924348800073817621614401494706324521032261797258518733606151413070306743951500076296233564242948633479421733568577071867822627215947347587893409833142397410462187519735652304586012379296643816180902663617976695913487404226225155790335695601186613768102413346087271227150262910563801038227434295844308045771131157916988028006131207139420017359165284023640322557706907802166538327334330560946966426651630857253656657838849439899642491959000352512687618242351894615368008513329558990925368269834509820789075049802299053624911163630139330467746015130183470777780574770786146191919794250041683239763032730063761278340499813830387830884665070707011897103873547238967993241612735662676999940126588254559827148342768163773060853158431948621061878531305823062443906006306923467254454297653475430674566173218064042013532683252293121039537614362453196035186010851597867228917075150056007565327011882538802033152957759001307413886486271661936004699133082725434597552378178978988463636521753614444217271048772243227433489537264608172186120216736846000415842401338245646689467811866334127232717795800811407245430629573128677640122343329789916965248825638217603423731348091364929629746613392812304747253746960488761980224981083798198574853112794200227387864307448053238127263351291776144511407120878892963093664512057301891337940906366070819458433663106734122600001100351898546823700390644031418450278639888792350644433854382980541573739680638232778630887596698255224079067189290015887496464827960294730499840857589871769122327908484992952559277982489260131612386967262334601925124407699211386970802903013389206772801303634696674368089192570409280197538699137308981798046369350099770605538436445112010200701090745646711907926811482064883295203871770658121544498844766895084225050749070466649077119354906804462126469440947163839401672084654652336301396337896431228203826894493031666189618852501988127198996125165028482668162843560576371306728958619559438620350667180208549872753266212396143921193534104049198798604527312147853183624753515663412772240199903853610550562420894651804045994580294068420048685624271515721328659320872099231225958610599290716351229743606182781349896383206072848070695237483655153999156000804807691268193212564009402217222287387029324009013325030417659111786321916474879366257201660986368511126993886479512680188908396663533707448552653728114220669266703001780541029565183725180598909573281824185055346662688513591813867810899507303958688267841141057413774969754554043458969854921717502309826164013993521658136657339010260651449493094241278747166767210017738639298857140494974045742735197525766855860867285666279690492260377841795493197472629423882231684291367182147023120191748147823712754487945156952764681839312150584659405388813585371205216644542491910768793727947999243152436083166946100392950979322366140687680035203829814985744520666716037971680371768661440258539129959921629700439882518368217465115767941613370099759910825715596107292204401049894116258700737668620618589635342791443934719425398483107158366411219345344648405201798823954666956243123364308523306885064069515855319154046496103000960844947391497769317643647701918146094614205999893084589308628102304683353661309306703881467097578102379056860959153188114125970854300220617080409040549536458665778569262325250527839536683030766347246492876064105912670682299464983323048952184758424231806352929831131903324055504427452833652281492262576497426836153999429008242823929657544223845192361320856819052448189418677213817445241777480787643462118145829782632716226855832165102053682657281282106396432800525617897402895065220039672229648975945194074498642841021925582938210904188209941710035706260190914688230799922064276272021607539910211792178314476289804999192481143921985678733608615306162812665605897560483628149137766419713298185572788726311376050152320000895011922457059895680477547918365176452290442309513703558857383094594434731142693343542461176100590375532744279546192229948676576971963705364788370581873476200867418691288467704347877630320018241055797146355592732952157102733914559054731443168241109777336860123477254964183868814054694815294642089489136134507554008513251028576458328114099314830891569180475504723848298251570566000658993834423115403920615326863778162347133378294049267798060917488028095676924045781753896466615013496538628860030448347628288655524700365579664404458911010828180242109567533590618814110084346064852946110369777229971407544542531678340581432761196160596282119630278818576799677216349105541266631082612930151131360662778769904475021191304049411531391785987594482100294542032103237344870514800831123780065495797060961844928123235032942681734596306713078374420977559196678394347941643942592409470448145588075225327296270107003665442969547396187919183936660677600564969558932677684514935653055593760366939040419550365537498509248496143011577506590544468553778862311966990384343516901295322096009776408522910558980615804742561602120685835270154276331244248937908978745775076514298377653318511343279376627645189938328132425426020114889292779366740188588181629930563995647291622093067969376342302015044161675870483443290624752615850579240098914203561485917372715057653696941991498044738869942171235745455653163043444698091231301163175848366757278787396657757381483327672378201085329587018299722893886745755843151715981666720844848457809891681738051895854749637537795548172323074122434028324478325379831184397018482072999321465990938748575041776894804459349124215761806274629500687641083582444726341154189908385127695789839273878794276377486739761529484952560867216116171521785196404436723814205099202182923845901003012261552366663753730643912924529124635620568615060000263273214593774299298140656520572703598621542967309879319167556001157041341200434374378930473715206557190394943547860014415280293046726634921237580871009009614923612931371864652633325678439349939304480318615096175001801558138499141212886444318854684596359453369329163685280270287202233835500556434318787076604901130349108377301098373313948018453278822191715008184135510707711905751679601865520136304499788431708108974478532931182936984203752483103232658548511921859611872354262160438698130820953092723156561680766176306627299074403085798785442331534475069301781218026775078375228324826558122533478152778049420219364739525179446389697956941221327750133864202981461504346836968149324476604608177865573966230611304659893853594165437624648809962459798854714265950949789201401026203656420432038893940415948377334431725017569477885396534178629879190163937775330742734985504025672308480220015085374590362874348324888982121005697361648018849261049052157337321859985810777553554651005994223231456109648022867249395456765681736387593984692977728382050878500097258909285871039052565544915030727333917857220756033618749353314820176613741728183879658721961044115820538792935026603699782108115417904620040139161214535880388827475114827936831113818996798239531239086173243062753857062683099493584057898265421204133466937983304525859244403595081330825357171053494797884154087371441070427281773224353991442917673524031089052374264679220551805015006175934073978292728918921519935522725674247942218126437294016353716459464018529548265477748163865481256080308860176983776969754919251935888009757034887832224429370873078663146876155477954430478297542815257848609765370669739287981020877409336192851296390199213111030634060037253477981405987448117607280202747951898220899722953186887587991521270979621001812163774883520366258244299598108144860000748830040154438061218797285157887105408166615146546748057673780710926751078770441876534971974912113073282232713361248875392558233356179838709250673825620622050948410336654524703277274474949654629258261157969747217413287280405381363088603524742952970914722745178516683657779086265296727131975557981882212797597791997798006797444895989620926731499595949874820963279646902918129298524291817113949200833106090955025661751213487170917380310659463041605739218652930928821911633625752447982568720968848562914719158171069164005014021085927595338300100909742741120255196275640191241118169548764994975106097763556381758962294061233172976528893608369518737381656672208322751047029412474268674375878551411772685841239874203953692230631700090389866161193224244828265779007024657733709240848123004058236581171797302836939665794072286272504824664157855238555566663521743297619943174953126652711823896468672995586374894042720515416210550467274453016148005965030826600450185585529632899874487470892978534899702959596572437789445009824195805973636429276833733177782321593947166237712957533099237090101654731087265584163817567714148312933123639311965796805241528237479886673192081299922550560128989904023986978418184173357157800671301457903503864270881861280154390409747238141099713102276923887877885657897095503316725820631495706074508554635380532475163568635698002978066298541061056762302195768661870586062588396957396577501188051966574763880001274781110099628287252525206234831714678875638249034000655856453012571407995995981263167096096611078742339893559814797449052686224049394062967731017057918988785669641281888691362945738092920520962727619818688177265051081117887193706467445280211812326322480795585921285789476428098508253751803935222130103904916283436915785613283377886448182409161134639820644805450698975537914711279031684812976626527771504599222201449289261224987172274825358645431614491986660536300608257721273585248988549102165621700772663326864382128627163142838806553315008865996831232613527080896527550786136802360401497683959481908427252116251706904657552152576748039993952747541604007565066989736794405007519518815656591761259706520503332731732864088088308572370133560340630020443779424152219999001887326062470874623830603109407077700189186753539281045069709691426323197535417757985625908843079836319126986987179272319783755640867787237364379996942606633299581431033106512468368019962012214859448375043952622129265746517178934712156439793011521593372576106504138226221427275076477847068545609035485091301151297561460230543677500220592242426551165631522189900674164371595195498306359227960019798994463685323290263004374847944952125768200583987113182911342605413529351013984111665124505559447156951105923393914297280351810965989030447084985972155145143817809773340190339431181246342732177562292393614155025731441202740965191166508806962159525460613057310526058252338500735321930126755742823508559154598012798475848180427992313054193268036361438495170918994558253389812428373679028739909890642786403712807296054905037035414246073387182032523613255574081232698463647420156896820393022638014202731235570067679778488155994954271023742664004637331919703714255794782151427397662720878456927126570727182919270098930432075039835388759305025797534957138901593070801052929917519901095592501239257205663929685849772250450801978401237677935618430498413427788779565269787814402383472265686853246876930264724556655668862907327212961221772012087748910255434545887807891465460887186976148649846711938739504653092621645027906928225235173915212882596861311769299334418498879971358988406250844056189622236255206900953811097294885890069946389658339148205297357483041626305856226398193915897668720742474622328781873082618447527493261231458357177868430528900419548129402185267086274483051403352936524443114162354444195361240547416279159405790332166309982010840642912128641657784313460600493885618334789242490652180483691882067252574115897982574236770997245976907633349716097628454256453766884770638098725818643415215777239729722568347468840049626905506364833891037197459608746701569455510083715944229723238172130320289760333726617819144965437501109176239987061413581400170568830676960080389549081297866022362435061111663250739109439428854213072393151315135140347600071186846817926636146856634472956539964819718377099987708667883348020310382754860229996529858344879821611652730477907616216199529993835718822437975277332219188298025222058481156444399407644667967977532744220237794495499433912153064106800677149303022260059560878986001800436863776549851972499403628582406775695050344110405841719494249580654439770211523195831168739573574351060330817047106494812943225950966346943284339707476805775648343215278630779078253471251375518439693793517860853005008037650626818567317399226122128868414578641833267214645501119771624829338068408560519892792890304389764865430378921740793457701244972368119473377694468458798106845377867789253017702397510904220644395746028207594876978405144763161979866867529696201130354007577910207080772005147335656273733576532696779022671050793834373711644769625345363568423763566038818353611772653264353215764197678729321443414746266131254556122934323303094535886704955732051222527032814555445637885306087483936401565299939374518221260821470823876084086046689533093266005115580924696851890664436501484701418858388421209231223326714353964698145398556930613557278210619859110492672751692184744320149478523776171120659004063089582919739460041289743422766607353395385818177279303565826980185331251653614940628065444710788133815940949785332895897720748027103320600491725761650400021661350281895031478843105157706035421756768799175906326987873876861656531873245590816066449017279592047553687673310091776080403281557416801131279926987808586345493587562016693983465529615554170887022562150882571677629983006182118099202507468818035826764464223704680524005034894945479485678793350144265583371973802598766347302564499475609787050064631927590166193676937301305435822549474944089534390183356415323884173314151173484564890799562857517667321158147835529038356818216210820774732700102224302356654839171184736275396820971555848035552743731986671389339445790198994527101123496766081909523113814947106959232499617236903768646218938787511781874894553564889377192942071256283500173432667224906901083195511741856103741357109723098583734709412632982090983320189589492259985917155801432521331399421821142837943588341332706150105429191533136055211779107530388914039077876474826434416849692306299716122845852363132508848365036255789090581892706712538960462398037381511985028457917211577379971776091454742563021713189952173322569859165146780653353682950098540001723390965454424465584971901984259674976658350152584175002804017479130225269912040693177399735362173339895693050038457358454723542847326462300662652563189346074888979136173397070090456302120917317909788002805581262810012954779583665028134550189673101585488045967193045708904957307349904037863019541891794614437947623206516943059322832523737231536651286374116984919364052825416644812309943084178575763766270622105203462015245674623260991539261430377672095472757877640853351749337641021706229579939472147636659804715648997028485125698939688347516920030580631019705654255840136527232191320789067355235909584304669943930360512706851142908041572315646887866924885198628397283544598432400769812766506682860736951932140756217427087847545114179976959666771672300474779444877549784068247306258064522462100978622446391064204509955514844145276389026579644347387297552976383778706343711050697860044115421109840790391480129190652379230733503043398577656523748034360143150144006522211779199687750015168957312514656283196459744676956331331756965607742898547511280577488083560593727634477573569293272701337976322847987675158198039638795965058635339752762841199704031860533939883481814113260237202068782566466987658935279361677327074700824389585977715657567237274086085123441339716059509264784154310461612499937314139816258799877137465932771401699891484550303970670445142840527419764079700419055945335529622442025248774018821894458762733379682090973386597325543224191812094089727462512280709898365815438051868152981604738486083054228513985552505942536108685167925623718989209817284898972417873965859983704645770287761471382502544912460040917245391086606676632760291607291234165103080251845365547029827737290613658180178914654711649233323859628802475876320693410574014169140864095408279696163714899680280004828783371047122262611143918032604082869615304671450681847367789235579019669116731920639032300100680919259981782049191506156129463357697932476897863505869456466544390825450886007087195688962703884780411382299828304659080371749676167959662797515765172788214912216247732110668698559040987602609664118458427989939038686369944849645787866188548767011086973846346115292910252277514879531276456421564032553585120655766419806135619638035227861253793796063813780009093960494045572639196696850279258606498688112769937354004548766383431269415193718537596984372336904089438496167265042294870782978380655565112955088141364636073080824241347414534966191120216737481478824143807344400347175206414864360144537065249220695100798693707824693617747659486113787859964947962658398924914076926921260958742896248476932694574188767818775568448671295315140700322031093883742763374501550663722044463076423825478963651559545654830754138882128738454037678638366901745751815901250320246326946855824117951069277561098414837154394714149352519514277367362921579735860259738046925123061446990801764924838487354380627512749865213441493771902436172967499287301192798979627550540732558076168817309076384394949611797701263547662040817909160589295075833546484289085303706315104600764575444161679772635048393783604455498224686051954012282741204132406734995105740074772022827241454742200481252539987360646175539764189441486775829463504234062253249276918268484117587582209458931054530630286867627156829713974853913420712516040580170281643179709455964256418831585003101760029536863572603408819244248597099356262893897709128284781876497564989886839022685671608130237977250970221616817910532851193943508075834649500597795729084196841952755150792615114741508384972330805498245733720420398213807132587660575257322345690426365808852134683796523604702662108460337807643366924010935382295534458420681692533598468980079004157728697468649353907188068085159790133768821320050924778585785125985242547734095704627899380215039353093678531360267826722951676173116355863380567698059289149947556921962194442022869362475972943308306497009716808989174571615458609331803725468236867221626740119913999091593651996134452523693044274835543411261013261085402748553390157522410262005404885051088224154985817064566656447449015477650593593018466488166228642374717768362795729836984071948970921670494128398067050698560744346498694391909047325655880882216112704477903112081018274816675459652631911347149989530144230339472434067524361519653412234904183501445973360735258546774776250430033792435115842388610295096024498881361867742681464461498917220792307002791559218354761444286103770545838843791621879703084167860360953534524294906517958442050701903036144303003209709254151675541728758947548065146536947854783161591058958929240490010538395970050517260149090750188762247116517640312958242178529399165110097367566780154139341830064360398282796451739155770219853782813975316138362329850699037456723406269964923733755147758336347379564715053179463185347033003622429566281853572836430468615354539752440678971447671515916459361826239229862026233248342038681842115450816090786250297645145416365188150576949960745454289299076509845854633472425554796535898630450553158053555729620472147076209307237874602894329603595516830221562903870953763857657722558207129276671466772007296689390704226995649169470308730083213244306584894689054364204065592812093945165206521617992366232378009099208193624202692018070459311275458179241398285541762973939029828088589906965569674050603322748663882198412117861582280017233116552663356012609686849886970862196024537696928674864847078606577582139114349385611366630974744184462935412328182832233530791482535382563986901264093667037959782656473898857214233693643434589411500703980151464884831897870471597945606191893776874744080133135427372697183258567431239770943346596712717515316069991734890669408385291712342285336592635868704964172542817758322650979818520591742294623195098574104956888633505085744542205153026792402492940506846791623144683023144973970797139466811587775674126685896628953341922200122075231091913641912378171363214865701467020412299684176327373059619376032469058308335996121297429732457782739029371020434319403551665473123046793959173267086486589379451557215862397592160685254343289979331689102323559619248232262701343809249304248619197386235065146492820971171524867488663918190594786867345986607139199475335974751475201407122724510442029625075530724755795493872743064435459347107523347201017030583836221756407892524954805885543414782557167116371731241872157160100431947862501644577107474760257473330555918394368617902804898851178560947679561595276768377322102384418046390645394756279481404838193400558863270908758557145558634782027039589792186431417369685866065509003451109888807587502876457658393633965654127227825772955958221828153252018344395506902957721656989686548125935537545580548025487229577256734319838827313259050545984319210318599110906139760078121014561186640752459748211209199560583125658912660441779684080956205017811220959762629368708768322047863254431709949200023903422054155692247674372907095829769641808696672417380157592184958368472662486417297491345374133466749609506019895367526638677313025153136544209948503455941217673930855609257800110592148193488917031512517767987753754665220256921951505889760098757931273662536010988187284988913269245681645239644793526825253634166642641786029569432689643594519497904456563326637409318578969370655629598727007314708690209787301972002641190746613751372648490620275725680443535021082641337183852504791801167408324978804212149509508798090944518656742642817843548868285884288615933069915800408307336097374368961484028654546930171168210598073108879098423025468973976872509783446483804896419491397088222212480036958580944660992054367148959723957892134564442732503929968731451369915966572881839765756329217197953037092586631961806838165143138075969359588936020872992843822025699501405133853393720788426261650020439622376546558627876749601786068208014642035277271345430782291854121412669377898371806255275971405591793825163750144041888387095733557950263039016949561380737695997690950026920456074200558654663869667525601420630117129081199990883461245582053610764451982355201630004646027985597459587327010681367176597012563687069450324539762494911510649916871127897429011706905177558761734085013549527377829844801643422828261113046224366825813566722801251776914141236130711467191733616796236373828115744884047962171808569362894434360596368034944578442631758555951319488302993911730340448653619885180851490104254729637972946121981644053165683206095493885041705361331791269918698249393230443843614584346261551313385970476207460850761336762870755788426634217952562201367305712164933527900226560723557347141729928666439604298759194261453804553176684912792408136894379905790641263065469396994786902979684987927257743896576953558133960898977826571323543137678007373609507390971198091015611352564916025947623598650101451532064443718536728732756634052460960239063372798078257635031527887497802916330018842392037625956208740899015105075853698724303880588974662001824126370494556272010583342819294493787329509431464007655071508578946930618661679418582959606799889332455535992588297292991838679488412721814636789557151496092643697437169361557723614876239959505163562424404365069472823821003183625321068691980173369800311028774622008669780214179623858827364329351670093850451257283141218506574936537441791522845106400197442247381518613642127063472995590686605966241648898612993596286778099609883870869345345773136030531709211145168650225639452366451771183793493003973757531731086821353816550322616777979340056372878345826520899351972690402696117688920254306309304403901823012018377445204407413011389410714595447243398633352769611378347771214615420880310227371668692210092403073175318886800006842332601115400969439444369998055340058997247620985001061379230958902686273263751791825548211313131771491913913449563918921335618519798208038921304686415550539900162356466422945502406920165979525692599613062248450896902003268215650086147526946848395968134198745656456815026836071920435458578454850356176097925857488739959462633806379495431815171869050655815884438499450038043551061188423122143896126386922221491462671972722515983792373780541245986368243438160028654091528602254906003717331756101066805873276317182757934704665439206852941638883385991332436238591163701387655305290402326838558624998688678049410165295595957590111925712750630772859561156751317968052913634136752953298388674270012107570385932653316735381532786365776501164117676892467099643808886599476028608309264423725180419251563270117779556387099955534383355528754747185896200784954405339885848732720097800270222191769433641362540458654646214339330401799498678519979115606213502704569587939730811360923424860251133666542231673699309336408270007973190561820562758182657312037264149162239956680968217304035957841088430160987425557460003802140504727618110555995692350861457015629336764883936292280962209469344935048174940120824266699316020475836536863421058797251796766899191279849820897521997565707005588472088162035202845202205993764027904268909797465985954518509058047793592401576613160052366067795627454130491873412081032701662161537952979781851226611026747427162545471023640539942563535107237633981815835351972610482606338933374248094312209783531758313949667981034982789250955695523170974367696198597057024657371374217594406486972465430017437602407404666305529577733841998717667346908819935093075428633343393566003875865693844821161883407790447527024692601176267801786190903276907511171198692515685318353028130034483701621205239423942782062311142094743427418850041902045147878050686002237244772111361725301057465043258689377080746459454790873704731162067892971525365049063436272582005451636057089071371462330379426705833215158907572683239705843676863386923414071876034992176877053292219923803557019853828543114129065683856039352714603651329675642618258883439737126373006581973835958329822900837963165373675972651082015128838646440873543744419225582985677801516301870942175636627029673603277750815390286624963746916716238638258327647677270927834670215698015206988009815126642302453726508724715829718690018483212862828359043099594674086864494432003699252930815614148030325403581807061823331042384639820212557874950583894154485379952115564576417493607549236090571450468972841828982658914661549538455185076753222008357467943724202220321396697089564751665809764848337972720115643609198956044698007031875859096319681569702654983417452221104987742182854202709580874224732056366341313036118009046905368974006468734315956271246413269179331236711552765036859802948339227815275703122314664441464447569859557026258345565170152444154167277968434291166241923119531632264812447294029217163569730219539801454380243422028918847389580873209347874176237266127189010992709380991412781795730141844363098256080885136569302047763129520780521084377672746995158995200014439514261117611842771405084216378138622535881114635838332021779628102174139934227783190565940897829347070174122465828700531882676107669589814073161969836361036561348336553782978348747855030309202697101401237365560421926919240753066614706793355569881643562581362978975085262434625506927111863368854956379691330653695461439408151655888552025842956149484525974286762398408711807332732652719796542859414811987496723721194502808160665206346103371990239511393308484790214960908633902178757298833006696365533201952803633509342904693054712039445878090901881375357372079475098441851253467772218055446845883175885891645533764893594605904162615531729219650762455933916771717622950872585152769056079878148337876192647783393598061586607736056622985123280564679780804413554008871578253532826598382367415126423337875171342513984926325996816779260031104570308071627043786897060902588798820021106291023010086857055792493439952437748573189612157640810227871128959867152768068086692330638362439106465409429966103833251525709665360655002584119910992967221556398120786840351133272377365864653203695931979560908923212367091187650104195602222425505060799992245528175015591366197495984319662007430052127685443380248536698034262810294997156614115452554510405596400010495567750424186939910535590027307286523762233697346567996577882706979390235709350088990516569486340514797155970152668118673858280575907155526541387739779602664673093607353973185070928290457692354860182627002117796887581971955964764210501288074710888238742717327789976460675852793292087717534317453337013409582353249366647035997142695119072726202156104905039095530263378891146964781601578067883859919188169073062383115151586029557738684566160926494776793709716074906397016458158618348069706730323942329082631113688265769584330146247844772590438540258492215511949266341196921909319342028527918420298157628975884054243284506047357170592311205276433149607092229628565007658271852038284913700455337264453427459393649480872250801563687496928387528187366124713058297313348213337470621739697977360105888692464019021865657148881665187298066498370523799315438236933955551024643777262341507367393972917978829039671027212849779085204878077797134888743921456376635082997401759338470041220814177936209087051163301432625623522119165486565560456546905158053636042638438893368090739398304149158536792568363239751446438836260047386517053978829588152865967629584713188412466021960356952229416555788571024141150534117231435825229946860239127547048070218798130254038721215596206811537133882669950075156649643600684590008389829583533110969008920871206888490841498986914339294179571715834759771137041518272751222901812215291123530314944284300426413004196979408607785189421988011182681583090327969939929897205222223784813152383019345606793712854467777002383920401808124102942903362409057535761890681921621574321883809264422150090888340531054948934589500162124362085099818049239453284877589826570920189320790277080037031392493195446723393579944078945143077980707193208352642231614688822968983125043246760531460875445155218744367998782866897985976224322744443525129908512722682331250641949150906343505726153445300443237949943803867725733439367336530887934424289345662657363923211046757345932740635356886580054115446783444126184461894383216208212235585607135592706215852978697701386160972500530785668713364042740674521216841105881080762201665241246480852363219591019326331108270453277681417309870386349159323207793902671023059435879896909591908050360101795156842336621186555721155921679768507641203958058426734170287368271732970282721752434475314280621440218905745476716462360786961389938303304291608350892973241648730731330394054615597413990595968419548680207743282924388165178869653581825108206507797983104559945069792412994792290302895160733153129565627827874981505311579296695392456148170848554943635115906115803536261195236417149221622477233282019434387889150341802800303041847219145777371346033844438952820429927423974393850438554450580604667973707326060967491930515123421264788723020722192877511883835875600449039382580768645564935584230087085867018507283354006933060439450628761200185883430854129299929505497956246034362819154094454340550685610597766661782283656600755233447161468444402599710383129785772130898136339710355298462204298427330440576332159341413477746876008479653754432248991483258796626554919511741044072896826266862011750029053906264413161808607466201864210402193486026895567139730205280164438196963362092658543149277197206143336042852513280941517632588769766696563449247146731525039483342296706709078959882984981916541374082717323347076553335379427616620353454187011585111129178273079215510495234092499093187383910723768482913017276133836834292198770981429356496043381260425062283790962015382923294563792766331047508257016255641043744943354526602897127393540715960621711094203316079047473876741486076140800332699767816232354071001545991909613820215425695143304780361206700643397784745550356737973287580984449977283777563347102086469884909600064293534481588544574609361506567557142075873761723216498953041447273871251167746784505728375222971094203724070595483374027812705597064864632431037546890432919544258105634953186002521574401894016153787051310903278845318766326398312911657327239964242675962348678493410671504020049571087127530583663475872213895510958645958683250297895513800885690870358375655121589816714320470597951881483689932040958373849058103785627895303554385898481287141088252109724207469660499932084700479517453078977416910396902646465673738597800539776201285918663908244628213988573249654737148641627210484128989905855087409097806227823463047325869568654018970073664948440929740787312951708257425914521985993534642187381623370622931278376691872211878885103100660607303023088048563492222099507987750817863186809991869300968708551139962777940360489846010382814085228108245977478377909461087526227389662887200419703411836143845719175528762830976757562565333226392379900944720620963198470227892457206791616657489382061114048690735415894781019356072367234973770718183587279160213991834863165075476339737478343756125965544438320776814850554368190286730563706635465323168670019720200888868866685111808836013008347212245468387876376400516977285601820176745295194534023153826724558169983691131991608202941377798457699042559832927968703186394769699626458927479155514600544937367318252494504581948639626447014176954004349371897871037294590404640784032512297216795271228321846390975521197905816147827781917255953332416533515647109404937416252003769791647887710656868633056044713615200129580756088545225599059256933842082505787918854580027656118068437511138249839100955180380351944336033048463549613928097602196743503914300408526344547390335816540524111864223864847821357209343374609752815867480583914312444321343815670646464943071990287571849271220600247558956327763800261769796760924920331153742298714673989581226219285551677373299219302147715906467827334654509184609920165351942566979600343069156354117101975356731249258748983115658596421829955606559786506039407399577342063362614665043761248119901454795548854635006088685107383239524530417188735070105217268727985899073944200748870389295998637284445149420520158401091109841882377175835938595866771574209649210535586247909085154579514898026061556971230922089337411042581182756644534073499311569456860940755709668174753642522707214694198041401949053391810068095432192799951021929188346138629286407263634167114868076563472746170016635905119995545801762735118659889272498003939704282435618321438454375630177398296253504406872098025890763369900738300180319462377521554684945215251848762232262765717315560209968568207726728045112643975172064017008439528904950901762270824057326311193441509641341223289499679433369366344691828869976884695026166520369135042754425526386656367764164298950359800929189511445581564159153318346787977223093304045944912280279351624176513184494124716478808261700773640667384541916544999542270938268071434364874001837463073605590505639291771787152869924789214975157506919009318593938461557615650798062878836056921584023045548847217768300006262945583909055457252464014350283799831937765302186095848022592516588616308002895508586638189173878243075366006821793785242903186738012575026779392957771896870061673332304459440139929392799386508811184655181435263053063950438900887551400730700517850392517080697548899393463163774468743261766080677490261593601703120571363550122401025014180351838423495351243842638829135991401166987032377147661687897515297640367807199696027390305803948078988749183156635277320014454516566495222697567718108849511150973081488841615962769331596794023348430718263499927568349625415952472384887226014501883562742140906039026677640185307137836029231974048516450188450866503217444261060736720796829382017790180480056633639966965145310680844352595070257009419557591317668380938930777013676348188847673946706988561766697821056047121977073261458996096987974551068307087060884997816826340088948110492008564163964063106362848015814243818399144933403336802304500326477457212408177525795175583951592771505165568062537241311365118207052354874432274435939026394222740902615702732568336094624408387015749724168882404111468295653468735706248233830738324189239638263971026675750574947871929622682912724288031509489080451191670618471073891094076161787099364467552949105046740938710055252626564247585311587998440971861761306272758794741038552214037149698745897389303860404504924350931234767741068606636893841665493499969032927004140473381003141471927396342737143735404414113683470604343153099220898684354605189852625295846346366650531698101219550304019261244842268864835733398211763770584856250348977131970206054190484692837373023888581284739131947576214961359367316819769263809436792168763182244844710623939562133129440705269268753642072477971711449869561429950994525796988601359484244532655624389756591142071306937516077312253571956842110388971392198099799275019400211061954612377356443673440836021555324249342218927489269831129498077779088691071517429369294822011210031334124041165384906055821377700860012187185461012856557325069967547508163246146129506423011855405817924795073552980530191174631046645143346226523148292229019140388453238992990409492832402453267608668432474646277407492410566233608777717412097500081486390417655148388525327375311314414674827413020456046148764050978537301128754804851686745666065294799032385689976874391666324876560492956418148893164019551824909248662769857493798259281705605183505406435620721438583417889349152459216081582440380096104297125772597954187292317330872781732743473584794993025353249607978592063824850325819332001318879391699936579279233150027631934805377038708706295139359382402673727035003462159134052839157539553702199686525867333463780109441423107588780561023368126186003596595712706321211475587318455043003584732985717907449269486798452907551965513504656328724552637980601089668601079529165936314600971893890498582940446725106496006565967264581352619925251190391500602067668578357252890339708373978224248463258598578653957277628490548914658375786711117056858224887661688238818115514301769564404706924215074203588366087826844265355118989186262779212016102623336986077823719930018010184327845293928074527879189129349138015386431580301996499815906614795306176791507328340153452352968511663570593763028162930491609627413229173240031499256191724806549126254149043440608089788574576915657340792281595662918815132366955616787834161639130721776461657779860942218887645187089539162266837260514795547502246406288182073261316787112013358575225575436582455012206190884488838272739350671004992226150618704276270753567986018370499302996925229266021031588434838322481788109844499493565221726088669260249560537092626572190426400575305704730924249276184170329196628887575492925765878098313670858883201298667752811289382312225674769295450040403572807604767011163194064219829860794653590703340676420318235285076020158451838060369003992560226557315861814884525830505360720960483270801896862488353926823218801516800100089793280347444125796610843351236172060889740632851941622270285947386928915752113123330217601433458142091997101241099513965177926106148444231559094799814723582237850570418128468216884212063765397641665629930773148683045472426442117708837124806897998678352026339872873218814626637190029116788220653756807438797871522187091272820797056003746396990887033710669981045867776352270441086962277404654771957666989716626034088638681877133443595727870342339345845317189661195407189140293212367045810017280430456394417335919145203306495301161675268082478677506519229676367974746193885169169137373272598630489638852099983131618997310907435128130179767902707415010131868172233116859094307722466378295869621860540660212996424601392585857109136896628422153810880522611737973912847489730580680134363639690908756398157069362200562674142656098202088296326791513860358829645368618187121472880759504027770723646691227562203247118320167739100285723838412823106940500071310405351499071720122455557000190431756093249139850121658403112483652633194347440465290150923577629487863876410989453894738211216525085776144704027153392843249264436172133935398753601555525909022480369389846731809213668452802476582481357100830367225322507042730110214957934698503074695208523402987415261320913337975733639023686281675874315553476064051477483717145551774824079784215761514998062645305772549523578942493338445960731930847639215792560678491335139851436893711636151613351584930923527750219901159294681312116199088064061694054948375610893589862001605945346192966873327380520169068358070947354301823055127021209145153463958289245294473298224015822698031128002865546434159970508911102099560117475675502259442821110178555555019326378494869679952831338154787649318749325677283855172647998194273912643661207368579442335399478977294638224195822049807349016252391034825569194876541998693476233361466127361327103841349554349209733129407607342096513569542256777066226289563455368158974018139796812028275691540974165562249254418169050973051090380406588298723691622836459609187878729155295899792312084156470808747479434111723279612925355169556347497079362272460679631096501551623573461537910555758739354169642711561277544754340823755674577330452167646454219116068480566319852506766183689697929406497959652108511545433747385312573356315131856599182282958479127062147804895442499880181396560413964086957856050103571273368738160505529643978411889221565057790877702652442165196537725817577186174401668404404150842859091884656736898074108767249619198831382676933633346474800117044043676010974290767858042359140340104195172467786210018141399292023479123584950866706734406473039050275391494010507761771283710518471831807473917305072515303111480788003116248359551111077772112392239129875762970184467399102964925823676163162941531119380534887063704422574375748125270856805332911706878277968065947259879619097614789837812720552396376257156545901224503161372513112516185416747691511751384070462939061876208703268327069474900848653723889737050573788719027125955297681899420202042191143208513151961394495111690409334109941904571465516283129885115211772470934732413697813388151646498561703174509584191507918427261122459014600739777941240335952711673079701041000058372200999683835356207042947844274406011324014766928537654787497880205259300081637536157460684495040107481496381997279976136228159393376459121814402633511096972913830996769764815658869250871826865945533449630845277108711248077153690995699039627313323610315468596108774247261638441608966338728063056219755288241328203376887864377863408704629767324829195576043282967038883654911753089043131366731559592594051873089158954436237831242674094934823937825089017523918492088270752227095000088564487293934250384303782858494581810048822281927812524022519483297526103579998149711578214126603540734991432184426456162527131662391992274870369469115729130060041075807062357455184665318582459108824424956075963389483628267230023369434016562481675696108221118729865830188822657473573545427723235462121278794098248137887010244833665259395934324738330390605437830776815545194510846282562375923384224643087178553022239099016435688571889162899911983869069031221693649199797138907687274609481516339924640225585462667892355711465690838250147772700506581504675076918334692746984671748098546698725931997995529160434336547524957351278484227516433731388036946368619580752088992276211153658532917776931242011859536647737459669839531904429399928316582467227422325809374622608274985896747276520957593987262291706922843577568092115000546370556410321916154877269826160571566186277330154881970692192904885902885497794440326917576180837458543624823314763821977821356651411304237594486662065438067995560992030864412811473457751551170701360244226023759067400537502061818193365348603801075624531417649083533438062490777376627452436326065749017078546132537565226141829523905630681433303596682904949000548126685887297346253506055984260661341292628267005764536042324277496125702773396430128321366179832899073414947903897360104079964222201115521504815467637025279785470504096251043673480785841853849751854014833924153165392579623394975373378491770901010557709970572646380661904588006017078783198002953504095332696002964034133577022851280694067982153916327125477705282817412517990689386101937941112179927678862022993069046238279278814349561293463067767709733035686472053544119007196311822176637497389982819291649588936019595624599624103917516602936145696023696387857938986190379849252793604149517868446485657050127439771134794292618698046108204680796138519701532067896419070065858787944300512868103706343482658706329122177776996875514960244223338978218679350057495144135928617203789312590884930411334135954400169507961065393952872920105994239000876301817374265363975195055564651125683388894770292649929507474915499877913885141354796283438399032233429028193141737624245092849246796182179490698978193998426202640724701525329059566642230056429088390336178849607211426290775616656677334106666729508157894367058789225389333462723555890928313693649884766906888088290886456493136635120685883932907673117650563388831548842914136641933389359285193944824681893756157740477219952493180401471132624154736693036576091647051095026949211163777276758946168024176915310513017447364741418415455314630561307169560574215957393308987177470593698076982235580717561039504419385801782138028407816915923920170892863834533547195321481447309043356039526371015605247238795936069685147584968671254341316251791574899104129350142715335052517567599740051734260307045805620429692496624632633668039322311174670514660894413236128667877243425148827653820013736239223149326608738428873074012258741025087725063458466941186927342780690322877467630345618135168756382536425770178316925627920851942402898805895512965676342743174145142175774781167398898272425653734596130732248133211528148878532409409905776024595539253287328206900490042420052684333283526786207210368813118195442178261224823026160360644294197966710855450166628847090299086510143315002966416655801285593954667206283700546143983258615358153181649886623354316455880571041725976782900884622387052176299529330442413031593030819711746420650919028884407161206454723382606099076035465113013089106780413164271448392466152945819165539799362296089357511562886788148389483872496339864795918153497518796790054436897711741578084821802187630132345495818426408584663140358734911673044883223125196733834080558780533987483456053060938763046314929835244914730176816620241377763363513980966577310787827129201787732932734317323580605881807737979678427215464057400883789219863809402189699092141856700630825794189754634282986298832826910216746696544347530837248016707144859507545264177273602163116998591567645425269406390909453227789521004073144048469631641034498754253733194282090823787699232806802538936818255013756934138757228754733724060589190231288141302244059405666082665257428303991715344603281320340673070092716880801058760955982433783492047098296950507213695142791383652612272929425266473745283636507329021602997102341403961277351740389901829288497667346561788687541320180139595650067524817632185221768200129708425024333457529051334486666291414025198349276713139738697805633079788924655084428381996922188742129500495852839584196933277071239828142278729162131081848768390584307767454775375015294617602311979190409563931358609536395037527545266474148204888006675478252880593959444828406225202149392108528599835423069132437923007060488929685714672127633968843967205139472824115336240183778937635696634569928366664142535737921715528125657430876368550765016101345505054959710001351479836320800023110903262828331885911135231978469638899235951418059131943693064682849311775619823068033928562661341948531519806027362288825697858876720548971189337440457604894576646850459056523789463869970961602618178255280630140904387896748210538497998299818572191679894898388549006094603530424710387159919373987620369440130257318493131029187901408184875689358866749166228336286822017604375279712107654854555952182110039191124739488411233894457142575154740934285959163096442057611205077793008093303614472761155269482601643072656968958826844134959223861338222005418836079903919948870194498113304802465586913380663435361202284802917981461079355686991319303500568310228159340173618879301475176025952545190576173310049768285028204567621863381243898386952046274084366775712010808365082125116815165929687776838107261892623241280461731902810520209923260128116958589939428536316163656712789886042509621141821855677547733294310290314356980459674476650426994477699020658274628083489408735692670086481169335956666419149274671300849544082275713211974268318682164531307461890020337781280285011895196164518873929996214228908142053295207327410232978054814038970416906022281251571987374890452200116132450173499405766001005273483961141070334280583715129572233651290918410855397663067718758903364892725745969788137326896184036312173840424863873879721649315561026798880658718591226425837927169127620349023307219199831567213575451753530086010570859083848214607687126438380041439989476111384665032653376267552134818691621927591071334843738577753857586956985992639627626614291935777955120076550527422543523121183076637122449199647079524364214721332298189838291183419448599684040807783366794385321430114186221167445851211541075018167068763669994842488691031478899865390103842702005900745491203659186575253671958241761727777730487499816508135774139249477368401949112059950902110645070358765584068392168142179146291017061871399442112034746688452453924979088542380864248225571000285531154625934822815646487869486195618969778708021206271394171567387017731444001488967923317120721839565034889705962572179769124907579926697773363274597584524388034255780985774865721551284793273151530539467018263683827097961652287066874868223575033667281991515476403356467782359205123006699345070896863356263900955626134122187097006303922187490288849140440379430353005872479807408455822921946220047481564993056124615371999406969597136259777006207970955757178034153417329232446923542788656932342545248272585765108586352463221966824506200283701128133485069719275090249220507926914014294443000895047456174578336724412177511522814313348386068268506159612281291640190199550836965088470769957330091824410054170761109758660303741080756134089935328285666278699939176860396767075669914701733932328460774051208491979536016406098144965501944471462872290975050196656002485487124411549297876379076056422146897904427535710135070206644798248525148760166959862753394938913257143139204053357290032588553650954660877775187822599013407710669777052283068864491393476905930313649907150752923203700907002976614270186601544322989197240059523119502835680923914369999738442297580248325295822801225379261707369826362603260843468464762052071742434173317091312172407433278930313290860003653589722048629543298879621025561396330065160317600628772817612604077927457749720269566725191694928762978877120544206310508939614620448920103916689746483410439983755809823035155787428740363493630872759176603567394417528208230179902026454878655481429384577618654512069686127064517428744270555135440655160856526314412359336366498805211449730761836109313186733626366400722766194130943674530919619972628083378037714219896420665501776140734586340600794767140561809701544952051492928105022453210654783216324123270381789229163034199615272881762954811553500674946488521387486608990939061532751675739484933817012189851089230885865128943992143767683610520558417913439060455754797875430114946883212407258470249525847839169153152352024646980101761324835535958283032619339555791202384177106138450867713984070819700991846575512169771910849430383198982276366276466328724264487638734844316463760600744023021872739084008687583327689355537950045999897551241399263295602035173301463424463780879333279827354583645773515797689838392806997646223833913959051154820619455078699713687208847794784794127302944476189246803006735910064931463198476220611998723111596758038714879118497668330496445946643872594856029261227986779737438798875819355713228757828630530875070914082460325711584048560502140831439608006856964314512733270998846776959521162742675447434570344865196936484497331445251439749998993721653449500452720408781282260986180393771591328327756706167931735400891822270927298564342364225119237056156149219818836165936654548256008401368719354603152906103885773467476452278268440711508818989680544175968267533858071450922840457772903643406027971228376299302532013846613498866808494783589347124167936134412045952880653183221954956607258522927765652002914055757192513778398789578617749528750724706097493138630322363462468604762111946323847030687327728064184374957057964934791033684724540305659606699567031344973742449748900684547216627772143251590882595643381284933853670127227615676300246261086769058988780317182953794925752355394760074341803532456120866101738239815314260271406786941817100343960806258607580046611268487531121555435820110010196233532978443782710233883949160710029303050477511379715194875201369695661860274986978257854899660368121552209543178068314516721754184263646833894315484894170180869895014593810490098407339328158606351799899843373930595199339959113313035803450805435941236229684460075411020548560648547856113895453096048490957874065834092433247280987364340318036098601270447695196405794326404379455356174102874327024798714439217757069630559566348114436647565730922111663625232507552477980145288275319667555928337372167961401320232676251171787104034818814870364851729743789800457435038457009162096589556586415042085942984401224834872594806305045633532375650200317659071259319188970902928462178997876990636228442220569531777382632317154490598770645009277125603498418622223612851541405867253957594908088920292009382676877031457804628192087427061145770615609076313040918071427223603115770820668317032761012313215243506305199658810345489412707575726907138990905714700531440719303571865821076179444318051878162147349804712057233933927767871702573437533497759505883192680085329325922818956001073003184871483777404788345192523290571368108109714946167696127893940766802555666057535115068578325163352161155605059763757349832179535015343444062542270431390409702119859419427145198405493498500335994720888794834646136588038531785904746164730504602087545545870789510012635089359135705933698545421108937046362978711601004167629085611486095228863066329445349934400935214856911943739824793429658939975316912319384163024449992040450600621170573359547078771230236885922313900239722220656995080246501932900041112618455822267674225689059263760931218128106605273126801396317875616174837409132869071239958436584741828418365742506475805806691446379860377041269208773942359722960390671309721926432130507864145064369365998686201887178880231891428730525789401370346767534646691408211982569606215510514138321340969836594661755304038824993481370928085459102964312994663694741237342043778806377290998798412011785772352424208259274640312006843661519614361404222349181869610314841371010694687547733867354078367814758055707220955744492319479657038906794998449680152779352578015230451147386214564141830385587519554286164689387626637519412709749745304828931579780745593247644800425629163382480951305283342258975673557839405955806009678713297806326403461995901759736690899182893708788106442382927640833089950152507602858552953956357943269177004911230830297407314328596752723395813611398163880395848105836107774174525377579640180849031646986579342775685047107577631037355561683779014306149783500327329589549745465480149601729607916512178310405821087190653352081241604834886024820707811299784037682437624595864002269860282420185261852544060841186880744918746845241343757765683162272786728499946218351861710318156759224466191207549262557817517631738246142988799300300784204699869141269403201337503914465154746216652146217790473442372324899933729939284946945815503281128295836609945244962216654686745606052987738226131120375015985661295243609218530893024221410574690224548648213361842059996169139048092265101663390951314858629337501377843709389710112401148668143500439056173707981231105167098582468655861740055004761015026907268838864894600309462464192130902759280664292452221624909883822761516206188743228482853665189160647007958631606001784597707678140759676306532112933958818225591952758343768086577066109670002725755024288289699878414039910069017084575297293199615826588903798531756575170748891807502537169980449666494108979402893577719612263671937213292885726802939529151997647223551195459315706456036983326804129564637415231223182704794264339450741908150534478781661135390333278899953854687713329770439384698417597227839554318916671334935655403849578886076428740335426413177330160649012606204548729479142482622762842172566952833348164196294429646323048893994337878188975527674720717717293873051904335744816409288044742011436218854086282985169002930116798765851820418478731209580429922060382225236186787686800101327597918941166052611285234601723088179326323504291291225621031183400491642798922590980055729817674588887925392053248762729108985759150574827769413544371377527801274992817519462910964413768987770344309989408663840132749254769128215395563418411634543832920165043759297388032667454728641024376683582863671694533501424325505621589532530161289395778083039374126402219243851181295510594299456808377007218593339242757255346924757507885525422424351148942348127484107617816307509563098552518884558887517495916687391558949343791861138807727316796633509993366330308232137533698478882384268865925844757815957030679573252407725038764810688664855875517222655571503387642337253224604958052470540506898724683049913398572837968164468849805700305374454785345980011020427222973083473555705745118485416039581099243556119303907743402876323222750435560827644529346440956427792877878269463728451241352827401804688438055438974128227515851286739372245353893016833932150068851334342075033092082768779633769872668861415341382330635482375644941949384617006921854615076808040581032267782247731853137427806431266379129384591013418671787210227062700454308633916774905758920988970712272326223370263207273316609904689274318585676067584629033897658187080747223997201370032183035701917466913499442460193865897643793733707717650362069812057714263493075929750403170668472189214027291312666124046949561961500484759595466038321955371743278481153855030671284215989861005410714808223808448197442389130406739443523777108071388495597840605051138344275048787892036455670699484418458641908429027785537187265891985570187395864565936946248694049177415346543919304195311834841881979281933193518990307452226108335100034711657203950618168817708653484940512960680122295785635172204808665074838558982027429293061466409255248985515467812371608351183076603458095176002793272365194714549516545973372074803341684707557663142287143379688569279224852938569053247798470186546304438531532515786622160194522831373982399087574237394436369700995814449805064766650599805630205578460737364593027376924892596975051082639861575537218896305520235603836599526959320003085857821472542529608803971015246247890674099657875803583528249879384474909726608826313098733945176211699439938930412222336049360391045997643083779627737806751124669036229893515153149044240622734507414344391831900683289224258970222137093821859466998464303890021092236167903352208653591889791483729475117837616545795746062208700058889226078115536383792329649170215686142720895510526882319037069336957835262044787939964976700437316006110363305700379126413766846309686747974239739440648797536895959994653057523338342914892377738662359720008819777518603409647983399730745633145381552126035206216236168423878720118542091037842982834119469214500607260930693719970470908769463049991498250624736631920470572445491664700519333521126993638282504132758580172413276179532640522004718375813286565251266309946964449820256196213899566643201418971830494192910397253740731840785065301563837918752801363320737098187649817894983534712126078232478327979697731433047113698804316598923596032291801126663653623032325098811368265885771594560343703366717028207040424701928510959184719984398819502975567845424444040268827158237837963211013503720339197634301466407890200029420685573869528224635124209523711974227610264436969463526931814753027671682056189170698470735663711178822113971669266419127813366959866837340398313740205765552717110971996427845363464327751458860587470567911757098813999229306571325889620729004285888027456190792160717942907953186020748932740777059228664485937283335873037764945355045495604469553414572847736549706021361697481574233537596505199694308627185438325385385219726163319245036889010722610864132541600622746133587174566002891270871542206975696427803547559097375142735171153221728144612307796160820857841915043899094148055839280995749453044473019167632917264667480434869644461988948275192222351656671461400732585868819882546293187512244777407145360036310097198867997234384396119603542660860524661002567811104281465924361228551053837704041997394031509677289549048157047391815544329453811425649421651282299632022402342092876409125539894279875042317012740299452081857537312847707566074132394959208211927969174605094285158108746880716827843121037721796132049240336916277007438575661071909559034796425709743217382095049051882450789375106823950416417705156121686830293519248328498596171979260938900728694801586789718399833095311239774495196142681440244405587881609345451193673226587280041078890678638367820783290745888040234468369500647431939199422261599753683235301126238836445479645549325230483715567266551962051880280379338536067646184375782819056621119163752478314303196961635732989526271421044726183702063016888494041103657724418588394999403969217987754988835542759939879510548035230536072344992432994623090803338286025397540204318313654330081111117337935420414889579466772602119455698654281780804261125829068843478575174836946666085404925485649556019403157808191160758961641643398507110562427622115637999648500956733350584767112055671111284808436049748844163787732672677171345456675560043594763651614570074404692909909332691627045225773558161095720572194643209658195011097029576597061060777735042218781416317867314217901038113632354926290488461672795313349005544335706805068943636023343355668677573675546998404038425466190302004014564259529554902099407605779131611445480673208364947684831110045546667077982977328370970120633440054443257623654093249354915038316445466838558109286632897501743592652747896487061886522948262005752558189362778205446883711848289428199505699071211266021526379050474762435120023013395221003344984197514446730350145356580981881996183744832243484575787124626285008995351869831871572925756336246562398405080437729705280381709811065338617291056788421308877321264849376739854611722831878960473885405482190830366212817151290349608592220475023695141162631150158706704222425690537632484387563549837912198779781608268261061993607779195650603231862071964422720988799046728309162877414215019630439967910271248376180182040675806724241995219878932401981928248250001893945728160264381831187907615695882993671213233202455714898815585633057684123710975960317187371042405842901500872137747079171540041333437324909691839290996022177954922559770740243132909137701664088416036700532140780298411677237061870666568971500730620114484022525524263766829849669801934865007723479146538274698748196738994127478809866245682547315356403113349546798746790966575517333679373950315093389804175337083677366788713740872911722021616078048815062441969772680965807260068519625541596632363103097825972063624141447654450833384295632137169518311874512413088923693652861914948727747018944477641002238835324925478972344867538468348197946935152145617832396932417784420607870350435251788583885678508142461535117869525269085409446403522665428750019119842949708960917134575586976485465910182147463041295494120195354046949852273659030294239507145919299093309399881359589799207938401623233182296377256887998552270808176186027520990738329652270832291265226781623136225250964741655327902589682018670300582424034817063733856353408219891084367013606893961244219431138902593017978700703987841981314966878598626835638014951758480137774406611503796496592151424682629170088184630272483972860748118035332015656218821303033208191076955739495996870071627814428652822536325483991463407050004700551019997064942526702755709745122432015496549643710496780092983490753840177191185371871305168999377818352186240139335488304569863629138014006520347445284076763011037880998538984085096421312876509087308241479970611602735161090751671613491633820618513916415651449518995781713995117446288934771821893374103007448381136768136985521169474346690797810122602585708302520589912127422673804882532320957269018374230806829117534634565960066660303522881072511088488076648447383416986493726330715243385589786141606733817323388869392282175366069434438013142864558057919583013646338096517714656526383392724119232917605057863542549308135257358017084983504953277243850170379736550213091036164457786661047254343666838585326658762262162938446186036590232271692547508587264443691474880122403740295491553725098376058148317668162460750654932388841965042152750520182420062331457718003646508809970972240145403905204761742208054426996696494471159117952413862047395414284322125234495182859368502607797159756307777613448952777360140756720271263518920745135911575975804708396845829341568669161759705054035387410496760580265813049527930781754995213552580998412918831550674474453727244447904191759892336695997721250564109587993917539222990699578485062707826966541952144357193137226427449966637216881941052316223976790990463212482472906061074738573686315595257369651941928144152963188235117380375619692510732187423582597376261281857596759360579304163775734581779378167960944397921528396132281126554209080173925665206962520757097788941068426660203520911421781846407327210095704116806273048229585475449212153850766218312609570200582337453694757725167252827722140685477900848335799404189020073236449742282112173768830174817258353073156611944436876740060674040408858619780308511910686597971809085879146541225412929928935229902627510989400652183935568544035307465388445849198758281819899259762759839281232793737031332822557705012146221534607695136936729357196102965957980348182521584359881597836148975359424496562692524232361679847748949088934324632861226924401496229888946415499083833535556314983348222955395745544408219784238689739520527273085892174683616953450937855534727435833714894968980772296066860713989197513941916822319229441528328029189667770095979673770283437559586007713064309982998487930000688898103069772049122153595959011673317483793372348622220240069748053518166628934132995975668332481972425399285387047116451016931222978101631475194939633637252073464913618716196981126966871824504197397603391311014163750399729849131150045214872081663538896369968022261310385087754952212604138108858632743270808128329530820998656234506323312474587459433252499459622732123104160780011673947026828859966109356919616321362709336792530564483928155698165430864605165036611122730059699575464854055113700337181224204907771130494813419018998466148377955887131801813312046828305702394210479450705874919326958489566712087931036897998270748028796331844859818374871780469743566470562109316243357993968175032015838388054503848967097046794897003498363616333924615756944510470676315711507031806407655578506797115750978771593002795358078341018400071827391810159707828837238181050616656018417117322244314832575104084717773475055402363790771336935289419806568759606635016541280887120643829022140030654571083398650280901792202143169396540592756870482566953639243770703696801275321541059715367628622077948483886441989014057843937867526518726258280115397074994299865820525932008518084194318938658573352648902823155716318020625111327126384649820676084028760925184659601072872665754325548720465739403387901711985677842057432403262960072153468828040936961035030366188086675879875912789508365278434792981473453396906483708855819234275235507051371849699383251874480891714828680074624536806684788894568029339319799580454051883450993262678572021379268960740462386555709072699974582477853436297866560994653914546270252646147717256989089152477099853292452534146055478624613062894964641814488136410656984836400782302216632928102095179428362700531294890692830095199807772833572384188146039269683359555422181951782186104291835455620150232034959185662280184206658173260324602808220882907501706209947795966545861275389839441240196424034105606111933413628202376964732562906338969444253827838304969502282906247984077465156777061565588853018296738240188080572320003124427273651879870403128334604495135543994600187973664132407327956096593837609357084186062773062151194952299847734769068641983926721685909641342102564456431910417675409603952585684538697818326486939574130294336039764921381592520525075388320552152943327263893270823929702469070871172647149081255438208264148352467378732945798621744312257392485282719778525338952404632808814042871027665931131235809685430572045362457621175757337238657680241236423649525470638790580824349191868481567208360512454443291340692415986449514793758449078803655801526584424496988917465060941698681532597442393418353070304620760809505380302401884171623450253163183432420038845261401623957456444185387821628952849472307760138746461317787962811064511521573473122330552806504639757678914635403265035179005774056010417925423664102958560976143973749554019616326855255154919647259092267124685206829269088983270143346359925989554388391248750169015425906150121323178096108247102731496581875643312135246165771381931206750198103064298628383304111403503154325547611221271005402103044263226934728162656089297718749420814387456594823210793271537440541427901398520310459410920732913088747634456375393637059239256908140332803012453561354841876874216733835853666301379812364160242683403600943177107627012513708358158559473877119849187287758090792676734009594114322801788070786512275098823463600137843402836199066069114926051808590414379169706577226943845484300491817685001782834824369530646082485232646122300591694007339416471492377241470232654274037148910236954753479421283572676760271872395717402730915911776622317603128700000263726170008147372940416900716777886665433057782076899830721750754619750725031443506579297487301412343357570454146343498992209325153395347945072673703589251408269520231043163130174306800489642900611076185513078610580053920927845737085924321645839855341692850025412942283898616085181901176316257730389558754605313888964250071615721452617312953330883176461559568039979390611525515348088037090774891614012232749276751843867938196787810056516908844052668168424355921645319712736025901960717595367635928340941431749663771931993357068669739081744501271379313969572926465305643490203122580369023333378219557784183068537772289426158930063220342544562117261570684220463640664608355826227563938315312225842954705925827893202830280611305898564140676898872505650765104877093360977860111142509258755654261223304352366969664620107071378760245918812303684739763812419521731371479624313453164730723079131874366265374689690332454006674599744151348257598493222787833154029864534933881988161393035546407176085735991885494791273794302721536342318070112343063031077238986773898288728816770253299930259768355305148409279368211051810590925666474227985072867455835911687691574006143800286617007556148640312179410271307643265115161343581139606609892041571589752930484038125778859081297923192034113687073804382282091737786390996754464496340867241540863045364385181988864202801343788758557955844025646274702638137265978504052606059195616144738229223619653202510360285023478442193578453146147520536287747647103729018639675574903283569150660112089672933005351965040510247169395237791106545288689330340661989979428583393792319767208494831688493984533621597725032714708824968222030919677606160292975584700103870835354809316817344200944575575657025727474325924691626587976430296178297063049854046197529569134562727647708098923286192098371296625657351732363373968277824757821012413151060338426201981152110902696578330337377947265499952314831806971500503904512413475200984931885459465718494949213188463415871343659448359355577088148601229992764053556322742406485083769689180151682179100135180579673369805011458618524063432914313515380722032874364542765364322044356143027794242015434078358983888299187358209037096897737814571168296842719479063091121211415909293033674488837278768337258587932424978599068856129075347519586491911396255898764688930192422448748733325625119495814531382442066446565515121758061072877132878327935990276209992229992498223053979635190430984337933677819431373982411375068690113234931946575441861701044733818953622431515274257352178165506039222997738015813500712424487400709411389271425366947846322933640035314524175196084242760337940843967759852363950707884815178867426967105480857659530757523703350108127164031986593204687808693622158350952020597483625559051759261822808528508151307322987391328509089908557404567722884557181377361652801593275636938023381993413891334692285661378003072089715736709310995097381933614978734405302816165945984655193741941451594729832057296748057300254112215006266255413501102385847962487344904611667615325072778132000801278326144961347070421661141605106043611104207632520746474109425752714314006141400210007867068167588821150796202166767768164250115281553270680993942288508762723607781213873344550443733560845152815563755926674491273099650076003261204860964828551042331176816228878289486569748893701654749053765790130877872155960533448870436586654517215731510993294839527182439870301447175610394599834776675398289821706715096189528679820227309438471369712216953955551348262216490742101154729041777474517897052533115729057722478376426083194435236648543935607744748762703323181366372374694089297165801228022764787634437801304408394243282073796438653208313164036923823881721496799263790050237070535047254933170461257706817454374679657939879394301834263194892873292199536045376268916234439073555100526450845547268371497326282924133870882059975212358684271842101281989501477130244600845656888188802967525014419094108729853432836348758523597591963196221534274189846818930612258245062872077041279803748627356881191814000666450550455139377476971543386644032908481707300492863237348379093486224947317243679502033740410933139386279320808533390782658961481219552543233272217928563511770659039853612405255077289785242208959155261522981697187028919120868673754362685047500121755132516124287669635799376932027293622067399548637287099084255222996371031295756888826428708147928072868022598000743499438053548593479497304598461419003419184318931372514650991844887297064537508027085772257875660240657834345775889879492060860332605226025056802782449291691277182194487436769920498795305671635049393285126970954508279551916006627663341382268152582562779013364085838991936805837928512318829997165624574019467552024124431252545328937057332708684025227206841526144366337998075542526322607750047157211283907651038177963188582569010326078362828381265551894112054617296408153760815587748978535260613304270415256415639157248268270641881595460280525946711226522494039164804629249528654188710318655664718862191681488248721246589607793715320863545210169612329563512289084194779589820685291870473184960774019499617606186593720239804162695532176475591822584388704863791735849137442311703708993142707861851466089838236133050591050979794073009503918794478010561820044378941670226971177586650788566035116197769250577462131803930462368132515567744848213250298962928443664901022162432017232987269223152644802892182947415075968177343138104525582057917779198910533825254245363466046366673271491513038926063740152301037874466267788559812601884832827711572616323614914944363987671951655623717138508548391816729322145931875465420516670091907084021074938066691228169913516088242993531773340578708666994687938657487237753142102469070323569128206110205023456911700191352154000848652797792517295160814849102697521848144295575641355724982442486740489342799946094531871765236423626873298401781889180753681090499783181643874283782444130603026424423258081807701404793688423239846445957397319260145413356446688824103221868106145785691297360234154844987633171000755150213195634248637836701215395743374499509001836109256449050437177349896873735245646218447941806863350351597729534106160239454356876846835832440150605087556731595600657505837886044247838921648065561149760414610016046982401466541871797031067743684295172510804269896431432937044686475583368929953376296823845103858315474968300061035591689462494841981662064034707029304681583818879059926480611924618510432737249269034416852640648908407274973484968309049942197016002611067761128284731868180296896468520768165754295989452041190665394261242817733363902582988671977258655635276139603166895198035371810185123723067625952524757937929424148303235587335359909150215092047223111965242291504201529215048579978374203903558611613401433847306622167714784277196418231380745726829399789865631692182929233703999581953672101830352959818582519497192877093991631364123949197900593932971319085179917457600760848030840010012100968009137743059477528672368217773155891844685782617460169012450586031987014427167266556769944327717738257441614416891491243136161738282348274892616349521546345442483259562918223377017182419954711985866111856309379177625270547879437590099677463862119356633080781346902343630923618206131192726990695080213791511067471970420619065093090438264905741532090789743717054611582362266490724023854452598208082156520530710433714362615384283562827258568310336958596565265868411261633704353593371340061224816574431300032015529755793701159146799837234194965488948682739030458719108336519368666154364121958306903162862885863670189499719953733084688948559014488634859996032358029371759471374854570987378663746083903439939801549980709760727336927345206541767786837245229217094074282236517792438721267718211473457252998710987700583662426220048778204389627119539566234829146077277793802776102153688330158838640713302456911818489450939816515700626846115102169235857685403110528931190492144932952607194226978115598924065934330689629901162714761908599075014760745258892600716733823018129179270449009846143501725021238245422447292184265246668075451576960847838556832163992624930004640075439318476126877822057151721070317345529271174059172001260043419522162674100839312418517535646290994573013035068562159989970972383400771057932384858454869118522771671526878437391776423046403060618032817250450162139760781189652913749546382256213207607398703539494143030181596177041698719516204813063704223108026940134764289971740096961480310667209972118043907758547811530443481394329867210106181185294935832669224912399626271044371153508011210087404344063973668094088910895535829342793103545617501030208250986091383249979022976739158015534867571027985086313149965760073148240887270571134794071390215314820488127458406719108030485283662798057794923178585332696028043096900214012234488929694058067552707646962092759117263388595104995877251613529105086503694427446120342489877888030330621666771966473565448112714059270076769371210187527592346218358499714098976670538631317918773127491813370784239255703467051174111621668446514730709083384567434786449073060949269381859125288737052797547881794389849054425976507333152411495735727019483294542567498374453863573195146874684371876734645123062668735624999198027255317517562317524534963762746544178526216267311676558889936665353202194663773910066779997150578024706158791068661430975621053394352652130892370848822373112551599243276311495519301673239601470448300995781226837712707337707964940996995015242797521793891277632833071965533542163999009522158052173284319338433244114730591931063417607304002208455732705609524855562238305253683116481784025887220557979302773612056214339466241091396757031682212201718613424354825298256405208001851570078780759183804960881865513553521959754141845350881112458485470694447406106058537071565731622334289451762392607978822797751326931718980080475968626635769004146688676826021762434709425441296548898557319559723944739324910260335362904453376610342968428656478155703070538950286743637923875025098041846569233938000436532190713061643119247370760912519129121328578621935779964798778615593885703742662261243665728954079910711146261880238307035396044261327986828919273018510639270727395763345807123420779354196278742897898382908655694697287770041228796900424548935580390941972290890587439180546918853120332280659690641103155771959655054003985937511940109226887350266035790346872226964158432160265063904639629263384680174811862272039585481869457625479156104984187124877143801162671843010423314572804865939272779938568677687006395617085353890566763686731472638344068096098513557598639494470743453980030894978102471826389318191034217708555071887792533129412353000449369287524599509748067246596772884223222960811556808148459042383876663653167582434783834574706228533120819969566678892492994155899694616105051396630137837154096792395352632688880164357653655965089978563287937735831399640824997661351848016153887339085058549987232240134157295816917302086983143217270106525200476402629006564631859631604693196543342198726321838675204916197073534968242629426228960742672605973387984116119630666670423164239853074377911377196891711618510738436187101300967065166727982239763944658895397827180940185753538737185601618940107298979372000428692995387169881965407243355891566906272881504152665538618913201499292154362655583578299675289509055172805226961048889657263280732893506231179307907743408715779000386310927118051463637846183639200941521568783613952824361477905346475144515842557026596233955916811723790094420359610005999713928346151643623789607970943864447211717635168817364726513999275025848193428132835242715928859301529715159421780618535279836674600235085518533503311151500881188641967604682817434609854744538068200302195685102238065747591609298177261699828856921535263174368864246562047763700795793018873115551658617777174471294893951369670807884745648589146480601307530388019377855073086009769227369811546521780047544670872159361798362000218941247347868110951137727378061090374221521834414218758202820955252477532423273821281606404792674871615138500460729989607293725452565070502047345541977705527512862157241598540936616682580207796855461531865551861895727252168415802181977780905284479277186012890805950793435057858955333509459174470034139224169723322251419788569470477099458333890222341012171128123304400810725733574550215699852603658952286457742426846167819883763924773356228421487146291188123491075268272763245755025565577641096538842792792121555515209370852472735671774553702429611637164698058578131953584293540425517713073813102674534896611312155284723022316739031342768112885927685260708579484604865680613979969492926257846599921455391281975271558893401503085391812537218932844044345492435045399244277246667545106856559464351011126951360106127919491419615418994093683357268806493770276992398654128813883546030564250834116044489233084958018969058223741603441300204525740606196864813828076891098311976013377183444449197163001036576491472871357819367998166933964388619118735267827756798449189793283783265903548460335551573654984413680598920985704103316049214217804792414834648712112506021253568857919960586822723649673314585147478499563475553917133048117454056079140804035101599014851333714759866298284126505307542953193432470706192962810963415228737564235477028193165884018720224069797522484813612957116755269651426367728880130996364828297668181885526422871608403236334225545395658865035632407207605931205503873310977179126669496685393205388724141077586410751632521695667396629318595400735179370831154185345526990195533171733731211842