LegionMammal978

Output length, part 2

Dec 21st, 2015
50
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 33812028227541225124969890850016276144200354769782098182540319545843317603716422622268439189448410347965149055846386491846836366613929170242003000866411828866445904688583014897248270805914642336928304867777316490752453960768701365770097179398842808103940567168491635797292178045343461692118184400838587991349414663930671597909932781278693170129698552318889257782846208787090761253218918759918622401230557330695106363845323774916290148546319682725660580860614721792083802499858066753086049296566335653120150093306916212428246184670402278197350114191698528795598864655228278441062638288540173729068347507675806111649408458627423847750215231122959186737782533544115923764172970062901385458629281282647187872945809620085956295394554240713478837556686964583401110331970942227459790455785669820775532543002421052809747659103384140857195855467630598794208911047180622469255826948224197171864713636051917033837305653819711020563659292535927328113377156775650034488977473784988928977053195606583441926724913017519629728963190199077700932454637129618050959914880136650297000250139450411660690528838403993106841339405437386953647367725335754397999363266584111776599891837968560830264392163100493950401517520817799141745405318167922278494043603345778506214896608765445344581999686019856686311619459895116087980194091509441586969003086880506864384613001047692472690060542761941774831729290976851145200210080276984964183432563079776323803141583255324534545126099974100635046751411052544582855439127569815588094015012301595013968261936839262266066115194455727029645734951970806182560837082545750590634548987737778271706211283650075293391447072794978837855245694311248362045768491832407799817270674008459955771604601748339145688105992346082047593900454245038929066161155553196944166666549760992033190587678888920558132774559624387356776887720915971489781026636634282695503520789057574769327267184873363623845455046377471307819150724865710098334950093766479581190818106036245993309517734987647179548617177104038249569639350762012956302359228232432592846098321559583134048267686846566709693749394523886167724598470486382823175838505508590857173966206122236789356753489681231196686396923308866921205459261884935684661989990611306040390000887626259793849846016641944408588622257399944876764842569373801793705994482754155149444251167275422572746812102526472658702303443547235434996848913840377807046744858067018839760722142872993325487570022999564864637872176018641389139097191496574278268322105304143306540263448361136292179320910149930341647389214883243701574406772858773280305101339244631806452985772397960380740559103040213718673644206293227898158937023760784905424722311045416888893157138762077535289580688930545757763037718443884601126025692504519440640369896440256983064477402186367228195345498648892520326649470433699970189207648407537253120671840421976709347981181256770296300067568592559232110985047273219112945311223161728243681118376723404765844192472480888301733267007630290435828173854817962819409251273846117907568099634321994562947452325232701986311725509950859588127544664599791641409901419241046814365124274793384440279975173211882801802674433073358944426758311556053700898070121694474446198297484500539749846237054618138821507765823132178252006718719835999017294687291838829197013293731782428991391333016252851015647109377433847429281342594601030764055812448151731687721970071431611164723005655400418518609009927912638455445631148120684318299601054455012353174739730164039801129173196307306830033821185979986556208785798762450713099097515580334973699058036669838480327797770993468246160336877749367968301856071685434565262563352600491997679846000636742164618312074567190096937898780148881898193727738232617886572955383219133866749437260908048673526435543267136875665676294775967991607442946193951923605128830644593209333372051466826634861407782617926383648419595476028593762934802172122874727733854437615330879659668459638405371084169012293128772962249985962175551327895492923659778725428236675421213065887381334685623785857355638459499418194863139628922641293318600473193862668071265508212037348955921639926476740329315880951199239243847122786214350660954429733111643066239424717909659859529106322321786593410622519227309731181765970382599523977412219798913561098167533592238491453717567006529928596364127777444058761494261651504640631612046356395297051363729174189144586412801762004200518199103506164324690240595313216453804269833662028275729081019197483052288407664355803239529304557222863464029140037031536975699128425152463782252599233986969689310131367818877459581920330357161270103980605726085901533835636222929849632438676718164123076695424818895037821332756140080325870250395323871181050156247639427847213558417719021881665351135445470512035101373245723564054534864032695387688097101509348484563754787687408705320986164171458499950230512997503077993847155087061489299176589204193938609886032953426893161255674247317910266473766732311778944350569758683912628399606297073489071621202981507358964645310503347474720007209518144099200237122252794396344253701786748733700853037158105333766302604093087296382802946860244877483683406658588808057515303097664422833325253093162627532563069291734389846601926274342445364864011621290407509781145728639125563824290571648578878671793608283594466684662978540615668343378847417142332408817956724053586225237730834853333712079425761747713143989419162132374507534095736772262536484977289554627335594161141839992516977036352044629397231079311915617632985818274346897377209225994634759799295210289208164007377594190747655161367187786805064231588098040742167885246410829366353470098170971966373984222627082503773715261585849414277606675245137748787581991268342647700140720706257558230268647878133689761352176738274449352832268933395832069372224452931987673322117031059769641819072778565783262354417298090120639364351879445185914123580156154665663105345957458481784200089324952092815598432915810342358746543698886719471276987642910922391085089776419636948656701705779769371261922309541426220458318433538089618889516546167668107695633171491059974390473184640804463918996608731194765452649988671312505056029952486727582521998684464876154972189744394624537601391293040758168068155227950346119871551662882092066799690805313223121992833962092969762504387129696445161408689947280303677430017179393766470672449375839743862170299263516676833179696425182244567571909506644527739459454876526764540125431668775922760463494747101989778377535542603290590937756402990498524481646503997200170746803672938833643315238824585849623038060635555660087209030347182850019532452497118655491306652455385020661611696612490347060657674286332384085397716496671653037546290568195570216160249351984879336120979787831441873773332736898878014715701082057381034058990867693696368251322091519543298036713590093850983297231331343370072291748450134416667301121238998439115864941015018644031759886166169138279592776462690625500348063540486034363616377408403727382759048555876374092735760998588942258156353002280511737303875305363329284182946260261552025241195637705766547761108386314202877856723221144232725003695172400992452850472547983174755895601992792158888224623121273145187631662887234639116737435608694723381733235949885080587941163556370435249074187364440746285267661972667724905652680841826601019411730312676910836708291321407118930475443091345385318536661291131612474753031991398371831378997816080649418334987511085736638915125584460139457922901286641566490229069262034620878066631080581041801667257900069643878341340425249003220766834667999967508535040910948462424783500558953003678701290543703206269640816118155341717229665347727142464598891157224729158332213440379338472547429821562067351671902269759584697321877003331251557317394921330978364854402898727863441243649972617425592298259461359217719955767906521095276326082906821208444366166738824066948137107758838401079946871938761512681925812347707712896330719971892069518344372791318984893465092587727170945095123796627365400408107897823470151995560512217541933777206852433126640675007694523930334694529407074434222301378977947614775125332687798097769338650806997945582578298460213381130915587042377189723965204599069562465521509769200690900314463505245342336134322694213963326660301864408992833690904347468901664308553481254971010498564348733182669477253868392016949853633767479498881608592886551784241159448204471303024585778745142255769846454896563450921767906734767915804225437884321283702860253417043127192703848967713476595900774004783530033598267907421647976413019436632072201464633446742340803493266390137614701444091190085476956346083052835944284961689402552640898293154072986418418862919898855566372496643092091930640683765395726663886814747540173419712197072664590315155636304753323435868716960923228160723990447564289899155302924557998504469810055739279883702848076989310600087724366652882369163792215066540225701649671972725254218167166256481878765308899079931399305711495201150666870952542857692041209077204954508404350373638857172325530992237271706582129847641577978528614533033023557878433180061628799138469765662094013612784535171034314461439890338606670456594969613713031045431568499984791928380455292931993168304510244345010170494532736502381864669503791209165368983431253655007389886262616753377948745602145966212030405580032931356623059265334460990839002856197396424713966634098334835486915119720077680636867417842500594191168653410187730415174809278397664179793238165419610554151010513209422843059989939180283179580116388688086446447090074971823387997568457227238838798883238835556444059371424302210995006090214126506508235352032199909698040821542446783335308394690106919498681805483966280947779323158565639018615957890718039178581016794071510829918288284729136575181070691440219152040142296699838619899105193872581026045266720177567879287031903808168963126698246386640074244817743299732960312589019532279908487287459910342463392167309566099356071935864471654268992832710970433093946555701168718795781623517246671399199689246372153603691391715442789135984482649486985067360552952220213076750895870450692820569450872373063263171677046766507198034334700327542430682156645996066499585041930527942440337185169706926512909996353724848391620348726540022588386984709336428314891535973524853411867396553743763798747854199945949217983398319144803764192396027415952024776240386272708077628064898523329267188599626279146539917217356614642492103040635952393161992275205266751487466129085865476175619251972038599294192436862708234155424262807214786164296861337522970163290730073772452139565581070284986617017899761288692694926613420456421142365515529642976787387789298405443641802026254252045384371842985201740895171662545707839316198372260156949287010394233126538534664852044984333784448278817233212335436502605779669154716733448448241363208600967476376788574922574610417408812283003626781167390153414472322093292372807415551782996125980928598769995011097879596138717040594483096917053188415877941578329530923019229016328045459174982991364046654161736676766329440844194033752413237514863835507510214381556624768415397128003554746563264554649247658667916674344761049792595242525763326712012969548522107178255241279428853650749860541920952366431330434876542104656524098670364883241154914112976287982707359520333451828718244113261469851066208528984649009747733318184962807300126009433500586335863816209607941096029661073259456895878496004642703409396347601194942859807127419537359040504445277522714678311956734031194271817571121118343689214046318507178101840794908104687470952814358909516698487169079299602357045653983780344062022210309568598600806450018303268720987953108045086968141591462754374829267695963296103141787901017757111616095964259441401287342946603137077825036152468941347857728637409105850570385275546244116779462077784383990703073549783829546504904596174704105450363572790659028204615252150892975384987937407298385843372926142477799441338075657600369587071809359868226797516928015073013308120814914520023185772930898569057514071233548468167530074362110165697123619620995030245292963572145188637643381336765685788703213381988426457730252803811340402013859677030320888509236384188054908382606298299946796042842451436812557013898880131130504607179713508271987828552692345566829132245814040426198599619938157787041144339322698872378439893408557973652577912279386358646437679000434650838944495715815993789766038821567087495526873571223403984728680216055583291051432633941742660042903803894430389625044053715492836703344595515204492839777203523665374480086290431445161017390431888589625008767477669838627383254681359553523653979723894721058606197881187530508263306013284507522784447230572361810073345795005785770761451502988433707099609500167445168481351601572913753098348361152134403407599617587409792008691369512471707002450840693772003692460345423349915558094319108373595814466546881992383922157405303091545255006938678762453430089163521917083667521082185643256297751074263780380692464267847552848804867178629568214404301627034505994225366587176581411662358867061144090289027022548609962989831762231416158035056793990389149614562404016779018205307560932867844645595940582581754151851363372203271402502386751582933312075918256782613255612712337307957191520762673569471394361905578412085004160621504848932106799566709011506454657417852151570198108641816105669167217084627962192179406814831300377847227423803002622317053811851926148813040058299816787731334095249160397955935755945880082560774276120004236133819141717045931446624740881913842543154993488302596450800820605871795140490231100721110382058437359689710864379544464269028998466792263547295344023824484072176634929556845137475622528713353291844566617247132584207364020139707819301798028016039228295598180635023303680428063991378634780871611515595137905009085888572774502154948961899055291604919501246250219266407149463824855800220203050044200549449328723761467321306068649963438631255480383732298230609400931136714280786788821076804741540590105805393788789981121742655504937321005670893816848428617575586198040855264204052037337735629664813967920110403395646652075167326605296951581534953566596306917983812143127771832698067468847222842422479343508126135031432104387524880383018129246146761378651283823155296819260936583857265340328557352159435558938385893959420253510559283167948991129349715462895708414234423554375923244144378944159583180975153981976038331904434538531857997466480399522820921101070034165686725207030510679251343473731220642236755181974370375189255187773437007609443118642414947662847724176438613887980967715206454431206111169481549620490975954499064312397404439241477054557044262229491613924924168392727126246738211053179146897368865929998765413073735383646682206834692907741035577596985514739042940359577923834787528992884734541894944189921787487097605161811957452140611807755767411953792690052512824743776623189078904764445760200034769568507132776592898937234497643765475823381259078408171592896807231193129564208766153014495129811589893836818750057639865055356412338611794619821304882210945637281369150204155036093394670579659589069387097592818030701060697704698626954705941220396274861248742408621022310318702521672073639697671995829374334501290616087423331636522869069837946989836362695454851982044839113501496177986666727153333594206460536430182444407986386883578418535984333535393087702225613525676073281845641149573382232818272520076148134202116511723751930091640303476231619790561498090987817860919075109095850504410922558114131760640156060269583968925019198002382934279167641063258255460805200522903248700613162713599032617423432008442475169738780236548455208657549832794933488635655319834679869770039025841627037520809673866718764408972188060215691136515166599642182843392121971710756671655833707533261748004356349581151436892877041420079069668059664817417679615270263695349206658960056235198479748245075771410624770795869787149180646696520117472485473836450065864146424584239875730419353719786612374655242810507532370864600391626627342406531171768736423569674561893093444302317860334007546063133612941881512787085260396284315052368993472620943397736540663918532310815533700084143271552101037577128463241377788475558837999084433153181861092384719908543706676364219143760043701423523382871852955535311900077666155339894506487798667933546446303054117951565785094541276716816616061095121744924307852996067790161814798027799026640373523026202703470722439044725297988526211477585324723136827482871403788604644231626040463799585670686573547845356614639878431448910741586397637526611054518968135457919294564948436273755736426983584366068455369413752640788002561873095209079204442034485787581142833115434428001878185538629770681032167172525504375192329962899208437789286668133001244233951598540006711757629336364741371201902183499651796761074902302423906679407249404977821044637135489495219746280797297304573028241869346833707852280883485962489055065043962738300100449875911693622311985722140818638790080675321140486233269579710587802265747930003625914646872714469873242975036990252962467784065193922019671057851882402066600201296763372719748540876752193752460322128561047627058420199961194679694445399491060622227588523528343003886029715076198829080171888761265320826109058701579851775700489630222685842592614489947348366521643726277205473725985850330275806764604431773086445622884574359462187814079950339751704327037587086185335939218673828128282577640352427879171849405161799686967560307179634330235600647805337627759795731894717751451357715134230518744261957031429643152739999796397297957154104512229638571664029270022652935952562703959285050376241916436840033411521556230186974432775425912902410120775330065875531610655958932475062969761032068190678564109406479972560921480065185700153927800719661569436653717848167042786153526250592889097977898982371152989636492462618579546251717613306639874612756745778226831523597666290605340524353871762599309828896987568332487944273167173300134677816847842346888098590051847379818260852371039718277312938793700569076582255349582840201321700959653852388318180890253443336358082383289925995320006011378183636500580127522733896952734046190182828226880431142586963364993727494423050593935842034853896788695353850820973235077202399968262969172320073242907761905436512063229833890290653583296654876597270537489145398594949792865348686083126009416611966516191280902997968694668674668428304188379673563421080510707516748754241917546704957629122350985183680332995914777555486687661680848314628357006775958621052348282678613140323912400306475051614203957520085421571798598009727069652193048070488424426216332545081251100252114227218460572786684986276380500075933763249161880753177446421013221896400203651453463213954971359912097895322381359067548428619271882143554984765811368861912573884065300922555722134255493011443852959955806316527080545348990165786907274793497519890000720044336131680058326151034473813303985578741399265263518422017669757908715902801061501366207467211309881627694762434343574828763308550745097864131136447025373674571318912042035840220790910970747585058213789015590471158360211910471075594081149903829835950957692668777254128891290496271013757277929588536442336202757442868404754920438884156240767684005990636448542136272887631079530339395138733650924550100880963969444251289508419088721408972691388289087443633171418801680946521679206842481098111485831235826666341573517862693187089439281429171803366478245966592611552519256785877532075832391785321910410327082903879238700240086932580005047848539712130682535655504372790499798788692919281131325642353893163549577580616842346138556987495415279680496665391737481184213054747824387582957199615331109046324189700187130179251242340692916074452988393168925809813400219728170646436557433123632991054651385799231688854378480691997536877691461445802934139057498093294200186239380407383096941551520201615170300400360915692331615100266992984096142772648141904954495796754709956892739728092767411899097760673641928393127849238003470791257376740947278696860681724103947994390256807264598622131933984238958074966229136770099743639461755377526510157356660958247549430427039152534980410948135168186282374301074705434112837944937186975914429651595703715570226599895467889498852943075085150519179007749387143671492683069804756701444658132225302074189308761161205325075754759470529353787510725351295328307373808728558194801283653862203326688644422474009025802839350452154129854429144930452689642991921821225295223229216423215433707508437951450207720284635569819762848978579663366480111315004674565757574420957943679745346495129668080413091337935593358520912677773864635287305961391230715405034082150281490589410239546536962281698716047322896654670450696337582815508854673227623037069644945059613406756925619840303602230542962998822559411789532745563684898031435883466814732382462867915334509486229223017371435659301450000959425643100162072722410360128536971015856304184195001366132867824479769228142821637385377418800456721266464527662462483974070834013934679306441515948488554729678616974584195277549252411150528039062624599486789211218304841649539708391370982641761098577324187738432671476340908441550653959510587728201748317185840860456917199412570086812115559574938209851457334377195978598586380410758866093949988901353981880613084468781725375195702058494383429371036116560820865534427248535392416433184273064098662028103923865973128616752238846933344272106866066245664728535286588851588404804191686679460857583633819935340357066128166094370469238777115022831839136743639626133545308140275390154905659488865859155102628651039901107000878354378081832408087837847062499722456938452434479462989578364500831662005944500198220760219821126988993035394261261986863585511875734190189995773057134581627186056793102045609091481513112671372173092407634598831894186281575740908995714453384059263242623552871896745111521072600585011818124591851227724592550606185969831285532206600331082834383130943196845025297569658137659041798484088573969096196776339385346892092724199921874366338254572709944851699754314666634248232053412441163573851451330076580328047198316924217064031235083381492974401273876485165770667317361681625723884979559533506434183126403050582072301033812924155030579642513207259696952406566921165257979803227416987716343456112600770929099157583558602504180181796247342877001892723666802232987276633293001746908511153675498003027679513115793508599399475410553808222805967247740696249979878848295598554604782872987419690365091145368047796098436808096387525406103687630326679518267511803735318015662426955161837440739839691367202901477514072730327008295363617851309655181581989317156449995833851423495181614374667042296549451133532017655319805175904988268273945254669684569990963112078862098522837553707178246072470710867338027503190330808273943404716179024716673929651509628205501606665701663116828098296428728798738276618413602641390830266863803836069657077482420229310028034042966951300710965412521451888704158246496583540694483725344794261397722716166792282031491014342694342052958005884177521784663547763950964180539632854378979728043370685640154746524130714517699665235360292060583875376720246159017601820225329576162534067447152412483397220435948264814036539745809023632223622358677264184810645483354317615128048033291645303936537770766004311779304974384614468167488560314065093928052409761845603121897724960057600308418429432647795591569974512481513263674862108356264370141284634804450160760548758127305131460696990088942719791529521453834756048503363756690370752517730092798318725605062899708998783115511656003026042350557078133771844043424843076520310495912456077784718864312334098474299803771803760694660736737799499741344238687955598199319751183598035856447909506096025177835378669557743496002627556469472863197757647852452396001920754669493067549809679424402276279661252577573748210045862605510152772948559356727820969789981579089412613133087601542239032500170370482012978427149298115591504498936408753118847374517061269538984325163187680767512105723126711949588178981416128153591335587334485963594045509762556520487977592852811228535302089276709776755816311015212174778853766749886972698176698191739140396549681650461276828068101144080381864280728770749956180712582942156590848483593973270025466015987835322807075354942520591357415847123969871248000032488841135807228946634302155873185763789205425231627726218004533835130975685999959559066886651062810620245797143806542414848265634440871323002332332513495761259262832726979351049519260125352189481434286837130800133605426397492429482477977720159345084938961908718330841631159889411579327956546568804883982477324997849289746828862406178194493335746637105268888891662618779936704979406690173346886084961343506448657709977746716595348876597947682931590567482904249734484012412229095767859737032827644571231850052907741592257832044875137428802190801315128676945795915847712988616420718294367259837804494663082161383592031024985759693762962562631703089411664774689135981532547793626016606378764945771844010950371282316323231412564754807444720449055441273026865225732072560143560441433786418010620582397580011414279771946390939761562277659337192519394647607563217578378334518975833705805961823320417296980968887384731745614661961831254397747366878068018208836143851447865189103717743844714577202566600818393765484806271361793318016459624654107731820863813943476581919791983654822174882215718606255973719845175519057424178670403922606138811419865811984443681642265572203419752846053719207573320831213142130143555629108582800234652208540061297110372636439453511141085984463482759152664612227510772044962264244259264686515926983771851560983544750061674517495538795868095172284925885088391201448764230481642995016028627855032916422566414330214231478051547569883240206346816797213901266462854235101678955628544467702377703584622491969052670356732441399581912524387182409045104392912158123222963823333873521174965905054191598209544743120766489858913436877926285351889139466571433393488078336170766924659578938530954341410401455443259532448233150761703797329127541825690540735640027330461437225221248924597304503850832944008231295798784440874999379079815429123055735659249481468121379392743376698874877711619081991538805400925134479318212405966628565095853577228199241520203933183075597923341843625959550931883193970035679726837691030879908722261114646665332442569217303708660703354799872761700565680928418704878779332208934446700290701065663713228784299661386406621529965885004549067259584180986111846382421181876660199058283175268594101805271529410608542974618353412184976395206890678435757405416474116798416738693711767835289731571322313282645786943938324829732113975443736819424641660612231106910786254603752995249899148857317403871264819159893671137590340295800203771005939689846763589489176815802734469268327733090759217075644073596816749197233237983761474279824943597436835493000484939008037937761513102925242020957260278521797448435834503203626128184125660880552975394818287585018214724195024579891713367433320760259704346111699189763181999344261582770627487583912632925598386181882011078610453229997048205656749804687188362611249283807029846482877766848741149075995287851608512038830000912969309593243405457850502799761730047727737596938609921625327553763972129815214404030431747348885636915752853256465530717249074924772197544378984781290361981216441676621846615319092947873315791648732742628614727731517087459638462636122929845894948020575208861539708157425840450278917522914418650331541492501160199428154785113137605352526319401989088359159367827933223471844822008196317930815284833925812056095386349537470520729828405205997898612769239421302132300608435906816682836366815406878501726186209820512183704925947551980563133581104737110122880612656627389968813795044103628966865932003507648144781381344084487104267594796739967333030395945417097637205450126846729390071448455225838006753635359358167017683869134741677552834969360597209042428836837484355603598612447711389271978263169532581786872374723538309846361781768342834772411921526265657893570621769468280395861252024524257546503096959379700616526780952471349017462257960083587040528822967188128447760032851561284746305763468139240349941071335759187563333844825295897979334608322853720902990608699463286537228377184787178721861139443681795912754946761937328672255159035753577933229589191069876703058165337173621469881761331659326481895230285034667001487407666299435985919753151106499345290701775939462850742223859600324448846090880849574304630538009338352633987333357099814071483157503369248602384189946563291238741650902436406521861774202515960534675841790428853905364970667088179965428032396156895312980558431985710684824625572747605168965572764750755578547335267264966631374268864838270870670428821213867141447688387699975808724853310341543074985957746519357276155375337690105611881679088594212394973990853699274457972514238998281178881765698253718830855653247730195848437111281404019385238995556708517229359596811451432707849588053691365980411938168665017651913477390330240305169680141469057152778786625325963099598957162622603515418012451835136623290521005198890357973471171761020540972624433955638106365708181133569723922748148921815759137562480955967568077836454221841924237084543309431405557312775130345215083511989844164144372665882094529410320556191625713793741868320510812251658845231360851973584150578164353926736492952905074954448445292250645615680815336747409918721214004528766857257233131540710945968386920385136337455187235872949344230716802550891933537601400466114683059369933259445126226434867281492481919695788165007297579435916638108842216897127645695507937987237763118981108499543264460785534394840067181110432109858233534829447303222467136113723666885831528664301986051685785252753752113416284753912100987966862845818398859141281868210286276765176253894197725688288695706066466541797675481763621189944022829176927263939186244593651681750528406800803790788717473568710376980473313814601391678578652850827231246837153406920509712904071601376792395436698142379830862970833625484022233153802196493422259002966063214768451183132068647521221170960217369685039411247306298896982035859156028234822105747937821248180152925158781921972080973185137597039410317175792640459717080523394272584102200740068017674163909188394276139185621896547082726670910554161852761489568404776689445039728038313275518889104803537308702118590284889617670375255566546142728043510186007674362169764860446481950382900317777612308771761100737828850092759435270058549505835349794408217026390457137881459473495882060357758872339247848178252627811978512604131408053966150047270702728072694686213149875430979829963905254367219494879325250916066520278691718415214290832572425056250967888778480084480519593290139931078903282093987317591817015198049118495580154890582249723176678984339422032531306847364335133546816592492347122605097358971691140109379332940529696088342432693763162619656495463458361884709758644121836695808681191536784057656198974635816613283908401432693155294094505336796369023172717333977116200808607600695132495897993709244326663354254933652546456337969783689330658471608397765472801683948772110589808110206492251537190275558602966475860600067777730927969783067692677218242144336306159393453603206479647617976122334928255709646422611707119779875389184214659174336400384120069421547255379993620848507618401475067332426194332829117447773472465914171453399792198682008660050433997565555182066346472364602880224289656678035563090710077065976309951080634254193438242181906133896530943899630172367369480404002336078786432590079056055625106041256071363753494890411736732309482996105352035031963653117506581976347739191532295244916114005887198539615313895373367215545158836791173910268979746490809955809467592816937201655935716054407752389912006545682001650795420664755698962691738653565089403070414606805400627317405844511382169146851072392096244553487553914811202215257075107465909978626802839647561438924487141849255054957313520776692743059737109557957444369803508372277368954024309675801874851785959165214328747049103182844498840610566174880187555625790628479272929026579290959811378582595577201340341657859818489098931721409270933670520705621480419224025427092073963317433983818179968284065607635167748370978420188284382471318046666932671939916998059479437539518012605018165815758651726291525207577448420890697667094054312504725643004579769312019395012923817886442229715684368086714642901599263785066698689406931730029635497368297719473596430287507818454996272764322417302930114116869746696041539174450778989407787953514716378867622455262962414711360006041508592285404841903121438781250916281985886326602555628257986240531334564785710700334499479302142011143469991400954657908498425582926273429515743915534934233273761728288750036596022959740966502458025705577895037076179569934228722619933128699781297583480078445323136910305238587037888275048733543423477669893469705309815632628506542725719914472304900793465382862544711340850063869572009154231206619928707667895078908223685227865994318451025692800708234005222863039200951280257917893073420788744141774418903462715178501915625993243522922734035499501597011283877565955556370271033275623260732308931488167529745613558169496252284699051859716422033141143458704671016991738558219452146279054114116087552424301120610242542752609213915590298874849728375983633276516681783424109530646025694440113066082391273701985013383212449979740212465743054986677439462889961961103800324679028116740538260799322191062148309248060184652402421607913165824959582214627611927685007061206610459407434540707935957311947615793401831285790903711075775425403187841829707968208497851132609295745334613442713010588910763435523907714936322078104827895303389371738176278382427439677592337399233411122689065488322000159285154392768123221087940496521590457342570675305863795353801662641713631801318371006126804953396573037066945220868082799920636072050554362746067898982830639877134531001757363567046300374050632681993123081520776893153443788244745431788381436330770563871208215738080066641441601783769856870437074772467701373032588277539064908366884796386936876901506990632752887112780251774375068745111059294256884854501953581763936240379239158327398575044442172890027958211013540105309675881139799276815128478418832626689890345540369751321044958334573874408378258528151050170105598434371863858209874964029395333686936987082836723087744866459346977712554528053888538059215245731166317584304948969734874582721398999226505131005317114017779747542679223626538400502630999910499947632982846644939364624458975068206250430770875142109893987352261097497132417515527592110072824003647336956770916068263498407315247076331447355593265975074948693736382307988340486162658369330402865537282354103265708931174029069830011997900500142803901162304178492431549852683526675236642604576280366514831965569743297595167769664579002837894733661279431495848834285476977677184802534988134535310281086279454234320765666677949422242583153323357255749767530014227117709566606620009572520754221071628454522864267482151167907715347165899039565810173901914581592372284951277638246376368931047593951732919879863085220473437366810918282312624726355835884376840984946827800104986115432596211411784632186283137837524834958347870033496380539690846866310696346444876853858849391708057448622062296986629279397665692651362277000097824487833669303118438204809087679176060908296071807343237487478966973728608844848991760584520023319972938698675166536754289108769960788129154693296564223764149976522719115486183431678439009376873548743438212735076552745603095198122391652802631944194248287505626285691016435237677744131663104125133328366187245718796115258297811812739802217540301871518481269558175472533269646393415971522126833721413908998961322753570491293102116596752793310916284610219620236617287039174405615427717601899260899686530869721215410036200436864183412909642606320904599931921573705793608376354804671685015506361397332182316417517801876530540003124149449945885840224200992118135111596979394513263867540051332611378020588190609351627212124524733312597394762064916000614072614938731098911512271685564837501847108881895976291015609574263810603087124274457057045429675831494269666020301116430581184016369714714595084936845956935040925038279517903971958122588183925004818258103482532935387982323842047459473228781423085042916867719229715701362861755448533521578016832840948079179161272600357681286679634951312427098292827605848092027219916049071033744521633007838753133413099098681546586129570411399632148855102221476547670914564968119852020056541314512068722230268222097185893768335352803664969958334178085084225982984598254144898879648970807408756843010363512407978505341320150531806160323305832491927811449594597782984368522939943287981912694398381722528669918856027686608957249403296637502281726025496471308002169708352527670889734221426071314977632824290301067815478210830610793633386599465020128168130295084367302384647238623400552275049048271383286713013769830668126095747438994549099612953469787431478553704865761254230437284927402267279132660167423653312317550487381421461408720977955987692784725404511750010988742678006584154700322498208753445030604967066348272561542067562794823971002514825448962550052801408200648199113740634886201212713123206777470229829163203468926926956411952502823278847324993558796842087185318337965724973002984448164052396894896570678760112895077048737355923823185489352335668870351522450327997483376711171610486542516961514754787487300314814437177672321251213824553976114222363037359989731107132649944385249410341814765832705939403736825904156744982114114768610112212904879751829689710929057634342194871995750695332088276522963306945590788198057405455630511184668679600903311814091384809436725081582680087794553814393544673540493878674452293449896315678680605359246461076206288447771386356260453770774332871267855734764547101390668076750400596547387116383140869906747129115186405082092565723881406153563541989314343133504866098661021503593446217039992169534061355397363931495640341897146931000806433400373229202764662886274360076885308337530052366394022462305303702977967373489191042129099450623829546852795789287037151557820418578453373433123497727766927933776121035906638146231082263042095210029871163090454669135512475101786626478237995801948512442661272005475999058500990970036242975153477947414977953864361286591962951376635291143961673695964084233071691875871832214219846278973286797035800804527723879644195627586039027328398673676938571814285001512874609237033512742483639869868968747488508331205783861102061070855510725921002565223869197207477489466044568623417587926453794456502577681556950152157555446258073962709486996998740581103758015600802817174800682219440187593418812416615219471153026611410353374097538664560464333017717772927428602559865738572843649969306689056434694305449209081181112648422982933065871116966917535241278824652144863789420795118411182188335646085420638601081851382356420927922153424368669308679911617684376270869304655940738464740932876739030994169524099732997607777811271471844161114739130180679722504839796095255085946418286376166294276065199444193536645413886637723189486947149568985604121874481275361651607341850107394728165048168485742995557773514576111552961874768680177829670313575427503758827303741566575855524273660199313945589238403428720421176730752158874381289390300538690752623999265794886750648980449444199782835594566223359122679588305970058932268444069643031008938847523505446332527085077076498753871994220290416455746748336856263852334890574560701829171386677884758339734877935804471442340854604456012010000171307790387696627886800978006499491330595221633210698383732846301712260403153689050547273250459774711559495416595252570693696291909597308550045587586093661365895516695186748186756118843279034638139103429996634891764702320490463729331692489385192494936697944462836038192816557061317103655161370219992092132571370283365115585326464713420010472107157596335781387417236856269842116619542504455820864259246539707039274924023747040881088421066742338793814039166753153048607314290902555264894078276293539263506218776236522873471324300257725342193094965586693733154823659159827118154404068092234793291729808147045348960118544969220698881178672202784707553527823313013578761698939678259575964738257977022513806438796535404559631654276809615450918970706425888067921582021049990599232122343660670591942220612923363467723274699586503266859817157072296409413624396174449246092826828215974594855356235629483589703511767618284452856683546196161670597656536491688201665579389936118560021648954656468558867155950112783910604364198954938861397877530259584211055133971540068766150475828760338714607825150836513985250234625993586052882922895153077971047475507742417319233098838634850325177425907796796293156976717388783125695223896427453212185092927202274840957415369803424979070411160423004208079232208572754693414278796849484526654829569079032195189513579494258763851329261079429462260621904946284795341464597115628812653344548003531355106539049850049008280666246314709038515312857086371488268959768649379716926001386189224036638360563471552825071326005753579660556063528105960283355648558182232949891962931781365379807405242889802084026312047911482075908888607917677249596325145266932091302307661673880428026448431530885694070893155124839966438728246274726884251495559992908365696517908553753122235627262298152050969378298562438606186004285463446244188152824596905465459623683141899513268525933725022988942765901597510662320178663268065876722050309649837312055246327175702583108990040485858306263870591036131581433800569617271216355451637180844434597793298995404254429913428374016019833104386716958840413135215711544576416713407780963217570599383461484601655567157270578094218490937935823462393720531842959204117478199394449646327958054069768242500301454439858669330930254063828184580646206547764109874552370672367863022259926699203647284192837007276069122441936561310161440415566341594444539570534624745158031745028328450933746026209000213971388260218006989700542969484928769016830709535508115734608156207731974202670342637595088254895566912723840985513652720706193976738965323265517730774331217260698541858991100935318181028843551413748617976699144375420012008395930765502483643772259407790825286341127323426114584237592985390592019811223148605452274359857761435043551857268882489725576374150409338068359525329098462054212224414222169555252088676076407632236590331491149152636608203982487806061648175052078593421773312215502981208333828242635834859516101794911403359682387790264614685784278296458734385520886443815158439943818122000307424144962269764091838434781767926322732602811785517313941301169972603475930216117001226661263592055333236459484491339135050558059837830921405800435092900205736245867282456327915145235476476303600253944407613494489887220447502902527886617169107054618420496692893690383158265554665158093349184054330772637075776660555288902774006869511033734163270971415222820300641376775684636060636147209518360674715915607716084747408712187833750719759505623677328679985909122578131924315949186610528050045197308426880965539701768416728267565612857310903038766878711510165915790941312723442324295084142616135912798662600589184909331656623353226113759525531989475643230435211138031862073868603495559577031009615279404293722716322011082977952032296813084754174312028927876170842063986412902867216273704647721622501441012382497751851051767852037286300407511671913852469444695657703865654819132028064810602389476810405349608630717046482106302818168077142146223137212299000293962810150351681416016786439509002521156775903833719852116275203181492419617393769980243756924313582060901150801906979923714280917872967499239151564942456709924470506715653315535017066062852407634551236743327034280325494190199212278738309113560725424115764353789724367683383080654834952508275708922802598420853283702484103325208834581704580747261383251318614880206136636793737753133393279527437682997138961743623940230970018771773312321954380400382721899347006460428542500960045368051442210912984927518552362063261275546859691066332925029620837925059942101858999891091868552745743480357871217642476184459627895283016160826733489024891386409315440913476571263807727961469315801124299385528467228002606860341518590746049743366179912596017595631604283248640070363454377493894825725036965771901937365569871794991625243091508192117917838467653644082241093313310352405406230160272228378618181735550897666593660999045715485274150463205017916948167660239929844275860041607523421126710033963928512308295826449315543731962887141649696243550787159026036953687803645690245440235694749931276737142353036585747033410420029487427039548214455129877375779379554608340670130070873889881086889175435241085800825422723799517452328195709389797734643143161135496455028214177912557446167435662033956017630194898059795068357662491693075601320857341069124414971002404900364327062944086007345863676069033436074904770929081549092287934288527302375809587873118862581191346428383538735957282634065385837940321226714597286504821154821938512360072850739337659611371001133515310812753491986413381414474977653606657765591591672295933337265202713905679732672388526914037453981294474260492575408523335796069558509968768931927145491218567697796971787467515196425854894444485208724884176831926029994329814179250349124753914165910904392772541918129889702378186799275472224602028933740863017293024592655366239751304696717108153437342985318261914438624902017023394113912923348380071665299264605010909011992893257464099821193858315195508545769990090698405541632206984046403685654338880258843951406236384036580509978624109305880218330314104758744943347461654120116450790305173541637048588178491116951183720077755232747063760884616910907148194912178116731764625852805471220152285783489114349097093374857397964310993651641756978604262693779452469951721807611967594188472331158740980971444608127172130429549389516372515024472165926473417369706954716521687573512478691884963832128988404553493108248882839965803257336663838060176352903067020971853463244819149421686953670089861196408242471975894916431883011563951433432325970176729269165558931868341169045494969589105602029697625337863090800090166264249510778023390091914585255558537709256847183545185540609797906633727144419220755923092841177320788090040305060563006086602630610424136252729347495531881022693581976841141334942987984733026709117933791842778939559813545324074917846990760006709510375214086644529200071877044584442736867155055408571526129684453877887984312605330016972890778937478362460132919971501803160551264750625200472768305022654161402089808886636661087385976122337083279955199151283922286654761467587033911999990910415634548053306718351922654478693161337488682566097360405607579813863474308218067113514669831916635360830763114763659314293638906604327304169025507682770269890152742771667780579571196622864995690671708904719774222244645608554916406521796267036675976153711614491954048526140044248651121499854039387187217169695784445731937616484665472157098990081871210127187721557382731645003895666809538731245890375496832140376126568896350457715871603498030833227929693564638186576451504596608254999063010240085288704691935433395645669093430790223546722587210103257346365336857695164886441830684883361974247776266380786034918073512081908759341251914390876335855728422792085962441107851060382383385026375426328296732017178479964129408220178682599422313453438345408822542122499512534954281391594190993782756183394080311354053495487353685507425572096572939314762841841742653725375279723182629862130614806478195690178031415053430897270067193242182633194258157975732242217379560022303429860951503177574542960240240658275825470350643815068777607906417980205184989368452231751769793493652778026118871930210304022339839446997287456815525627978376217088668282078310264524975802553386689910130786632939290044930469226744148534748338750888090994345824148833233732764267847697855794323778658338306163140510767267473305665154662451930269578210838194689697482982640692807081233129254358549410009012560126286836207389709868541929809895705221928855695661902366003036387183101694338466635794792108855768780031412605338572605601045002301004802089158960013815852026503775626047806363763638968916287374609292419233217760553246811145786250328328588250840624088943564626903982210713622421806258442213676892573880902805681010539604089532154288418776281396301285576236120449688198482544480096134990627950911781705486469174985715458642534275626051109073207498279895012816669678525809169922014223876462420840028545601176886944657375310821016722414403107775198115573381032345383243679612387751475927714493500008012672910779966663324646516041370944517013689674783540990094651614832100671348401334633172023267746441542339744598984382774171349971112138537428744730575103089372269758555395281714562574041279661754438006009359023814309174003445352550200864882620570856953894585344913567820507968432616026618993454382716543148912318235783082820684484009753418648138008989487343965761075311778571417295467685550440533023082823324971440931073848362200075121369077998254322112188083477971394718483697835433366731154859353252704016700318476115271467096555772601436219739547466357348591606736247652051070184418093758623194496007495054759706615055557221200239125686541963684287026518783151283363966706807178728606343217051128747436806887565468144152633693539097944344308970665313207414497279618358476848998910886258842928764534397417486360389426643930699986995615379624413068415601421660199812363211862690847673302149928380270938914608568727804393406367047525521527236008781284711189573628461691784857350325012133697553941870757816960788758407307273953599969639397844348918206359788865511184256157059847384851315597544018691713360450295787965548127283190349951990525210122084893775192742752759764312507360758121500311466537249283284681959603415075399602532589824758600293982921148890267085468934769597615194302678174334915777435588839151245599786213711941531578498233028863160345605363739224383423989252451999844934175089632230290806142547511874534107366946356567360716517623738894410230065551196230522166336931595460229427357155892937131477351625439073697696925632153625433070293810203537038895740236776175488662584259531515816004895018673727527444048699177722422099014251476356559156293275640985708473375782283238465429322694037664513965088473096133417268690250820443187174182889606531049833688216570809756749137225466188791962724132933714212403345583205478228349571277957522267698041646960833077353219004227241055781089235981824104688602411438691702332080439060175463785617063287725387660452503184830097517768736541863433867153135789539485850734616301426949920176347293904000452320042491519206001103240848958027085035529448065501892586574858813343054168947126612214094174628219746101082681680075156524565922071379024819082277296374775668998041719554274804330535436167516110829813773046317827273712964927918817070658288297017570866665902051379387431498756332621962833770625488845738893378859017690499550393560213400855970609960266975970779412852972429988493841005735768849602720349302010750795630070048741523637061289359131202312806716573652633782067415656060696701166241112357406943856139030704910586036940976356096117960795181322741548867239141440120206272578299733507134295360825498293209165676304736958388547877507592897163043511779624508090635642543153523155685742958257847763223755796590487610150378621177769465457834263225000722058081961895091505424726137757475103792106147560958693079292207924014126932159179000944081034397394923368952414376686161668738434573935203529763134639799939013894938512508152544309438351223528491282526359696877655120908998259294041816172032808596703805866483601607021228621741493024085213136150213945799510762803424583574667429025743571086829089774827272956093085231365993344622261993164104300736243562630417376418626937200918703419421786580568163875314313136190666629257730542922425269352983455513657853792414000183459708462936183699213241864529704715435384938878831944249515051573776019744020125124109219902477082792571773338451954035849520755197046838112900516277015593116512648824915775240570790801518484442531509863468555747554174761870384691942853982229015582845643838550814153542105840746730173539696983586335039274275629344956131693604654269924557230624813574161262419322333041538587040751579999271955266670279770627358571099458708763067198816993620346985225080925563214809966289633023316023929692129718905664244405804289668010637062900817354336461769329281487688460074830761052405792208274068250738205238522350209837697028166779752060220538629231687635622922685739365030989276576360305869482274930668621013760262967921092757638752246642034654763402819576045459852366211836430708856471443735390736960673802421187656066723054239274090936582274657050356379807878831751711532156511613119269373703315597162498435322764798734146932439933077865944606937325241288333475717690354367640981636959045900171404714513154692466874957834838244589714433778548788291032246578786502556476979663438915236255097817050269698733067350760593567048827502358469945998161554430523092364433294753390177360355849435189533618827067303165939603633750042934071926352159603714046085844878193240039713269376799578329081332888126912851241273296616341584728678318159709861390938905111342785526992860811083409668566367451455875317683828398446848900726918187549172176558378575766735431014896814037519589684928943711996002609456187746040685009892005212026296128702465425413033225905275495764366484480298220265793021787070511695061541681421653100160228379819563842792990133365848089286146580159269511262304327687149748281247581888527938784547114647328599472328674180920946244879728965360148754804045987652375474541918271998985486853677210601369336371254802604842863645096832092819364018099382292844572304625602480643584957575130363890467825264925591932302407131826180335113727996313433074895687531861442484482928073928337117419411550452486455104033266567979813573350349753502919438540803667032486849614791837192550864680520069444725836394354273715478980010828591357111111114446121040949535700474430493727408902171174241993941143739214913353557220496080073447346193093917624678545438954446586285107409621021618673113613213167334773765902947752093822607348484097749970475204959495560974288195747149934302193667120758804279848007012674135228652455189272787740297671167222236471926388937122488687374317691097583536707498705326657324864540259312128533144435486520072851425388121103976175913711070718080903363578690086657715871000879534234926832666194655759044242600577403111300029422855620114532735745072340360700739431778299447604215600700931208805644940774427119156203138533551927033096767569697846802978329191436016001551833132245281191996281650899254141551796537689691304118746009047801786719182978112797673563572894939640013232689586478119894565713513796955698712700830921664589781806856682144240873157639136015080070891156621658027179907580799697541387055668843725022974025973195637339357936045249571242551744574249996875779005698562117212457283251016610779407949454538735209704474024006185059665287112406553059619644189821258801434651150133735761332815662108443800598347242709031301751785320196573053274852409865423181124265542307286475825876641730942080791846142211783412160088893345236625106199849565649493563751891263224150853119738187086843656617433274633894954144725281453970145629330138134818725784212052262841516623297681961405080945916883866613675422101558052006325037999810489729953393976412545861795919187071555494471411958119728630745924253170659159965740318209186062686935530036708380421467303757246876823967079984943667586596826602766655788496567015531405939342731603376703874478971209928267667032162545494281225556125983749350205764157068570142885974810821537667553648966292827137147173544193856762040500630859935125780342378723273659446794467913735820504234902240371245646014366067157652965045189861760624357282570718342943698028753509295105105530091314354748954511524390870499007793677133051943212086555507099774234262674752989382113929124773939730435584305223338727681692689736070121255073211856207502441518688541634150048138132637401666992860855247779617579511594561332662911853814576352678037705199828449124099311448286719556171141799935170836786613743937488211447054720080301566416991753551935860916593163556212122974015757081663976712438534622316592640342745553292906556085678956001084179651089774900505558331909875380377577885931051674634812363025484833469431366863171958357512522210710150246208162425033989550581347398028063941277599072071887153211449081777828674281877768457325322951518912717608873705702952405224811715400958229495752216114106273419842022029089191323112334755974746993949352916321469298359215613651399149449029865832023438647306125876423534184542361189002459649867360715790561914584572956750634930212157423862952255846871765469731130741999366565249580594907804097872034232031730831181713760397569668120193025438134159206110485370712811779564297483843896381813313876099053603422848853872562376763981492918839518635217723078382784783970425766089347466659007666978817476823697060263344736271371705612189904554891472344053918541539019998871701859904656226608587647530633722796928014280214239057479504258556749702080839542213770773195740298676294396556651188647133181289561203460976680785007992999117861746865504716809072740129162685015373761246886187199291657713671311773096892685327157739460328559230641551663047358417609540018514256247782508998739195752365578514326824338894458113733816961985516483865653985059691729055026258219076478816245794903244699175836472305987822602177719524081346548447925519666604221611857933077790119625212149348759393259786431829303171073809230773759710722654530208656338966882566040192978848858027103145196685723354352489541628222484403640064048177433496200974326361370902461050729404343637857051171310815770852462346888888659469319329101062119894246010762536935757558797979096553145524947978197886152050059350729609735475370030516619436511734574036846030762094313960023147303887525770026391431655639856366062983164883718974172971385694509140096285724810539198146778786937504672293634926564261162822742751592035386125720725290983857775995355388379942142825926772032274060918232383690828443653939116238194541579828176468404711035860994671725093185451163936004069942863751661028782315862570787461490972797741578950164067375409657379621409855987133220106639044745730286178421316259625611236012600458689970307943706513779794496359495008053376182209744341454223660975052017888709827470611915742713497481820471490598445001573552054488966344577472043827495954337260168288721584999420377548047397010273031330310266266662890163520146691410391662604615344415954168881898771748584267614218029917804103254484956981741222117995898402621945671551463515494246396254544166864337904736281599716442972020963954887563665249006101772882518131560105860473666112953497891714699327367811700145735064879946880542056343197433606956299498885792591992640413769314432747879519520723584451127165237745825332394031961223637357483262806472851895950492447463360913602600318843860483893397573839005518563845997721163083353244830762857759462856826679288655400205181854625514089457766923656298007607128633660723393464830440584166134038508091165196545414679098990718721539792052745146845296293226893834158013460909933845924638210369636172854323467955751410412446608193782379171705387162128471793581500396327344206728931508713522500107136996321137518932845432087128645196828994773727002361366266117101963703217670887209464361660913989532658774939746971844195896306876135380731914679435766568550288239785164498984699232191276879171284359341876505789121496132138913926728668539513157937783126172301540062401833654253961464607413672395910691361407444552537025509497025733460861024139123016726221041949708273164707554573744542616072664699321426351388818107169468012782014482922255985177375026056017293404604213349483261367147020299788688063869612410841261295291303342066060510562318025641972145317072994717625582799258928499622997905275226154311146715209628790943563469769214531906437421741971278423997516169621848934015867135484588541028639326171563838878138202957174969580345152890017466702123695071046366907704718430214194624411945281370033025865975563013681992233965975870285285980465039003787335611834629447440168482824537110694583079437101828847447266478567251797472430983593419847251090891991229413557423182130954838333786195497433553974121169450746348332563593590138597857087479901790059682684081045140876806674379463159122360743397924718260862500261182429418272878766604908300806238303705281416168926683736697982784662545970576583140499945621774918708795404030568770926540980290875314229792030809578243638033269633845847216285541284644302139789079916081047195072250723951515117995896515441863866202231731830412561109663076139668554252756370477056430413491112430194561707305206092564766845219080256336639090503718014122438308590352562616346263770579383809643345797248871003511759049208649424516693013498568572414179363405211636378026709760102122580809225547418801604030241004367141304046048521328876230486475752022882979274528698205345769483529280751174724576876964466337482137284018627783549900280587651844524716793658434139195895622086613824309378088524768823711631946537626934678062155966316328570205936672949962778548459146146697710324419715273257905535319030657583168523826627264316074218013045897859296767349965170231578236076897434642438106926493388251701574742594654009918924305688292904614723330317087350333969113030046231463916357588840951984002374222828135205658556756996196058810817668017789822025889377904239136670603968624683787519156763530812140454460959113210075788505660715219477516046706837576007085163413275251038712650633541118737470447873600498671656698747690053168083720523294233845305160472154524933671245959131004791066129117501363509068980577077992750555313417150461983584764111988023814344663858296081294726411979187183082908946166991980154202801282126133409800813311608496123187392024621265649903680769861504783006004375306988987850137865810122111324988683329444989615714684810886272662071661842993129503628132892127048118694417600262587507867968040596619099815600828508673036828753454742647343397517042954778329074942772312481457450499025441420959759759622794382305645340533394521463376149190360311844940992155639384146675082023554636744514838272231754226399750291281773194863556000433547938204083046225490464642784357361519260598601297550951974871212728728023929362284100031377208995779104874548751554706945129578769037744242410289168016129306596671050585866109501913112629425276211699878319265265005376301958536142268680784285056406188491237072059316595184663315363779551604352223922359273526315460124475247891553820661748151928816807083113072126245170298418058772072152367648333854552687132982275055467682502739800788874271256816599717907000218450617746655584162126269749556237327322846628239303578309635652437647471638730368147263795339449787885349415491552311205911736829096118757655918196131868815228174970411093634954301678235990490677803589371143384878144229582795248898835989492256074402271084123127185427080130415028057528817413512008745900650366811180790308656932076303085881228373002784403710139408207701751633562376007491434239841073057787727621962748302145172692412690237049536340903968608492878809828873443054747767445182520595668409084196699376721829617103354377908506907946164368556330065984888880624100789634798657034873231446955053749995449920762366879297358200609517216398880625398105600399762016339192386220978077089615252476729539259503847182757702394464157920250393805186090949736777796247996111296690237292434105102795026103020133058586230227283647290544857720963205756816057316788868400972630108738525220977218100803334975438586427294804142950477285272580572470244786250477054629553185525998248459209515766496355388490844557224741649816661631196171892100975458198786956927440992080041976066166835879264131427383352304178490183984571489791794399322793182935412716602360516402606581090433892831128370765447643958022784011790287056116207529213456986830927087908697219030623760581994184607943331727975763363725767068481756515218326086510244622511344063567815768948354624990338580057035401959429386645421463839410555658721378394687568912542187438033773316244501025280942648556755037960339793840877181866432021131050704246992235848428917812594670652126993158100433800370822247170872684678774694444813493529406722116631933777547987656840964361237357394546093607397816869195753276338439346149516336747990640156446588220896967537709039318104649971417531096191478773875223948238887359476082287881408885704884449063343668712783791568427800955822348843624133846344016259189596200757590503650692815417148048265652745058710491119138406841446909413895683671272051860229306303402392285611579638643511723579835270007876508008050952163557441105648453095678924767174567216159545519877288545792651765696985108156802944240889345592982654536066951489030683847083151609311402129469882940233685333083687228477303566617625796960589556389943056586734676712221107954257004302774783235613229920909015554671265430051310627318980516508879900073953316186134624813630732072192414757377626311426945429895646260346545084378056919052663369184209149851565792370842437048548962649721414337644827970615716606162935342836317391878371176268792024311085510210918030970087650338637660813575207758292537228989853341816577330538351673008527787887545403660031021054143535573470268271327727772121155830812357831275790737474582094017554919845254127421848026237338654606777980118667867940754371331642380937378381136585524905195024335440430920121373783433883587901863090727685993592484617137888444197030651654871063670171272259569239148524741088863863243689957859062199488634426078119091413607822103494244865622178583209590116891249252513976082667257043243717424247554218545670863402921174957997255947284184200375823406064329879954195530961846419692970619931918669471359052670546015783935332840663185116066752798498373589983637059842984036153358962180093858267826425562323413330319959318535093296923167422877519251853327366345252255487297530964688011478405988748097930057085621006610027997637558284192562181510177135506191460878465780978892398472340407760494405908672457252242634510549661564056998367258915371450516998848635490398319337703986212955980660397635703458786771213305683516636097613814278859946113179819199544682115944593664868576678141379467670994772307509640651891270544253077138122674378550301401927344345976423303569401814112129975866473319991070479630750195121396332851922890576590477784064714750082635419387831984471428047832164494551977102600625828788522787748307754509092552225104539544464761053958739181158517719283172390586162756008398560216849102619026943464235926390729490774675418494738672179945994529779485510391730465263444973185965670013053221348761432272775323173990327702330258574561216169817728722211602634897524653385945980570138270176490788703762773349430360574655694304335246271080517025108572282913201860660297775546578105073547302037974405573936210652755881547691037145642237891637086461334942838137668941403700806051211167887432502266733716776971500360781652144421834344318449782239730666533106758137656153139949200088226136705683202471318225828935555379481739789831511739177372302116867832262578529786942963278411161878164260236464309667915524519795997934407685091849043786770374968374670290893283092229308988903653467171738401519421492812649736045010553196635212746408582882735706200080967065384740242825159363211439309185786850942536439629490585566964859876608088626528422145320767560741336797522276987669621250757032863718162024229970849148271469941490423630951449920988876499696072837356163268547825537313261963916763920467197297884736217796960644702487782426740289017979089366672211146427643823669479845001413376908248794029324709974041242222669727204802808252870261158985923992728048932471841781350442588078489944767087404209428076712986334767110545803114572766185437888694027107529883520601546847396579484712311787265074113066087878147678285557950604337183953834871149468712805170653487603749916795901425346235904928462973644945571601051864759358480480683393848876243653094099011450263837422586988693627726831382328708196218142453520049288801078772826567794050383025252728835826729445546865551754679300980619069745144556107083203301024319938450929957309188345381493605846492442116303342336105094506846686490773020055713863381916128472195850807884942390778132733851178889268298639314165096134124478124520723722482889401894776507410892503073314404262239172431032969660367636104925351563837634127282615351915835966831928386938606218628588754182203983076484259647336485834085572593056735075095571857482804977093779470049106582358469096030706486649504088464838834442472966562551856610869034200008848351839194660174612374706532841064393983474562791385303138527489582074507301072346566052751085874352138186749287503451505541075655645417796975475698434165301924435422650770631464343475128909019268301067863103782018056335448148048491511843854004926254165306980203405866522574074365074836878520079844302622554786272017393789387773790764127036218267843582901784947545357006969726884482891426842007977549558193032010856026187414475334145589228150110919774391197101160739508364187027083970378991550157475766224603783883293312447532273481949239822265143856414389243406423707563758302172371746792612149919345584063129112209504321497918856921389147827316771660042596571238457245138161507328124750643982605723845606213457043495009565642712594398872072486413568623897110277732630598760035461839847845050938731426701542266086677680096946600570886921064658251711924387448114217264981357149323923701988512927345847829820059563227452270350858451151168508146103533827752069633196179066326320983326926596044543127127070897722401351037660565169498458026281881739203502387029984723948981233707187686181163943911410894117144422841119747471441188291215247419974054556913656683076823893365254762349635937591882229814686462702368739838916425025702336374478746367363652743497567043661460383240165744951968342531018960423684381974422768384890074137206115084093354530141511891141301686175823879556607482709005253344179899158078440400205643640747748230258086640544375678773529064230645767539115748359904354002642241275345895089931818580461696176861951644214120123919222660448181613810081631290936424687694318387998437760984829109722663933993740434545937742278479812212735150400870754210012226215464043756552533874957190252877209117509014724798791076205494505901410529605379833246099374386444631408143211212685336842514481452411045559594616207076983235540173262652213000220372419497990200588428152527570916545854313155902868982384915553823271321373880014513401861980891195355756189561892800114363779129823753708879643921223226188606863197246477113476988984620389727247601150729868755848299609421663192031981943744105667622992565806633153978019434316586455748406840387801166331007036996112497993268723708705405662228477774797137339689257917471574637984990859418226503025953709428164347836152602359398707489627646555275086450422302605426214470999701940588699147445616623221972573175363679764016534431987396154989256787578222468174427966284158921955791818568209419834734683392216649863401631552589568545136619211510078717004473627732207662961062712139025717172799816093751140323386048293819428258961760477949416922783791463334611777668953502572648043712223248393783736121438633394966171920757628749882870159172124166129078977894648655440521242379762914445488828574774191924528188427512243251182146533652714230766132545767183560481330258966197951838212997836879704561593607010032661570189401375325197596820182449297094908828274093207177334244884953421352743961065262274045536013890574343264340442529052326835527881460871447584799440179849219518901813276090793405349912561872371694156247257990418490344011240484421270094885422603999881797080382142719479680960086189284087209515034106053113146004912662760798607644944305053390984115533615571973964503789057661644417894695824938610019430394499207589118637702313861726112442598046204223116572243097752843104944920816027165204647771558596503656858682591279290965037106621932018619629008903620017331855575847644548739304228952505820434006160658783742835424557513199452498102157141009015274025464678334223397354006437728720670856677692110907354458074519400411921521606993196731740661644991740469157231048890236840100185928891221045220741275845165476668753917843606926758602600843170816029258070062660712086309547293955046247518282818118158490648238276815447334059261466260425511520888717282345884799892140114117338817838574075924197355289398571700511918802534825449030570974019723150802529566377365489945400822005109570976302467072115705269298692107499084813580720846099349105062778991057058087432664051474707633527367434580518710328985589681947468734388950222588844575531036812627689904576490206202479164493481207641999482655561325270032507189658457272520061895774087156083944109107072663626915465329572543847519073120905164948447769143294530324444519386206368185070101525823575220761875894910091311131230716950750264964136550081621506138556968179613485184197840944596428438800887708451737349592514210134636781546034216670151082374522484084090016951916949542649778193373311054297754736846849380980191122548599881965397462486378649571042472027787664005769650068760895659810117680022967478289196207693006858382717677318461796319118895366528887717659010566775843164055898289853691289691538790381596347840781161687010869851018078002618158305220450707851257394945811380975307840081345890604816074132223185829383340391037581991690692141333276144045983790985403090539190322013118269739413952188259534896075498445358489898618588202271288457188031792169862180428514716747182136466545320131069862750583143965824115094674759210926502846549181531258847737736213044206367018870255612813286064217065838773575225723331261016592181155720705976307866244558785414855960284606299868626247104900572171521453499029444476324086791480033778994811505010786773396804103256376299315756212356654696589790280939085912832715353795409641984200297688162263531255830521461803987849534436527707075940615847098195503028964394707859645799966777089145211896051831392134212562708023881015683714094246449972531562971463691454661400961203985010209230877016929182207214445958223401468720496739218160973683342157165186140211163953255962979587306215188294401727229394610924679230930340607837669756304837074188189309360858878513740324717945297797293468775823788429862436202588500897936832156002529149632447171089381763133079661291324700470394450069140645662698440972674503759643866009920664962271957500868814995615371019141422404029390017663651898518168361782829836889038723826481886640182484365829172963062848127753087041036012029336852877189368031551107803707675325720799685313582402245976722509518246759291968157568937686760810443580084537816585405472379049417291339555756724280694137639683893566002540462571712695742817794792117863156566205152798331884895353708278570191369218437964527572836517297197759888345402822789739867391123633098395115213594942427478331980577828037246993124765399957343106732351121460615876195159009989558812097048434100021838277912474749556899312663088034591651662640920812780194670856541893987969211453343173760961074194394558447555282549931930823402265550629496169787283969494249403144873308410309708136431052977112487885402823614995149238606080951562004251376391145715504592042559941891036987142151250454083245434528665339781534971273338560483218678463435883405988939974006808032387049562433473865724927859861312206239545180611227168704664872320190725853844122721875239624164743423089349622494520124604404423243339634067158769754332731622849929786031928876846569374597613808926624908909459585885209382133862114267679165763297439554619590668262836562519227070688579346724212999498975498806228982602091810729886916849413088824769203539777823543718777263481361916813433720332967011590145431345589965415361314409744245249188219378571859458728520504745977828221458952292127342624115874756153153309775871496142028995776712426544157736913844299844137895301928356462894396503954955060000944638390325362595008604192919047899927937020234116211944979761848267641223769379153873605627184148303841377060113903936400605158785730388372126642142509384517866795459726216024108783876377114098561052245742838308457540129963692355588608439162372566545466267551189697756298124242913040057823132483647147519504168384010995639949527034232131770478574088705020978257092234629342496768379861417711906882202055072968901777611475417298497137450003560474213473378336750505716466160732616111481698201371501259769372410174503204384452635285787832563785680645735912607015003637792778676907577145790566666411027345770468920069341026787056609261364318181413277301686066094308798223564107165425415274637784891641382951030678767276089519229685594878600885850691010723625900587027133279010720564373774418099978375605670915800535009517215617356817374145725537935103276096928048645879336194883580571341466701670266359702743510701794198258741488276833809263159376343656209350399752233108465361931839242056597273794826460450731673726651983696984817554708923994507052256259812800979721762363744023640583198002074319940218790618209675929533254994494195188295518404118648199009989826836962267708668148285462552629829431622829619050498636602645202345971684494141621269439093232539275299239738695773870053526915946462671357633047184376028996536322049480713455697548068239279558239566041269617826475425509253403091808371900200218289363710765536248244561408047367457085376106240162704405533294166007447654469796793812905206872097003679914656738148289127553679923218565175203963224250174994044327808715292764705555645370926949761913666871985466430504222791690112503531143081725246088042541407486084298077539514318734052064531572064552992673666093395792625240339710232682900102489267272996981213434536588381024295659904022499311320403827367359433771429940114315910566580609406129854699422121757639090780418639126267209157363585244296836507592545803886865299733135408298955412740485297081308311233455223087516001325006632833354727516989142958714278389344865507544968128091375410007979580378929533377156359674078029859363347806120872137051911485583815937186330644403871330743948310466424690560368096624530116121017017338642635292323042800380606895941027287198547415332991823859629540064235916839573089372996737974553941221300972487580571423649450094394219018086534785631359936833951727190146579817963391816059452031808851367152367643052106999542001431222715823423139988227151713282036061691127000428604466819623397244091848063665869585119263289437698009982601360265487083142899154667318317115979620222385226031373526648861116041335368838451939203818055930395464869727728830652308407383763487536186893902852342683895336473072821714428138447353204485477718972583156501985738767864287617537471205743944226775142547000539498250162254267018114001559184990779385052555805419760390922564391744784427675730279372389740611456251559861894283293003483900177954228255993295438876370284535219819257382085380193474004204260745694795235603807917013381468733421592765643219917019394779856105419176162870332542328973520412572729374276203601215371225640978589492927634096243075226986320783306420113167190280053940570868332043907812608836665189392910652653884321552159050061787048817541207091094644104160372463274856436028459623405101582642529993515586653388105050436132569465706964012440220146270027174142553171910598014025048183111365154573097763796828366607919310294751993574072390343762442737269122082841723930861528363002964082592512554392632097087782246163714202239152511125791538171506097531334177149259097592654254287551594361655879416622461196240557324242205059345376086544458298746992458092251152882234985951978311617080644630612066552034030481466006197186924945221245958916181440231435943151496290944551048210055143132483405419450267713717347550079655819199194287636184684379044390862627965975523113814922171360376095215596855279385229557743145580708975081767924802774203082668052411918668338945356051701509885174903380708527128748271558413819398232849147571601585284600812019788366044360211079992457331828149235970983895557614284343048453461199515690088863847682892922797333105468366512898479654826477169091456020467003205600025179157024785025160374688712491612854189661631783915235394124533302322015030516326951510627250102115285072590604694577610790642758947767729192558557498619037083476364013089142548068028269876848350249298383073865454364730853609138229429751688951987745806662436093654308769691628773199446290362040936712197965264003452528335566929164750968735811468929786874233353131798788954657137725324760685503660229054140855364782978880953941212022876167438637617089942283548408907377588239744978921994802317801838235721486626190636263917004366399239636718678731608302334847057190266820453308313311492252171763036350375330736359426394312859473494147355297920478489581899532009376631222182116211320202923094782876158846029349427847476507902252887167999013763538281828896553932315394241077578445762403495979479331783939606454231148086245062694609952403349194844615942579742529317095974754655204674498778881217088811016919149229139736557383098681268088987451317099937315230293376663492534159111973692414745638332229376753725222492371576202474812604697488927582071957133922258011873885061269494700473231521016140367040604679186666284826212362657207051821184256540868131085561550976636052626257015669730494132888380963123988371600541867756312466109031895506944736401195684997107602096804254211352502709333887797829122329385469559223792936851006551643927152690326547487214981631916368785607518591956872730286123268749504044199125298611350592076610589972907399730811324860710521817138334109348636054087197763896221684420965080452508967791439492771240811629974914329137670379734433476564437172159169839035104902804348042329305922147590302531339684307028861930558734600088890275829822864168136616943707983148846391405453527934802948214711140874193078489332778402388802229298368346266911511072975589008627049443849131364658679648608654020775270657119395187346578479905377683807612471937086030068241386421454491070573791132700614089194806987239568398367133879815807032596409623709214688992393100329466910898923169517266509501935071296652560962933138784509136601402850151226639206309531690955513938222896971394555056494790618961307116845761514297695384675606318363127506677969020534140591601561270946328478361179158547008019481038245817945773180797597064181868940513704889978763448900435220528591623522862764871424068281376166826175648535810639238459998895396311068679441080774008513181772868036910841629413856958731608565215267041910561976475353993531025852396603497893672074919276595982189618350428388416408501681542240928246391446869315356242361917366463405482691251859570027129556818242049057309276557853848426686006765438361019066731909271344283303208247177043429995194403929276529033516641177897281051026665063164687776854596861159221159511580122431057904584424227429191516703110900647399761332689478583770616671360866839218879761677672960477390933101136948585107621362345450560713516183823057517147409413990769003761599132010882192255919667713605518151038603285517041771137224101211262118008177363616507438105059142800755784394136077602653761146481390981706279429854445113231839954319387212135095284957362513456167321958854126831214856621657931820537646012101969387077022509170174423993300609425711494543702065206262210431457686447999928985809235423061068932148711043385982815223540061006332438906303872340187642511911240962927800211109177752287588205130471116463321135766926300162429150616844709126901055366044660811580663697458974106031340950917763230263464077873081623744069570403880678185565374195176478093072559846066701503643160857965827286854306453188153189936116976746409993200797012086262390824703026513253318878493530852279180689080677616347378194954884877285332136610453901355681588608868462251581371134919911055886874469341175095215171682452399665514729508105330135488205694471941613771386194232597544618307702378399060173980699730008711517845815588602479640518422191927593453016154138934232217272217199237929869095275139478178536100140838377137880002762894169558179239699121792870163258697885333918764618276969128799040893740637332400629642060030508657842325423489222935707901525970249580340498703400260091733121825733734826767426747151837181584586284310238508267162816748455381580670709988775683367002576491345372244229755088764072933802132175090621610003840915458134546354674914492576395243909144317242973817712983974851921673885534624111391107983778165820256134609921462403219821212442904469437681990760750273398510376756181478297314989977142755086585669476720818248135924770850868926458363594809102446391114461606801111548709392929896212650573001855683851075724251233672513356092146270947021294183775768850370226379344178243976125746669264357300298890051416606247174928513340630401468085078965722316170423353273456395770090909647710707928416995167343968900070401746677367415992094565154117938208931819933491186819367731571167668868964006312823167998661125974991644304029107562127267841743865023250669879355325680109418195310528442490542095754703878774754809566452459139054299693760141123900980882348557983559522112571752798221335178505733211633914577691831285557011995438287167488251881597902319406477264777243306396059463981231871000316251644765126049532609625764231519019997574154348337196508613493969803295765763286276872247435281623767231668227229962619366889574275972588633605095579956261632908246475192515574963734441609997951091858707204762573818629991388975978028344843393767949972394181801804991364214312387153176037059465339564691939650805687157417242939270682808803993346971032839624049729401761184506786051815734106538626212276614337885959958281636900945923138225813183749940179685273799914204215082545747109583428383104073577343826288869560711453267693127654604618004297675881431997442798242119910318160302572736278639171617114460604286797956283509022646918774928525188141933525358640125983410308526731079299391145442773758940581531931801227123345853630645992107388243918020213999988093264702998630287926373435573636143217746850172058215584867980994479456953568097867188134582995522623540677099428542987809062155767498312585731453053425535900057838561859812390236311698304301509167479805480429213476413442323919886105762874028003694699538886070813226389613858460611312640083286995527594899294717954884115309048326874320345924893189199709830820355368773951656325693529861709443868700088826520990337918053121924632977705682763963513912096720450729223364782193216713863267045631162110943997330556447391120593597245503232558134960010280149968179542082355435862558302296118301982757142748402792253956069756931432152624336500646919797629823259214507918825353418276530256468629005582249551491177526989629907732322589682075270839250787816491751497722257175337437188246043034998263623327233651108931224813003510865449438956182862700081575883580759844615635214917450842989889153441453703845827165151473114026304671344123937816820897810063780058787500196389985103319996255780556212563104496694695220646248666798434500422836331034248720621653012801976482022254177639360866968052961368314810857439807050818943786570669089925715069403367435204020251065598254537538301231337214513269977431542033371198536070127935702685176150832374932426695773119885709363289082089619109518638921185817108603900577098494694978637322555130858008690790670273317557163154722301801134183522347273845491418105180452041461500073630407126191553098557038514244570547734773259940061113465676747678407694677427638098308312713714897010490788251542254454725818662296200055566160766326575506105704987693402629437323742549484085750376199413374323935546210553682799320758138726599787282057764741443026224582001514673155487395903010793448775710728169608477506926681455788348087630299779229764620406144435825818601963247990234516047917999576217064830016401078510064296125812048455953653580130719310845504273656985986754409284179757238926704862932023256433438618333884908581414980320937098938090258642113440034368875207544417378253925081952645469618214236995147453120910366952639325433158517268210486793104865333832417406285603430476445923013590911898056923210165087895777561674811838206628897986215773977142071078630229756913912748432622282157214992819009221462241846600192710645660462009994799057715203884610113545382953325916284440468018378669254078918013063905091142720600888374919722545111252229287918495290214383152077859419111536296003141954733331313270592261065969146150735871418859722773291146955349395558348159305725929574094580259735258570214974577623210793875473452582525631822394887812973359641815227327926612395649579023822371869827733628528848925675644386516715964873742186838092589709477905913242489802213382802314717327401118450972828463803142087355407679108299632439788060290062730821147043858130718245626610477772412185688846629985074778075799717444173144913551503330460955227333005155950313944305106675059780509248914523901765341809103903276226386826424707302825910443728029044840783980425634162349828574974473888866894446589427835585155060232157709737833021521235838195280742571656645903631625720209501624519279025242247156375722883121515993598479925261187882318926668196086488672320328194396790296591973119962427196649025339563009064962115599738704494640789826917146532437752386081888241452981050222305270829545001995725336359042336149957238330947225376297102705245514969673392480774357368451779794951030843054775350082126105056646282140928139901823171970565163084937947639862566501943322161290542611652643367459359036166823901415548756236102847585772561245591946475926722471333721226433557316282966838987287484041084180045900899412747138825055971369470223215422856646486467973805468465675813209932931608147292378640620059062618691416740119620563392847963035966036990044617036646913653048908152220784495888967220645674763033927252290598361520195630736053301058332380233720535507805198313278505148751123895152768170681850133092727484826975771190268461015470720314287580120449290109226351495663784231952745459751908504321591037302269085456965405001672542483589813031931351807107736324502199754795211974656204012047191411802049660455147587408495435828878872453950649550426678443919332865754008550606106068257497865544048045357718198380358211479134568306859348053007627725950833341482587188511322569305558605766197427478489167193751063156351310922003028529008955730040989829161183085622458372387940153084893408084927179584242265754950130464583175998273470021218426345808819741240071247490721707263443811770389312232468446778529718723618933776019458484538514259835886432134462449867844674770347748434412619971888673791482488139348461050798121673588859814307326797693514560271306080259222186582255881805884044981922267903204348404396635266229539738797545751877036856717389767066877236267366297821055619468471874095965360332918938254551034851182267673603888359850942492541657276084974702333467711120731141823400056894057828567631829729832601789440110065936741788928249328172980919464966451959583643174621689492391573358924699147218281885805558719385470977113616592277665203360704965885507908587948767884054821861580932063057345657081371924889887601786497289504748039265153793572846288738793247896550856118267462162516725788322556237563060046237536587933124909435636993574698221169532172068661317053918523927099261923555925363372557221718312498825940616648028368508508096589068581239780894700286178006931144858567140445447432313571104955453589973261701416930203884829102683297698527062746971481746284143156257462162228834046459388054443155896415546813046069179622152480923128486677272752128059323916530788315133482640238630891117995503365978809389595181869893681555935843533138502449985910695174048434177108894033080309507165045665690772137579238670981025702017669480982255305372060316633810403961264945379201436233792311696318606377039905314417534825832435118199519516379898465431128638907036592165510043751425094309259948914877287771588847861377352138413608150029740223639203172977282415357726746107501561484052497872104302467036665117242710025116736937466177518331930354044757481950531839100491106038660238311770518965524602205227884853729099214987601540523338166115286780138274068832075692597191765048740296288723210277135569129147819896220684054238916337351330080079672769879063272309355149461941379337922030032714746942991743712492599117137417757399546814024409240848508893117492152396564840623380401569016000736681511676395243108853225945761881665043370238908504271732117380854254104278461943685139948085470700766198795230070846040930557946488561797695735534364348618372783037710233766644096583963361286407296853177760273756581271422997966306802067507440101141975907412461802543717680932829987814563336852818230814056135128381104531491914646864504223522442165828458775332770156711845626568213653014557795506378008864171624120557056533321538616777476979256029434368147817004120076007695824404731431710953962206451500393901072122786658297113417697811492155290902667486774789178273659726215767962429455063305637004018885099411228252673779770553177258438742736899161726256509429837384986273783251971938956043903196568075384834025990525258919235328446541335123736285673014121419168938056411848394866613192174512596612113281198091318064433176399308813765404656698389096576780169630467043407381461734670411506158216441955649327440531669951894514796716568706741716716561014404299380355892214619860894263077359088936062251723061264470651200365587733460141354085173750711381871242090766694105460240041671065788898165327868027290865606188007342359893468048256771173898744355530872789495134853080228271296417247947603391910955805525397008384688381248420897265849662590654489738996647104906635611270641656343909981037507011436796861477368501632412015050105858316066783171141356012641647711193938820832951371381517679284472577493187611600149251344669662993106050604495579779514738654695736088053502942842695674312669412200038854472805120633747830247851508518258837967070504174375782491238833136890019965099252787970968735626419600077005738901894084411524514580892471265959808485065056335534169675498801986534135567276613783913869550201049674341379749924160244154667596015903683817356872331516876426657243357998287081601393862814702248645000338857894917570966161736992455322396277595916783492085334283134071032790596011497456190653314404970827145179525154656034246026052763786211913891645534544729596454742769480053170643668816149506882372730404593695800510997375771068885260598785046847695357230597020472427246555582689377680136794925990330838199639988682845066111532044506640365892269577178041196556817516532611905335793180853282226267451023101167097105811903947397056911915372310153882549059001506181223841612048718263626375865129373560897640868489438659962189392046945260693854134159703652271619919451564910688176165679438365188113652105345053969718200532296646525270821614427046937662702995181432157293239170392641396159050307713253880584414697954173892297882417116509601912240608473892760962336885602065763811021558709809805267314845157169987624968021812971137256965042934576645678084263645321331178421429840266551649458102895096419887684423246677804633554277273017815761654523551452613612638377519817781122492947579892234162944701544678379328867008581138732537676219429293354197336687532301699629578955747284688344500132444033158610863617748823705443244520901174601616944813789155053468769469811182482722392265013999868599065472181082350137703050945361681472949713106678290145855166379965386569853596940496510174129166487856648867548601621962957812672224646556866675168064913467316304336575062142182238816368683471879861780388738458250017589668074206997281890846188780196165550663543570293770120024074301429891715501899943832284629282914813073228589173613394989008819393223350340237007695063904570398695838776990043750183385569044331628167768272596677633666275019061331118775838534772404761055466637684578174833361613604093067100458837928969926373439102725364610565150373193631883320395141245870036549328069191560724628795114517700387907974780834644805751044052746151826731769081278803901237419050217224384091303319425500974266414977934397580756200264171282361453897207103788579978783362901477571123325111146515586549139222942166457890375279708748066458620789960621263069533283043694590192696621401326189563322925351191803789852040321849369546349980506837848469680544388203787846053712381728869976230044188485658673985388849478444061334716444846169531072814305817061141355515020371333751649074867431995398448257451317804232760787467473691455988968475612930073673277982629443292853657714318866367008564258966885720753233124660868247550700170229863336008366293971815379315830224080898903718517068802760007738807763608008327794969986962086994547065828595130531469559136386023968945005761522623909425749254925310601247179433226154730546966471046877693444259288597279505119726278348742312283232944093172430459285106233890814664914217759367942118136377609197638233611416405740610824321229983228520668882573257312141206525198954115853556932683104852103478291885185201724193561111844083538927582581541154236434975111569643154250046041354853481226766601104256440805590005666297873182980957452844154526498332220662467120333299522122735725149112851360050949474654873549014312133121360461061630591010151781347384461008080822031187920448836072179655089003906879876555505118564928569726304698483134938724919251573997993455713779425521009463559675248502840900827013326809378117465536866013125062321869212919478715078650224442436462291330219754877721300792675483566155961968677878905109890002609006036788017358689254444425637389020580522215187517900880772217872367972967710605949461425791679819522238425556012154046285322611433382410411484732633300104568234825781948187490289886239534674963938006163429814605633446911072430424457275107417229741166402364917393112233146078371117488811749512815536857898896244417373361079395539855634450273804823347119261033257100625990360212779392797466235428439724233898708277193718205162543333119468860968569146548397329112733327714092788009657808267818040739659116238218690725096057030912046307150823504625325870147740109718057313861451856766789174035421147123617748682380647722404102526172081877949076278278975206365918080358811207062068167597592882344514741339694803922813247171506494773051339524329314280192921553880884209812591368579673502420733395019909212479588873559118752217148389754172666297866014125946996999784800970224476615930679571775020142199801596883639418484529799545255481359966876924875321452062501279630975037887846935352385599368039077541488428052663529643998423252432773959032227552104318697165424793259472868990375637496331545190452507837707182399903450112053492085078315729099294584312554782869203468586003114618157486810802396044721992873999038719880422492532222514044718329276163792324709942307397031696828226597598265619358084169308822551754946884842711097214088575481423173665029578908314499236174440269782138111936344787359902822174803284729610684064785827846469390288065774795160730083823303202358848417459953131242432105416511309251166315910831913700387069249078746460826258164699941461935474883366268474020156876694004875050560653654552063523928393500958031140067261627591428338707236810252841711249119885531532566777755164524096849863157459343326718060395977460923825109633519469467319875212067885380045275027087056934213831687008198100815050336803696188521162786584297091790340606119441409856112162866634849186098767901332331226315940130449603057472270848859957595992578415768768432821749885187344265583737447956992482031347484769564120860544976606808997652093416137232267575054400883411449822950546107470444107967890999066275841546613743355109949958740551604619145970791994057228636769223274464525468769043386531698276059006933692521582460182422101776729355455668273805890200849805647089821763638995589865158467080665743063319891230059227531269863046565735033835265336080469814528666571281052255377436933142552934875468811567074891218268851191996120651017273869155249444117410361738708418731718185876879680961161036421629551100232149715462591346426307653039280487667478227429207584508063758978732861129424598426606372101821163419565987998465959757664367178701214055140322706113344534852578685210784009581118204744808214094430797429506155611205450741757879530326815544255076589015192078730265745248542337874485390547427024434427285254160869173465941759060147583147890816208656016566361183457448712461436477805802984017852238108746408571549767947208151821622448415446646401767027082824563451576630987777950290659252472107653334385049342454277383452611540211880026419569617373159022514770986089130297897666111320753129494200360631172903763503639210365352116183930113905275231698815523012351288883544005055110057294999526693544002199468904125244903381083553149971441887497795293705627773010147335158963247104932974147564459168441866925986386411687810342421644332020641176153208712585213593164205604707777473010932365736412191742788295912534225883260709705710553253839426501440340333346732645103806110566516280335584287455564611071130344658271449724585031972068297501505111834813753097681550395066699987566855592060901532573550991982160257782133527997101069849537286127638916503519494595010943033811897381856420504661691085669003068949297272582998922757434195913487043706183989700469528232144473426573457307435105388012232735018797989728956338541509928221582390100599108495192184429580374840239533638169918032143443598048250978362862980855638685559295130314696607072238644333854600720607050985888287025382475850557968331538478899912936172962893165070831161922833949047284219580439060372959380059720642877094876566734887018722614453395086411997120386251155246077470928481069330467868789239278051124029224238653710763554132427317724628796478134436888896351090533732585423805634537369575536420515896618699084859799072367488445572769046964309382701155192866263847683507931956968676397251184652606064702178647414286220658700250600133852273075148057937059333637263506702093785976556049379068927701492546078846797360835446911986013527701542495692403351461413095153863066058094811533971088801479502512109987313681055312859459894208598047595020965465198826235096155627148205122947078312526374870798705590022425435157822025792780547422354301045559769764286218394158088716627186880590986018975127413410258688203821037033733602721971991108209802302834031224607150825883824833142965963352416559967395531679548218321032718446469667841031617443862419531479795652472343085839701727366057061673327136214309110441364708947724803146339899261738837649149893183758613096225152481781585578671083235819475812029769248179991701687810973349773166671830624131062253676988168305602625847002431418360037199020052682365758678003110135530723923735715715334813164881766245865155128977275687825105443460247830241556856463930612439246809854687754918171107801006306237610789098783460842058280618944355573651872477167790952013148538052161596857991499954906097959375357910161384994085869578900873283666929074198594184357993556129035855174889163933389067418545161132482537157654815059384497445040662012273403717058114324618062802865693079621375262662127090081387019591116170866517454835107030150537792059918136483323608049208139299397162313263163431401750624831325526227361834333957878943828189137367553051654117719965553101095145831115390333297884018562387182492337625404772719358159001598192441659358920131170059787994741917956376599539649666613627256737232973183276369187227957268241367555635605188101038162211687639819941180269755587376770528381513887082047841242565575820562265467923325239502603508852242298880870266864475210724706899672926834556451065734486052651798556376551644533855410479221787269471321372786341346890465795900494919293312603705476095021808249894114197163833852671704769648565253412415339814995417948709388698666363301147028779369189038908511635791764726171660734314298018441658137040445231985200847418863194230835401347279422129492460245319729018799398529339354866544236536307024464999617293021984099844491665029448187820570680241938993464558273069358552696115132138800398734525267489211457799924939458252941668993726033119723248667332900874210963029203189300768453748590199440388754845678664729344169987028060494641504704706266623011975976072195792167480485876166075779752695027727046312543081059607363875052375279481239081722589707979010980741441239366215194217832998475111926255797932931065325875184155584026774344444509332496993054133591709161199389563109511868517621031183845298572019645924622641206227458655253932261635633337567071694023926035601945252219836606546643969637769917681576734448429904315393048071924934088418552192915678833990204443292283026852200255437498214802305071434931944235516630668349097301735168009126181316299242831876392051369209006019034268300996044714748452750522429671955952974383957015138632408472931775478969812359940425287080739813702758904358612557434108098659164564914957538667172819356744329940829589842826349414361345747302974320910023638043055566642926651086170480612816582567961114118671482509806448567198546303821567371224996482823542308461482403121570670608511782892921619994521404862498848688280585741889087269873588044839507239072615952556365692962923856380720840628834200854163069349665911817099109487568507958441522917994620224586057470859203859324457232902283066188151376049610082017149472235863318188229271269133469499725814965581312567551490989385644580086209495458698843571194464467149216922681693966586102070355271015939395567772943858052609336557411870583174435162525337901080697748561295412386029739926477338249652009032163070704999650869294367245226254582159173251064650614470687077510051386027349137790187083012136502803141511148156072935204526610109312273120950128325670000744404630099439377594646820558767349191467690937701916488624747541936261791961124483515116952632535680683959490738994479211736427317174542166253488772544452796448449058134408702876639662818608370216620443702270073366021223317513380292783261137386999041413708582418161863460991940620454614543086705661468067673629636508603507404143319946858992918809585766032125362331785597420179950324804792058513898782153927700885876672303742434676692797533414416981253734203980564864149539077088699336393505954493862147964774842681886075314459567527051454836913449483982967149599276283970638661988526365881074288230241870855848508451902422219836822101528781194049350609290296330741422967914288663712859078655784413198762271243246125456664748671376960202590113329982255947846084754736182446878041539625769556098379689019681541178833948608921724074084684320937107509745476408734598935796795764476947610418669192980851002655141006499606017719200866018009728110589172065760396503235717460589892801582341107185478780433181724978487184394991101352601944059104600262180060535168629065657537712543736027466539365218446375568184843898420767248406002399586668292776620712903947610001727271168381542455711824512032722538837656288858211236179552691131158109123112519429468064289162823070665359614759930189370619054076837981345775286999373424967075022883597525736384844484236114890015235153848422258972498787513314022704031011750734549318742022121409713780319671634310790657464161771233431447587620295523654478283206944707889093851697590416934282081203504296560969062114427079243065147293097032138514425125687391538861787942373585966127420543583422408178849727797123794634496314978390292765143822512398041455915408144933862563252043465607745917635837660089089870946915319054500114256419208630633588916014984419972308526360413452150521293897741522003539437842915681195593651447233124546284033426311014880678262961502850396844185320251764211886861972266989243665620371774882398270592869036187135490253423028529350502389410686674598405771406983395631485061511092407495180332962593004174897033561952632828867872981969578014963665553378649180983577054085469860350219921708903143508736596463404604093158142750984932646055088466291270317728587483357634654526740203372507859899802703456822594250855754136967714147252047017047247692805384548694791347214485798084683292462614019578845625066208036451191864927405356285226810714677426340860310625620766487234971027713232962649819347066151849427754330617082963504054849314362618497679884751839930594074253642157249564791484828423332683067747655582672973306424971565705018830226944945120763744430433866274527746651050296712139889179896000944319336699588037591299410848198189366314186305427720631665581429165552652373675246462186968075316964748211567443924828591997990722472539817039924021043664623131187896110355720056859049551406352373509620471024833297921766335433006317665252591045399631798337458480229201740107330930701021856893167289600661794415445498230017863170238931181338465484570032227318206792148822499240521124352349197461436316538110701905536669784825938460215861947531242302558769553907086266581271286517937140245708587021192004791131685452250584344658916982620232769607373196705977971444977302901972403890923419281367020478937991445876074597387046818023958417511858151909065335488839995090263999004262739704950430718140655549983732103784966338907463983686067270023039383933938655955432322865196619749348016031177375995389141978443807674265493715135358905363106447463753684559695455493236030429364400303313846696795171901359727128452051611211636891011054580326936855079802645343554758373687201396162257212251362423779117058973199703242125494270530864440839357610938444324978797214565630841448292005354572277354356418842531790201593994298544351357705107288214242269592802676084466973740571643716468181617829182125090264928347659170722465279865736721828261135777189145083602174157156357629917603049879422501843161292785109375737408738312892837371099311526136170422380782633160819462751242249064708650711546899281158128094176961684197596810675352250844208999523491239218693173911036698200592118459923295930188298025140984502406477214030289302833043752081153770656690559339938146362206338833892908600703812208827277642058154385326226156657083559810156111629560615459884753832549357395354416326739394223736353257374938661133552691912378425631307736849188724166483674949714243710933900073060160654681156086567142355377729343652389573864833994342430716350562150821157498389684369416283231582007958886911626780690137665446483998256903055992286784738880970605786704952095894142455358178004321108308345099987839098838766819783821461656292499009597074274688825309010031484530132879401364529414123789909483431938114170308844618768242885711261324328679885674896638437790293613568487414353550996822218869169462105465271234949320481183603921524857899008151319448862767966498474142499370745227266304106194912565901596842014378069576046099313218573357129064313753708549240981814894473474971691635126037800777618349277958737662081982943295903799436533288521089806480216930077208273655139797757999356544051011523061286234799454407311447940998394168292757293081160899919725122519196475350340673667743360815772217456874371893046095599992902502849110656623482577917985540995574903107218657596630978758766335083265490977999297509017291999720721976654353723847191519023588979129433681977411488760747517647693179333693106745192951765577960879883574625925619524336944154472089325786034000612843316622174295127625645398306246798175287816728631729624463951685914684797973632268340976638858514263282129590126718328822859515960314701563864361041518376672751424959690633451577634954725220029132488600544202533387485157519293919452080291864664169917737785536707162351269370067484525593718332937307213990910978068419588214197837981702305576553729324575787739057062845026752670796765033822133183973884509468643759168153501789913273248896885992262693815654165160153918765239623173247403888263770128551559747155054756993725738367476625313174423188814244040950659607104969734255787373958876758990146988766554468147563460513080231084879405637156361915335626371298601225858523638151415420918189450698966817306503437377097135797761483389561798730327433180975968915098925833078134341750128771030601355065632112725816699515305629119316062342594207310169185684598275023271257037220638766516973577836279770221388619511983858409140258928574819875507278841067973293440675142595500056336277991592130100594238713817902541358052313566760495332647253818564827371494442153474150274439044111736101492248393831946002811993707155692009442856153018148734137765280355685681119443428887584955399765767417592919339153519185500456288068116284763636542059492618133577426792095641562296941701518442104038424266922692588308075673229203860446269724315683247454108777651600831194326297413670753513252458592049081264206185479456772959385043054041967645166941405378651057335502291009326974049450097165667089019972979238034412849524025175281386433896340623969992505288514506331863000766873939637594597494967104592084523228698842149022189155103198229187926408098349781030566089692663207126108096768991587558041650874879585950268880861542370205135018162074996708198040156851711389594518789071284398394726537552837093345671810111912995807959271520796387625071727552409156552517630244636165958429110811586582795497817347193399164186113418571412879421950722729978844082820258681674107263347212379834508126011136551584766430525337792367758480023026880659767372221423209124794770686373295402488722661389246224966239956489969497278154261812863103472987652706130114283234196009972882241863043771066725288896858234975041346547702799882095190225367039326276736860847348814771617591966896428916468570653079149072624871457633927212021837281001787074494986497423210031622735776098527983446535360194950656769350518435069234936865111192379013183034645063107869163307630242098847549094414254541993383293534554211601331440211215279923943991768619103490432081286699367370222962468592975063953435969056830159689349095208830600447226492831412870364762147859514407065411451347512086148188375747649893358737050507402015781442555364981085194825070601649509653721372626241039253548916687595919238864118797042285202597390253516782336263723790939314929546455244028722546031169920839870524469195200779316843362630417117120669317322151216384390193803867438372915238207622280257123977401690175914570455710247069069881455461203899128108038635379017453849252621769823345552969199928707462128682922211764708294370205745574168988136100124552482357520651716639200197104329525180037412887476345724045698493225139344222009906569300065395950880152503494880568368144504736974068808979251148121104268070569840717781929818055803925115031708290574643034365471517248989083672462037133312237167457009871689230986498273778179186062368786283849220913286696125540318044022320354588337285460429172428744917483879611249226232756377410097732196823509314318701082315019286188286033470965729739160748414433972118238200582081235491235213928681046480885959377993652054781553098270900452008358172802311696323387979228481838172056760394928255017449835627602424992926416354336451417824617766495545208118918008515959197724184149688610543798524057013660105182295559686990171955803650881704447794397869154586603215437490347910667571274093075912281750315030063634047374484984801403018484104183103138941780257871211006876954236664150487369504379206579663702523219955263105274306249289797671317992250096353889717791528652286028300467825876749204114150180455365350269691600480561893556696788496148980334116498292015592410123046212041567199864562755852939641178248631203964511659140332365998396481666797167068349349129862286270999006864252149961369551410113445635133976991482325975467685623886040452869421200364649856549265852185875976135524400334690020391933477766152734344134893031082577139653688174364944204987889815226442129265271894774258513341235523464799804323334366031002232013864943618607248176291839069653008685622206483982554591102208999306374452440685501854820264793930287615962517944591323058485149893803844544112317094782378580727534811158129899098615341580675840153150549351277005891245109412355818063026133783982315364540589319601355742778761582036180856371269002949716491403884281912641914665260928527796950608350879191353903144549280600830673232766577095186015609452774221424783071593879734199652887484066277367595449840957274377071064192333737010071144644802621154405186222613646615117831649476670894381026950790509907967281296590390693872730281404189053239355839384854750973026741490255873021048012390419167013592514175584143767088548111221229994101651077888151632521399513763307422129954284384281683810683060985661255153896585985866001405030970257433501967339145272731566581841780094090292591184897198472950429187363510255910331811441520518356698608082267352158546455752383928335886766595202605375052171687327681106411360808993881349374472146133410588377242484406520812010578354937454683623085613284066274902168196193641879782905318446665582039196647197296586542872010762183734960490166359161596632704204081893551994467387495308715798249834837826387885491577511434273038360325717153840991169180842678291618242468121820856219024910557094549818506160881917410094971324651092752071306819147507853628042255631339724304268136134006522074871084007855972730131214556385062928767218079531768476609833011191833583461842618450976130087051728662674370088048946787678622782885354013377518241263757577022401147685530765182339833526788012281765185976418592702198119732403102632506110856314268902597051421993007761161435368303625830858136993967224749399751994236395118419721493011467277257603469643393787709128941405558121968587441009034911303685345432317412699065144944489451364975253190708040346553075521691207476660397677473458583792995948734242494803168188565102487285582146546300521814810304173639047732668320125742563875865637057089872096408486537404374858212113337390213325021629384099352069286107839645761624592310536598720625945468205564867131479854929995745700664898965151383091408924593654705140565178359721132638719900635314615351250698956885548583009780035420182026506767210235000889750535009325183712686212059512302611450947150285705004884601607034819692012574188761819388264073647523712069957238160758505952968752813245421926599205355044320292493340812975580819646586073637369309564476799540916316350750438950823761331455805279145008725765631431384610793937397273652485728212204516742341257460322495071737356461400505066337756967333833615210298628921310420056372076540493977157159161656813735542525837799085362046219812558915197212234753681197298070402147063183772156206769702136165515311356054797463039676286666541832528822009777157573990970829709774225168647617525524835399701189599673693111929795560191767972243867151022984189995626615510500952424391142785052945175543268666126829512002804936774260721170984111171137667002652296385108377555960303503925302128490432261749136305083234363385456099778162394491111940961563098497045113334395310924785963582515157800513979234187283298903680159401531366905038918323499980002001614170092214652354527880205066108148568254323878803868687049026036794082706016500578192536874891707479846639196879086556914798500556691540177062191433191195838548923804692571508120311882477033730028193972702694897413348562878073540191059395231655355225151658806826845059087083252176191635706455551695311061331751151294540930114883717327601580198312321700145065845921932377239591982658642127795252947678715870126299128811443477376719991551251179358777684117365027283425516302197205649886955107775175854040292869047335154599223564235116598967824785129559375818463514811899518223788614718045318167745710514057884258982407242926652379052417685894806842380826059106136312688444154894267160076269930135058737270690054564362894512133342223301464501552770796662688995068966102520122154592464278563188406038065350272259477165683242538005735021049307920971524696197509928232864839496874565996556362434856472019494629094405141540975552508592697897276841167199432129098962402269393045301897781015456116340930419532681449866945002439265263620904535744912426467824618342283131606193159384000594446751668934970340932474861577313414255173514498990727634976762641527614475090154301859008053880088999030079771743880446675147957673715462223825715693783554713240073728113485962923558583735720976640425897210954680180779684023157113426756218940978698371854421877512470326200721365322181741230564562816001143249427215506545645143509777232237846387917204389138113474801343077260920608418357510860820545601298199583106128363291847438744683617524546342434603443541467783115992238385971475166829465168068859634330944633464270168677163088967735993609523152519640074369359073751419444370841094214067258817313068762643332353394981246756236473132371485033451898169580184570870484224034816314187783466002850173203844214216746182621035893639140925694046404664653051678140594010549947536268293366511712901282039192310357807999090837295020858811661955149990229758038418033248586137858131641157185541315900033581338740296058014928461413724098177675548768479963322288492205820483748321139917369690262466219161189062851592910861137269617848723466827955364473258739798147613593278784554365050758840063773959321954348363100499379162633450021632594380677739155528542002016321064452491559092440122952698269758165344414387656006769237625954151641606737555913080191713733111514385575440137815460691625036112885262733939805052027961981654482068416836016140275258310787497624160850908384904994359140176150194948678159707874499736698602611570547122833073257931208266218948334671950291582547054354721737841531731297380815378930014280448689946867024314397839604751860211232524045770026570837776840073302553918579683192346192137282874425253638121126476224420510982612495801688131395895528307007246054233004672028004446946965681861171432801254065210398570402484200368544415420648203486782594582092996601615439334330275769926539001337298353701577371305295685959637196269086631153491536480085596046074995743968586334371154229938309009616347849761479189079904349633331693385459495664184361658402412418657755131029493520196009357232539675099596384585744573342190510872593140791430705308950978778366526929399441708449197862620911531867279366392190665585431118458401295268478588008966259705211766905088464766799045555651025848033869819291826457711698817310897117024106657579119062853182196350480098280834070355391558494067647354094978714619470508909683579036841640106938508522896418647653718081958963868300012529388812622862266007932093869102965684819283072935918446273784427842265869888019032673887532912514579315642674556434887287900132818178053374235156243217681852808595913585568579508746185021826980135301709988392849936020255652856963122615970331236338580228506863684530214238210262189755619365617087166963853301116159452848662987409279280802626465635206246299853660196242832765643193308724003619597483341696245996619724084832326354552092121580612315329415119735940827349377951727223722537420136655004878018706991583912721219235095264019911378697368711251200121924488585027298371336246229729923787965602427632650921664239950063310408838303398814073548168814195242683259668584980047686663163734035418776926513986117256297624788209727835316475687766201415035180356749238136776107435322251411695862047413828624980184497997496987041696394662400732058472579207152579433582228529838055514583042280103357157081165624743783167335822875897548194151359572391525903190952636682111065206636884434787058944501725272993289978348182568183378531708446936266353395686080154551444154328275765406119941270894188202624151885872302908394215789532765676347079246798058950617129245489279907757155738698063699666573862650989868648587399883513236534491750858352626160928645734906362458473656424365143134044271848955340701691649608982079159987511161737361113276449811116621411232702990506937260267314000079481688667222089657401637487313141123868147343093706926903652514071635402431547783815005356167723248864206954158198761443787600215673133969341758647151713697319273180102629457144305328088410241248705578013856604778155081205722726547270021628922017827966362167952299416529487079227652084520164475229384404658524000271804547928421843957949050835472655925197505234817645717974550739484659201588032660176200205767724522285388078977605716308238703196956179014480610649955758234534195704341702574990091255265397168674010263461712883789372167400368509503853987707409008471386382519043215215987565023450875438813211891517321453969977321953000095605268206838947158314641598357053026829045465204979290373982573195079946678859002410377742969296379410786629940358108668068452011892551567917481850312648978282711544329156961225152404322740460067539611934486105250506725972192740090179974518549455234923316324920284902926198810718776878296656522678667991750861798111842487977156224596825692672950489889234801069991515693661406658558379522783426245942465935457619890186256174932864262717376556502502917170143209113674653689803147683365227514075572126074217814407305421324379094353808599801929792336332299847223406198435609613717153179037734550981884663125559865134685958327788155274152080861808633625830417933640738551067677774719875996259740663635534349685997579833995242262757790555286426426737507160546745037624561189028117176821152731200079782432300099160646788385462715620115580152582076273556472142364426134620179181202496671690060774804506133807987163730253227876392147576398482517451045103965070043909455911093869085536284849961753958114749905509965861759944427025600899404763368258586495222750945554982239042143661927157204649538140573481080432299981349276227521201937403577265772568194690418801780886611058803059018853212543820232938944834617894284991560980082482960557234483554587035117729985244053145112270049285102498495048034631217291953282076847269229579173052260577497327933626131486110167445195443413680388618070324901403288760148539053801415143277677564644963173295507441272754831483364618057605065576039353574158064527246482193283902542692226918987003147824758533908962784305156636703303485998705686253969734202875337248464254235628056638564707255138545414068509010480787330408807091211342813912904093579435019112925236282949431182625337632225156232398664889708172768569548910845832118792594203879391635887193207583930582760902125434655805449890292895521239805906353088292488537754118111949503276192257686165639468613172825831753395399321046980009060626807914876279397159808897102725662615179474584302013092172833112809472367884303564286157855217996770622336640984634517109966629858568914950470333720024580890520831975251251003750470483453809941215390562460551411856285001491729562951996381314583204462956451111341862336666004520011439113924612242292693090841657533384609166344265299201506538974634095495571524694583049843782029361250892818301398549768589101662947338984036117139210649748802464729780366067756176013880235189025481643958033746747687823319846370397589013065686240555906908002152231635219012485469707867705044794874086253624616847698032262570142515749774863447081034389991178323938980627973463088446759337560992616675233466781351390190694368621105817380938881701945810350190126925267283860522953906282923643557745327868692828069730639343468509001864022463975662758570806460697693034650877761518700858083940723991742762144121662703372101841303832090093038740033721239063787504277662740201645706482431864840842400669506909103258968956318722782485169367209371874315499209738075316762485016698740841932283636391805415994744877349933308410956929186627014252901284915327993467952913996778638354896896738294766539027217058305724282333442334976853226850823286813091093990296820724892979960226408471931314662252033460763516446319652513354473916858955088857652635709177072214342737218465093926054563453385478396251055028724413434591196116208006487137522888422178548490723600123912800469197176332214924163030094404403946327456314822467985235043255413545096505014229345454406128432958423542283717090278639699162971975924501408260772648764716585862665762623931741118199393426925751178308843662907859198967256230392582075664916786974801872405467238798058211320055049846796454121244147425698668119296891249837561558798164839628291320726432727664466825281886046039219425224182459400572948294662477127278981844120962636322991757995572037458369260856056575352049831778351187383555136282437986988123359925721356769745433095853694076344111300109764572191074575242985000006043101226197292875967898381024321083958744631618367397946742048064595745093557073127678230103522837190153247551729409974996784408077006426341565107932608049390577471460707556332036969859195279052537335935354298164282647035494082337542003226418431644124282744837101112272683987834898707628772946530458525418997251095351290267977762768159413247518492902426043571385267212818551713021385449283877983484684860154378418392849603521121261768656108762306631876174518886976846726458493500515642095000817213378427384925562859864532056549142436268998332327589086038507325183206353992887522866918083747644835140741791619193916062018515742465964673871857273642484227191194169957673180781086197835773475465827327015593621582319716394236233201763726916665654823940383472517871340844758612133206251126674976058638711274483706888889016253637889166088149276226681474260234941582484430111587461109020887278134844653547980745167239678769838192806084736924131334135071950552141793062156418935139181786845438097888033833058039703859572525573327155876226333203362886317877764661734015453485945244421628324114702645435997390821243881543853817863051110941475058394645283157633932595728353556437807427314223890013559046367044100640100407295520664029482959832924476581736995785103163995094170413698124661232407192100112608670468539520233827429474891503735351434965542175885813537255543868368490752309089747426348837543093237019076117802393040963865139568414379718839161563232938769415231886406377607811648237865163552431916179856659053933679555203120724524043314422725387971170592618911521378682685549000351551524521394700652701236758579899067814207735549384098510660142265919252197254872100149951487655857841955849034943243902366548165053151477375606022159467840969783812986950735739370682455693510584513763655953942436841417969104024764682236907106963001203883914033594014104828130126310030943008182176162351942512260481604028769962767903972686837515263198156796818240319924733275831193331789332610895558051151490927262671738310700836020712633212456838599294756542771529026321521428590882332847024490514319005115823660707359618509522919996666582290063187085598269642247726560180879924611947365711672923703606605409594141268846823941133241707198586318684265009396691762454614660799531409842886395721606832315828897869313927451006795925569677539319577262640866736781467982234461054597840926492939904771903996484119850389772718991549665631530446165488199137336690202270777514165129335008106373391801555420783849686323079380401868159016580090090318743111224111403845288000792920760883925759334012776669621693341086786132502372592768395041432817738520838546197295299742336003028155023164855607101698542229355648508258006532485945001108003744966937484273626229769925676969163317409454577892035719248602365819027703675021710400916265660103065687319975121972451688675445801552079513087419047398686601964182648546548561255139009544091299412848417896281489054123661998519935961413734385111019993021189033336575878805860214522416665273051094803912431200538575431775055794844619210841823859620804775083533592685510571834899581611693228401465536164972140129326594299790473411928013428446462980401826858382268483726097462494858796616285908891012474869752551788489359347955849550221880935767063178254345743587312938492756233978947443292609789329223381336431617542571142684264883389320762671078415759858751717249176955854570876319617777215575317914769870118868283919406846904369596101748892576928369202292327492421232356558803901482785893653157978336658115013202493635415176298207535610574041440919145300838974091172857077359699920219665719935038528417174932888113137512894661512685718949349852194958898176051130559489486584186956985990761252268775845805523853165128153088140077948174137784920220793771908961339065880710747749815898373027849369186536014841660772548059696062833857848995853022464009538885772922899234041839071295229003553238448133495109245549699807189667967620659928250686191437619065644899025173843713612560235871385427104883084707422534349985846180191381217874407653239176370748162647252200446470792863889882260453472440568733617615447126599729666077978450061468942368605896985706893055911553582584894355353634132205840937436559340857566971994328787375082181549235889446722621741505207480800908043215507556383107489812444343768309170898363545199217454625077778597878319830243185013162352119412256991475621641561830623973420991983698708066451887411393621294062942874572365511583219090078647719473696627936585005350592498540830157909621252803212717866224855976503679652693196835282724523329933524031609145187183439387558807491122275646116012419488247318691074491301715026090304035883326401512471769303747210739338960404754369366835342625418744629764999722942396228169856021391375807423457318652733356739599546905703917514648132089095071880702367620170680747412296822238652386030973589052537453205820581761600630845019362259793455568761901901858593094287570600119629269562388665647172549919924133940616533527633940563732666479682799402987987200304840025901912399476068557015984018927255986717049894772412400577151827709216120972832358783721775170032426487932574085711602951484912710810960188075662053201825903584437823529278499612109399884820743456763107840821691211957918173835506560305584895627979891319824266779704247251321874210630937999974265253169722730363498832452166534445786927312997118411629800829229893665868232495723426872351834060909203726252734790617809413439106977169677039973308507391063613062600301444500416784862451477963927685714560689619569025362101520194161946247143346945282525711209048399216357286974338261418572399392628086086166931443178163268285448895826834697262185739349542158717367096525671993132583929428573276832742981390893945812382914453246639532071334175675017857748950589529638810337218883034531050010834628207447731831104804480045113262161986098524314108176879347265878966890038947133117402709321297787957068928940884711449847346322003443781889610322359697749974138744698692565384193311774721731731564348415750128577988161929046598159044756768937622083727434891840489378639135914325584844008009182049823669168884101701740067367069508414400877244594511856874220600097424467630870133477831012216376437221125212601051861962953746529183051127543244389639050595780457550420076493987523136377062281010034889303299067419630894526282795245181001464217919555496023746408749577343157428451397426927641482893759983862037843082253808680817365102636150507768922317759863431250563811160871833546265103929519698472721790164220012300637208085009882693569113372994990919414626299138510545522108545614186469082309316304129991255924355524259851229683705926602832271988704654681064548951689424975549291074292021997708368706488948236407421026427256204713215900569222955628686184748996963528542786819604053495449134048533407816869533389207560682465057317422358596831927051248509977792554320167012149951639657822450144508285525154726823367117761262507337904452108008718892657922656430641649985545744544855031774192074761894346731250332922590780346488874641714651870765318367301868807980484605139865049290609057006284597782379912718923277225142886901422024841899429578999760230394399907260604359644895792156508257062681587913950100456283061155572485111786237727476644196000472336838298110889360933859478749501009632621528123761531063567757353937654538526756315114452455763629345152758044187546437561523409703371856865701949571775385220430579273153171351942313173011612252415880957007160156298887840524728496462749843212240742779536326896697808456741651183035184615782802736767869579430070686466834445507035298725972102559482264847014705024438994739185339552543213042706831357282198280416099498932990868515582834994060754277965622011128472047611589261504422017407938426366851503650717284306508251299136109211933985306750252489408379744150814960243014394106005684941026341686206682927594910149738092566883915194541653172541598084185987848397273415686292962267466963070450526545718047179739386371360303671860271958399236689813320496960577995615302923559466733421276477709535857199382246351569323355599435884474644595517352197784957608230054019602821316736352739353022603290966098803040683112212126476233517956864371588711981640232489759046326855378297642515511100518399668681625059511619956727954582880741980249894211791655790691006960445055473242176109246454352849606451884740857653190808956663881348151679758507359465874625218362659185277654001987898537148220535026678655983679565063712235921320938221051080818055513468534420518125491527322491233389438212188461687083707442759865869142187133366856440483577881341419397920569504114190798202298218047460610450841003182248523452031257054758365251286942464233794813188429592688746297060328228049117225556258709393867031691626679725660223218341220919622282313183478657917665236779403360428988266088986445459730616489140860060525771992587768049273908845423911584894314902506867488674865243501864762418912158726450214567349561517937765985173409124154907716085535869270778882134312518143741678845483802656434380270776058532399680437354313671782989000384948543674011051091659077520898171787370245009418212798488342566171968030477491642624868599607170323980182129703647085884570527573765031482727249950042109885194169744817022907644684588284010547294293084139735459957383753394258194001650869892148652378212906289561135617540778144445449454905589659324120887120419976564590460039242240550559693818067343546096531929159503103622138348645718582132788764789886033108164862380419709561401204610627420410093699231781105243283754653095510900114318271530015328040190599214352381612040515275515865758940181948829004933593785931143451769664209815557220656589428906897323525375366797153812269529680535584088131256991342625245735683305462321651099802168159262310465621077517445908124914685492267456930118455924802384417530465841237678408850165011248368612483569627011151183098616278642879456017195310455657756838341128146407230208032174230319648228302740738493087010810732960054618168848256411561115179854601402374716842282082799566237023644006943189889791807689628459031499893167165239932187770764858378224111828247957405456125501750304311267241132365534535457104305401484805210865654792504428180999248727921112291532858093660829918417398558374661343759010983735461530707894110028709858988488600990022881670859519121429635135317777815415330299511145893151985460749831058220540933735187551084512111308918944018796527672038099038616672027354529513078159830375106412098288503536052965750771090827820973269407980780155499420117349858060137645963076527936029266423743541761603995501290307123513584976813371744516896979305440750435188205229096487376614750695006079270973576808710733539177082775016699450154956968855426959179111052579606376554746591599307269069786774982374199538909587204641847788323322433154977951453936555306707699284362138809118798048704901488179786397088414934000786446103581676394727977170149005847387106779619865794095895533171843195229197182694903158331634412251251536306633605298736309314525486312921838342078842835521730234270693631233209133428686635837888237467208858871844777183820051902820964108090744737301715173003289021297140387558327546409789368071127359421451403761322408523724501090084104473244167200068810471755527300794977492664098538936508162258766537158471898376539360283555972930214762987000874070826547218734813521771326990863626938391728463403397722325394438170651269955446195934888816418974147407448632657719970175422362046143745354721595665922060114170956776476143444602386492787583308573831177652560945251419668106490848977967491016683934015610997937184401535324457817905288818606975718688496524406333507512514908873927721300288639466691676427858770190882739940823554660532425222030464249144306938694134053260415056854999254502752381000812124414376059099241481670955825397225531292842872583480991513314142963286286614208050166468361666108838242736488289476901826143043041224827305280891515052462588582118227689679605020088717889103774737010138880982254203039761602995940520907267696306125545496347442113233618569110137346231560665305814455772436403146267382574009084183145363676797999129284918419811308737048034412121569461460315260063837377833765657228524732230806247646443458993146897005966316220641224568341226825899395173684689012528278263977548102553318489216823426258387279011465689730026400487477309326848261305706443690073194455275682917488563107057531376740465439396970724959820504421353247176464452151264740580847110356664810002570590869767490915369799470903945427829242108659784868370615834842681257725540196227816401351664109539959336596142215215491390383145668665090868797322563162171114638654542191420715761569940941223387512748643175487862487068629890261950729298536719780787345342044573249530796790034183624064671173621851553786635618925613252025610998663076206989886695135578170389294593792739078934793147783344895418538377519193729332144128936043808506154432436709732644822791823117811292384451467962665799279862944788648821173940196586589358484209363285638682538980234928433321846288071600052588406875407010277823348316968495130558249481148782293997967558147272802574122514568325635259465418332535417729970714962714533121263309168255876399367622473123662767731740183401042939243507359450396807971163459766047988460127917060604272609345126030587741625386163006027535265512301987085389257070779806818279096280732471155823255445523070941038733264267806470310745413042804702645273454179873619680418439225035824329480177802612055123466962231309977035334305394901351492379736146088280158998219229217651591760613170809669570094763217100511883848864695324672640256581701839604029530320482488444910139051772718263103724902221345921860771983309104096957148534869957651641057960816813493322801677517301191188316357603274682726544828534445201533063036972043567533969416729832362810487318531052799640807869390326463026940596342067591596612557661390405614687569936978150803066096477297132637903108670803558671321595149005090531163206770292375990940735164965029231551558985960407058594451229045242901654346982104079629544743923109665445286457192802746662234437041256355047952583755021924107045223894704097306269621096584836703715637443453780241629112664995216067014202137566784494130773008832741457465548188146335560700079918355453127295850654728829399406346052436105035286517796866536597046307287724043335896782739237906451918173439006577742622936189651608472879088706565325379597178323442658818069498393758530644403667942474156590704304074867600861526076587648539334466092509563824233804025898133763385240959586202397429550843346624933298141241924026339062920423011541404478123882354841332724026259017606153825236237981257376587318549477902467569514420860244719023958374824449841660980804404659559551286785435993179939776841458374779226049512229218885192088718142306925486242328698788104843970493909200220045817061392016192777510494950666603025095164911518525040834587023902420088880069832178848465677813024209254922408828462825850472111857723310860200744227490461591726210082260266206127500953087383835833422297497906853749706647650924400426362798842694758189292038637076991998010081922334122005214496589855583454021930916393015887654617740610175890850994459267794795396601844424923759027889626251580378609747753934111777301590317631555485986324614488416964323436524763836417452581542120065905776900143642231984875794634647827312021456025802142007916407014624766354816507788532364492798348602485999996470730519648697311731254168447843342140548693164172019359826091205844650577811108835543277436807435534171972041057703605421850542154776410450941590977283162808276696679254443774543499062719993912606723457539741071873554754133052128467168475619260366214142893595626029250748728092214217562184648442270748448181903953278268668196568419288215916884563295080348905772804075674010432603420706106601157297666463491291365992411835167535057122023851678746254904339798246667217765918576367983670328303561570873119875832512048396127177195845806814493979454075336020776631494750219487770829690336981598505009701683271083524319046272461798719204874503415943774991645885029996210515601161023314578357186134016821289789947366535275687537810803194016736780811985312033511185838389582852170011322052091821291191336487550863606061701023886656504663810936500178727162023830992702060426552799064718721822771185071685266701083576932380299099371684496802623502721368276027227396213369785446903545531878024771557091535588369623279420477986042249298680931406273660377986742906950135746124639439696324218001675816525024487135785832930493199718641631583769042827985028641907039215315227597126807864501046320635279296620408366657470672828389530394633013900729373819321300319244085339629628393328951136361398052599421757630707890998951660988600128522744749642955995996874420561697827221891524874197175103489153903365713595287561778605858971079075908108213680324464222682775767930259165129752947811720634059188961468255190726268438377144917806611748555044693125414228626980894993180259438482120844579736630777645852228061925629783120224561633811196956401192264530359739391378530394017550524668572254058586909623376558743453690228436603317635089386903125159705395564626457549872040905426374840696839259756567350409211177386704506443879788647691204047451877066261649370503448482245657796911074716545752648195945924085767880147048058468916959813714474652294934712968008372458992839078019948186710034171915910109101004246773428971799616390130302959841019697413512070020018311962025787495101549097209173164391770351450269949792431244483142115842110680990796657573971248203614968071447820027388593837393340906961675242426832841747983764009756753088191057214787549686914011242529284803785838730235790524248771296476460382126144536240991666379368293725089428955535522317163466003961183236873180586682520050591758029526048217463422759264628027347870405276295973447638263814154453628991232616893522991881832230177711009634482892556441361902243907820710657941287214974576509404397442558488450629581845542438368490666886833126631266295533532742158969900333237083352157043582475291685137010830220074342874910323485632056475523469374790434939640104508588468147151444970488656262744831142861008622703048441437177242405457566372220296488736319909748551872366369782136485465609828823559609635767065652508573529306284735983005376731735949108735790291896193152492513336876046919431810992194897285696414716245479941678083145258268294143647646418893567353062020434015440969350315820578821180785648173645865280768708219178671241229449964305769649835884657853712343304747146225244338721612002417952391337971447786705338800119402086412625794520777933722636233601401075618494252029247164051060021324512400173747225593928702124364327140621476777025382754380510723778863706479275381125535752947526114444879162922600334248296317671634736177881265515967299411208282603071846595175922685508744323421437051527274876229373825313486107568845718218527315968911454384040932686759299730149202451109321527468654406414979473600346670129616030912053535221417993810060315208432478398073473699814668334281348607157237772353858594119596399758812868619822561208159039094693040646690918532768042349719224543480832025319781393457878417098092180937368285716746170195140882499000676020091150121703130389655361395667599245568658575305809357364317619467757212782077636795907053445363945044713814393682618677075852405170104742589731612319957080572642274279894445740026626449114245230329683281626634144226941656894132273242494247478478721621080080714488464556545666361831772340863977569235722483030340207511535205702182003378567350309865841411139844307713664197001073544204128959311108909988688184336889491600246543411819067840450743789063487158701171801193235104267444728736272047952462542862755616399191957835601597150557931420370802703827625469457069513265600138481258289622252039977523161403229352879763958924717682550760234642035478098457549772337992733138681785602275039605748544206248697988266731453805232419273139786777335692392447962858550347339121749600258573167802600904744371576454471573862335642499347440887219815241844344165661646414130568277044865414198271431184348868927149951915384157532704966769143634061122857085303332476620715357160329421296632504088894150977973441582749848170628711486533259171759058697112396343732966942212744759358875089161806611645103551237292530626069890515118832572560506866709892794285606895058013413088924618707814453814951005810480532850807130224969798988159971921251737186575015368503157842232337607857837175891601443972532156832824456766311034427039921043097051596140582801337344111668190218486600360538960319567227589827048509222230500386341707374568225458643303027674757132993211950759902753715884723064077748361079682599914501652073158713111578496753656928527674503178486433478377772248144137544994623797333172411277642848049276170635278050218753924254645474381091300446433201217203939566915339977631855512741874154043566575757976489713711283358246511859216883698598647485086848052212228883814336597266024179234652262008766159960039104153308008016080833884020720387247183229921181834373131604577274051679311678606379783533452508335996510019300370017865379663706086113220607019613445548016262207101366820977562172262504562589948868098754605934681408771510874895322373147231557143726383889655721898617882281043359445221765629526350319023811543047253327054485681540642147898773049122275072114211959821543218988758145742257290036175567156312888676717549319033491708425101042314141332569035213767981186693254775057414146570389798833621854916093319816677478898687091672184670353943662491005349063260071502044909682172125665863009976233551959826886360707435467953817268915816640059717359090305702339170699722656297893410857964584751515401681229886763246856733603179640832311916372103118676103094072017904609427021652224496392490455708310770311430302029042250718240227502735894894249287632887049986468679962904312797321193221074290651725492675566254425882856804421499418180848295139235722236059537434692587157738559594297396197070905710534493518508643451988774149342497638866234564972206838821131056094045800588100568891285088535620720932583861754465587787163971532265369998643025590601899921807221243164642951721514021906420567979582335623338536847721622208030101936860446280277033593397898939502898909368006696639813151516354233413182184508263875766900293311760593028703494398856805117837493458248822904303900103264723935541388268826166565802411353180592659677065070254668126734970255906648986380902735992909234342228507124466503209127039817846845761788121304675315619469967157836571991976321951627049274714951060765970512495324909823107009241889991034372087102808748660199182215740401251657342972702881576895460030467083247325913458825686711922291431758325051508976349150668919399985945864276992446790379691339656999406920148847505567553518556606729008182835047925834856920402631741892316890513839989358445084150438834481473416572397622702918621671711238563981789606885238289656740385778887774189469278127037078907629897968529341977739449133996249251678227642844705557387966736836338691407171913889919707064787483824566008037040146770703624389097508342744186801695411327633698147233651393320088611455709154034788619849367522958091082431630831817151870125434283581293819688592297814156155165317653382962586881430485936377091973528047296155154025891123319277938419838956754039003625392787368878706586064459575096968974692988257427749768325703503726466531698135225456944359380207146305340738323248393963577594455571469397930737826028134954032783262747667951257671999428438247960591095890249393355180805745054175705756900771978227756871151952173744710253991205355306076228499282612487596315736234462864993301322215008685288796447465355991807981955864368896964128829765676023926450089961164473320743123458836560096092715325694559257772029507771481116743424291508683837838959343729258082622549084605109626941587870853720328162277771906940512108877683953355344718159789808504910040397534895826513450711692268741120713023094347754600168493120315114451809068784290992423647900181622038915864855309102431202558636674431056379049410112684905955492982216360923997509655289926632744284144581502332741694804349989147816968837388838279690213628169859134992840455346917920573098841887665350694641040450818363538163884563597098637537319467060275917660492602694460954472781145758095395195856832708154579094760994090045071306351030747088572729410287369004764265705825769719352947018813535393740109644432842456651929084752637580596313538096022887452243033568165110005176805044691150691514050174216692244813010339430881317638392103745020392279064247787322593635366107590386598456903093026742589165815564419077479855952177643443960774904750712499629994519649234955104393462752174054076109069429987914476211468883926133394703227413496906626122892945260484860882417042755837474207430512198972614186442435298359150819884201117900036337739580893961133683490977165867203953638115792229060090974211566543804910298633130508405892118280737156005082466709282240038794811128343235942787576069320271644927762933330286487483485250904188201409434254242769323087733320024086025105467794453420116586857152834098451155067157846968154897135156614167949167116588425650116470518381841865058991829388851473080740955980088900721966558821790877781986185839040156856637846105168005872267215375112609495863348166207997320899301201488649107910397541471555105563640770310356335115015349771287421722252425216806253547670561938833864335110945682498057620748969115406033609096971077662472412550874967950921911646906852010684081004171127692743268966523571670499852844048554369025496144077975998101862541254018978673829392173275300631804880921047336486577432639454920829539106598915559259359502456249296124915705000938572757896764297757401296848587327148799103731553968517060266156586847550020953251258079395062042098067000809672106317847904183278931808614344330987745863447739829522070269157702458488279813491253365423536098096082782066907041615607550966888808249242185946585415488828870867897478846940595231381348621808938295759120340887973782418000183633348175902098122241602190031858727876019420283853472749489423229616885384913443248594480377885770049646311727887226381814810069907245192687830830856290708434760111561075032311508933561483550220709096643957900603144898245117560062392479210540585199616806282390278345813115021518601081948774993244406663770253701874009323216329291418009486375563965004060552152436373118528353508632348070780095392573592702002158859427228917730124196386852622094538434486939809027309867603746443331973906827012950807879673699270186095520060381387480069805079745069590254972121930174247185311593735736400538277182296008290395282326951286326373492109336239273047073372348247497900261744677318399890465099627262575598324029346020151805409814883161397037227248847463311347794330779458834660767843286832150270920860136882733769188046627105147073997865662000148675550912313488378994206274675173863873300930855620154855998737077777154752701068046041885680681533961829887476289162074210162252173969187613411658343498642951846278201957493578760443862353954871617069939064759112279758381187272439162001456377578101187562824088749484508645747558122801651128456225289863113894548709075602667221234105760786210100531524324906626387043236672405763079094268424165468459466943485157508962190715857028243270106130604025079356128521255746573323843835154836397832943646477967377122246622170061978613716084722457578379747512807806205368863588212262591614719104829995049221861960816655128375205448029065852620653644977284698859402120092487909969517319847237980319546003981391719236288901598080639441479822968092001650575439398809181554353266834247557729686545053750403602265152434288569150873894167283406920566033416867232763067878369040549098706092669719067172145249304473872522807366166667710638540169934317519178810020734068147276886074046292711196256493804813714750639029526235057672503583357402565196715221178804505104024774085208588651379895262633834366243606618894568037454349203177100921689241100465050382878188535864109831741863106808504230769280433093130256921179218605581936848983950137363925578042085280119189772482653568859965582248883327056354203429790275014443474831273000888527403539117657815253776899455471409699594493052710144414186259199841185467493419760917048967208536415581504697649935560694627502512052253134500723198096218647327086426653259174492815930782486443361071970944575594018871112060647193287897715830127348507194596185377657578018204983810269388667426125996172589324786960240325415732882937565706522452822358092367095879464411541347095152457259736294119552777385137267829443587329951548073092274364743643213005213004269055730388875774797471874254084575911512287399536142321344550046062640881030447406522189280984203810881003978146564885145152495115656460691541123969527737128674158706133671761892560083400630186552081689918513105285211614452789283554035991751755321238669427510507170275443310447678868745724782538909457589374981667440220797106670022896025605713369529765760505670086778226858432963351325497263718414288915853069628549328724116964713233696533587848199554099804026247681450209363870086914246568793190563368545454130959755935913642031416413398072592943906895077806359232992668207324703137579667624711603361871214151523536203204127662237888251690595248159283592387164381760060340014579857945679097958439646594822106063545094963300602783049558660714302857832223712973447610966618054399324669446920284967612913277211099833353974633251660386939777257309147692003472686642902505076796568006481940970416457141153004095719566949168024526323177648544247345672829871626151614094474886946887336723499128129069280015412807542583272135092209857466174004889571698822338113476163605188012968355558477049987885953834457931729071088162971155065810863032032591865393309924327746193401894532167409784480428247025658727572926256446637556709894774824621732866917584903746858200343378988055460403967688241591664317307868974462959585779706935601411821126259600610866307958776356232842671559984726710156403799749183858798985503999973593821135336057397334069218641180616029821859341981255682237375555461880176124103205837519086424640828813140280750994707872115015638625104060667528793391743634011054077430098903586923138240216877542769517895163938297315804379876790389070790287702711977011877853470788892324263860647407738706229301442289311270684020548521943466096555899178899854754028331597977721466506017115168341067634385761985716298926070139954444961422436514559360783642709151224655990910536503710030526385596372678777383627254705632147367177576840387657353766261231087007202728674428347726978291290405263619642510277303855128576934083108811720178843845723474054958239039013217879037345800348406637773896937741396276674494535545341819753348888714983533182911164068960779149194243893928325532057472530978868635106227811392763111918516444853456064529773197433059423997376580712817940430588184426899090055779742213862633471507086833235577288937993484883469191041150344048695870670091791872074772632417333793321160278384148062157886834646012037748860038929916418665790314806065864892476076039884701191064100237348053238766381281765802392958078374437687268023588543364087959794798297117109841059269790175467508607780242395401214707664985141150506244791793760403030396158067383712547846868275104143340323994677847160391250848977155045783954080773331590062258258380285178297058106623783881887462569218174234131541881090760525561050350681333998246759229345613685344789301216389501857659946964991060464618368409605644574148058502519555910926300866001544300392738462747206971695170791432023948161354594913854361943109142356057751575033093992596773349235312327271068834356148086392986622385941171113743869194434868975023157526030889765161076120831207545281094911399974117906521519325572591355950468856779223261877341669290430605212287242882330791694073867800336702720820898013011614510824400785219968575756773925987496920960196530111783713767550991948881908304679078149471441289178599587441942864265782971100038088488151270622231969251499518777224546965857717946737252177968208088858611627577515244548120826164398481025298781573493778896693854617586817299396807661151216449254348635797650126227252507269290965189547394958198700326463834779608427827542956594703674942208443458645676151684413356240723182993667705577731743179489963502775306104051573038446130186211434983158540233617637616545540393657570730763643202654700506606181170635881518450098690530331327474650601292251908372028991051967680631942911118961123072598144462208905944838878574415361708776175391888919514713404406886687445337827771616285709746367392691518247261263749038395747563604145843739190572391192055581754507979671009334798325173765531627925434165158161529272365000977176656695634597001470876618269322809349299011184399588399356119115582288323117673290745608590143016015615652665991921689245474408330177901344294380895578316372704155592792751500964125897756441058100713994019834802064629606159652552917747929639935954297413798080630267519166960798937340754061021445204986206685938493172591926177214735043721810030406458162954089613573385806297311206806953487187775414121061615013788039478034400173979440507474772622400074991523517699459715898934790623570865136601519838849567038808034789491500775833100138931573235182101663905693949192838131329275031613603152506515037006649423091303958819998987105567991566437045453005788325750398455549334097265514318173687509712124994462265691819887813238632619779567772605022448112907941324870463324580457427955476381873267019134029467194114267295692131425188488464125520821305214740804739343379583766800874216105412645828483715514130461627663546064627685746746247854077868897445862415594901542187747345786396812393292707478310481591627991244884889541101280397441410342158863477220084248800782454874100004752117381947017828587057317216489475004568956486443119567636088357464234477159240874547669924357698180717724752739109198163920083089953312815572639901354066361559813733636224170995368382759564651218310221457627873516926776176987339429168103360595165871296072247778478252377043429329442389799550142697095269518948547858145001280995271229357271427359952765520374427485132035104345749132840834994219983892618580160296014598797029046259085306416880245294615837504761462943592565916269478523549107842100275193327384510649270269416056859930512374934270616293893845225381549458848469317642974894297939502819496461315445343382855623337936459806977080993811660572109552563626260171619145252181860484009704795126228401745769632784487908937910835126436940255301562072411465674168862089680241240268487368078510329951555003499494290323248038610627857753286610857923833489555852550378548587512554410236025914367824015275527958056356135823160110335166843729969288222683292614731151094235056676145447760234962951576609029005294043260286145947642379322924344018356370253545070249718800279846164417343843232398609433772493546825640200520355174065153978651855958088138798096166777203624018309446033159792857832314397088024522549326317670679252674941100988212086961974946143648817146034801069393831077900127968603960079905100588009718018325091881267446873128502190177318324400359125121944228412732771915578713179580522707544032018400244354615549005554836292206293680883554153527169628930260406535681824447676309281545093677095551882409659289275240428454008414027842931042788118268521191717248074536141061283645873425098223489061542740054228660558114063416678287202498081622262206126769586315836317306239761164210477564441160933651586428461557137936249895732944828246557045729350786874050194843294397237436536560667165765232187550331954622439905604293050781101154600727442123643311148330968121494055547597543715144182961146926136769202168202177388031136183865522808508670571086343569714228112008091107807912163929395670181638454101955617842896109644986962706288543763257798867226992353710523542771251870323486645480146311232860007642373860070830290779760469027899335834796948420060318791024894615521869434629130774750791722472664585257132336602029165134955841284605767457084936355792227141684678284686069425139012831127689172504021474842420172865335024305538198016611104400602336066721122279639225541517838536017786791173036460126419038575710073293165714762567216983707342453409360139171423447994494343972085099691744469087666408037340174309661095065064902482349768067998565075818866808429274804594516708502127455858322432482088170738712353892996499953885239365651836826562869829458391803755607481705529087619726287076598856676256524547974779084338360906578280481991512272629512618110031637728263825164213368967443725853273470483003458181842905633335301777988755782834547258282969885420807397223403592654310249528289671001722070420801481794290443888979662094271681915567820334279503248282604384029753530871062902441915690225689036411437694429040621827060754802499872601152675931246383972571884900396412808798277515110673880835343307258704349134970483138946378153036226180746069842167571091444564976885279073960188092938071056878864236885075844035051035828046815733467864650606088674928758501354561064831450037528542146685716695675592298824819861365183010878050765821281191300414349259768074546712821432007318133920244664853809918394542084395624677937835343294050039910830806010962098920861944328854582721405024705806541074555694579467803211229656264639218751079610096496727982343707047210431691265846737011600231538051621829132582164425012704431016871625996462812384822104087558949938003648494798886998683294816077148414069229554134907759883908217739641396812074924428341715150559102312552746334003312452349562827409977657573481077264970137453102486399790919882419107098549579418857612951836435849855902831281012861108197637908664148101878326729038027743457543552662168049249753345678761226942282019452892334567240481693732472557204502720223418298958916777037587933458973629623397095797154021116440964051027297609139353204589898017649087843528783256057803044254841706471743753779791812035254989232338746131134653598574926022103514150229179800862729654896324249945576093866566157709496271872048923341010264134974183832134864126395003166274436189145639215163504945606550093344367719023505146743255839757604093049474370182876921863027354901653594276416155809867623194755640541063276457540860333211462767588997512410569763060429663547786203343178283149854008100491008715022085799751536036210562070450972960288622619846751072748964020459517753378328985359545637603617752491890678866847108922844899458647945709268051090294494054138446000276749143246542636736179739617938471992008320680815207509399208405746422544058903267405032716920860467503831744207970301021090450005445383946497459488588465302091269424744662188122820792980737008437530705768408304885437677328726902170218720523764427658422532901763894931225639827128879227903248958343824924559210783304371389440156814809183512210428439580159818980938831777687123852893118138987767655237615281072239712192050029516002569043508686120229083348311682867022000091805557302636901476486807196478618517408344036285531964177725382754765801718361972243459883554312929039516050901415116372744871026694029947706336541123374221790475730074600628552399855526067650907494814752767630236492743100073548906581609535582845104010708034835082549136316398818157149321900357344516611270526405502942604569169462935210512631733321590681452177096041822475902253209092834808680535593584046953226541555998928831217274790077892972884689286898622725013456050416243527906610505621729193649682231896769616253184242524054045582935430544003394918199047129266498282624927642859608254285343795617549758413719662689963029233757879085438535888915606883374006659131544141413395064204166566913574406797135820144377870105483020412615590304862719800773533885633604652368104080747649004495771882177243792475602402633629693178718866730271647504960595305348653060342746719932239363791283446672236480227837986122386313325777759875491020188028970472469266431893081813437667829585890457417203795296656753218030681112330146333208552513761144968813495140293965779748888698945491119477323077285310885869396959796804210517304672280078086628536773083538251475614506711675703024828432979500203326400656200650997467834356407702989010019205951626227226787970822612427461343165698396664805654975637090819340524889467342826929605619973602530617576023989388651095331734130646153394674757203989328260935515791218527595578483062247629671265293311539683668795099200280061096482748278571908196407126982519746722397808154793127174737224708304195442453490831967213269109470905877944078784454399586904607079954650175576969923524394597418624997568951940597405726821902410477888172287896003876305586372364655244356478117887266829724570251760216915477815518204575808940907466936873045304797899397212809210037483994208009431941065071587017408758833311702508048677526499165483514381106845615492826844171736270370161838872340759549697105456489934442530021936731090081302552375039708496195482154349257490510510245271534738291084576976832678777156571879232832812803718097567654267840451083139639904324407202733977655043172820714441849701303634006515802025337342445689137438232926901135294740107470917178794643364494157854389075001700608101888371287276917668693309620507623420677898431913527075898765686785923082794355451237918643544015377290575108991298968990152136855877635727602490397650417788385953821832499661836306201656064435853276235759367465408851533856152969794115879100979369486901119767157720858521043617595259210336345391159693759684660875278713647346642939304544057926407174174789157797309159339729908000332157665503085222949933735255128874556034626751359112341422086224048795823646018322132732882602174288026210206915015993660316267174212360819131241260732228008158905781397025705193584800797553595389607095805199510312682205730047044097727062275781762185355126902757610156721969843347102644768444350107530969875600270392673404668906063125753057885175703393390933735800403815165032431045605671975161455372999006415586429998127401238700702239917190939077888197150212209302793081174811458080650692952235539938025104168538753121321840699959472175335098548111857361237636809769130578226540012739735587131711652270387909903133394451013143195308679100323465119142079350221228516375716832431179277138088556923493444075897420980259254686113175480741028176869220066037109708106067363342635172864757310238448755028609149695842569524542527018988025277483226573838850242477600677828685255337614227700090844010937298200091131367557657531827108793622919474385281773233190696475135052977468121727872335934514801218798368206741236402314245952510428577228780237417597032826775849375493345390911028826944213216392046134834564239319671695303815675902668450863704392617356619979733015916467360075143790810545884905182858984337087773076923446682199413535747064185430580992474856118977963271159872833504806566656562137122048092874316262977511281292958970537585173421526245074006657175354427770548010187041802088730291086007664879998064983879606731852690300828127184392913037188454502730025759732171202328040863247741607841451200115471695374706789698201227332679040713301857445620015523989623359242304505510764927605951618624410550374905212588866496014680279372821394348385544490845566232536904164533188604744897919679887826481670179601786545555005391721794202498115860546915760564788303118318011459319871122639538427020897528739445520527560469928902612078216859394973359024123261067850093134020036527426826448223571271309978579733854597315116765503671372190273652541306279971544727358646745262446599400989880324029514798914863498996850874415895734449314538153726353850427892247557161986691552415251044439251241641056144633975874228773536202411760885470346631002518001470969094235075497629811958002082545416425263779139881214823396573229355320460318986919827869615917124537329362239848243829595654129656322016959083683933093029654726381620839519874202474273417169113957256334621292997454330347728676934133570153506890557537381820768144312155059136259802866586430399956164383979439007245382703246694405451180511816875000243195553795469211219513540642426163420633547025796257120406910736016174081283060107459249944689417176546819560897970773697926463955725455538819452254880763904583826420040172255992007691124879247009415083314294376771679175617391184225973182054830563674665665072105683153170321118980973625591554905274812720664293346543883914551171839334165858107594885171205053427340885276101482534407787449441141465367560345048048478357189780767829338619679261526635832382555439536096152419866238646184931526637925418228394675267931311888762967664275753236878148487354390403962339256217583188287039565744847917204599568043177190455035104973852012666972811283028070535257534121325134672683417989139641155852065104292136371061257411248062445843667363849282362575984883350952670739669639921641921630557027774695480619816604464419028084546947002104881828673294518735513985513682230108172221147028835184535506515192498061025943945294784033205267619531107962547645674782688859648495659646905883033258592401337609765054167077458044140289440408632063691782236597995235205962908724451545844254142790475527984634265181787260131169578220039429438293005557659262394095563707547521781666607297636104356070774316498238816650719481899659304242642302409715706061181566648219350700057926617368469787474735625778224299961004812143415257943048794863851593492417559405700450009235205169650947369150810657364770257055891408835700756809761883218365862964881611257527906133493629538774984461110688063026247534606678813016530660595159321480480033457736589726383691872839916608658857386551475407733905124835218835936319931639660863251547433057090586283497392109244120022407299844311626024533237275229300768945061861851383854555698967649282654834805596070579261936787851483476811296123467798088275019072186731191173754089095968107018849971836717746167848143079375345979914652158161911436244041262831019195343606619496995860827494477504877475642311248414015580696470635260168947264892325854850934448328293430022359684623812780866106439708100436220453446503381193819917514933198009758835966605269909627935033555889057310934389662540937047266803250058333826618995858239786950472927833114605640063824038421458127117708463913724893135188830105366151673582646993127133295191853357616798171738060170403757309686544858096158128781095143040087756673367697260635958508226163398785631063849158749465781604271346010554171507773870614906898274065991141323907163198751877621048528996945265618692218457724821617804629180584528753673415492464506832758060911215669383043574313799033024691609734733996935380584594972832775120168146963741131181533356910136643833516951632012753020645775225568126601260824491636333288536880722871078546201882142160318585480784333615940185404959836317737383856872158890227718734184341624260819090094952502286745824342000037551428123201150885012737516660848051246887978400392234214697051649021842294057673415607308971594569277238762548176319326792820119290599690220012568158577543254862453823547146133357824708219981402698207871177118274168299029951728438625571710648238534931841846497515670827002044526376298324686859010923157603024391386003629546540887970251777894887746427353966136700061099585547868447015965333173176788663440000297176131520838985275088108377951229995730837669968052426050668050045394524579080557629325715760178044143120245260302319416450316587438990633469418367655495639431330008554539730267773456778977791745979178479838782827640638072251934850290769266259604101979403395663750141692863478412953319428713688428389967182685833154702499424739739894976670924302862760601135529163799390530223795253136691948726239502072993250427272019696046004616856100865070763538433598314064374262916093843526405055344723044019447809501414020836412775009007976332559795215327719909236092502613623449790800500990651500519425651846038352632047080311995670372289319343029876138752853946532202722684925790531269876790303064440394476955367718241450483083526296820653092017774660183747284110076355112684887447350572366878091558017369251612822522118216934659169205897517526388729623177786662078069034872434911254856889736254524509961336058657342395124864481547803563168423598748624551626362994679778768242687566127786385952353110365444129251542956641833056200615243832992112843018325413505257708493522684676455385302701051324404505205462666909633928765335825134541875323362326264428301329068131236266133864648129911351078972894653630346994351150099058938897473361622251169969216590942287516895919178433240931888559381889670355981154946985515699650548176279370000477085332392844308979527138469377018897252371906574218063377643668871676777114474136346407111492598871977735506427456131745587687424456402679627715006411467708568213154081968785301086645699818212558555236149088887299034408776559350270750973245882476636544525626826914319806648879817793753505299025505209734875508716916364300655721699609248907643372230003176352086807660665942196542784690791264849776805734902019982756125022954407215770480165703701227877535316255253094815263698848990990427887877016565482022421819409881014319210088146088245659329090392758887969962891714253753200960493013233404979420445181602980935174400115656727447377901178953881080162433033486832799065386464593473669570576234435593615494191539373506202223867164057104571203962557974092594506365803672784204559853572227164493593944630677701840916882081643102000488453918865436782185282322237637746367628227383327582190101713143938942161375728933350067240832007673748096179431526989397588300825429810746649500988407453715690054862116788197602549047520673728525559926234003763890120711357027865209161014954255761610468731563471576114172661879529433103162680160171225425454259557762907773476902093075376199776808558086392946274635295795835285690535356365943051070358016627252211167485168358562061854410796503667994591644723559881719788461900971835326121544003763075438985018202850871507146852300001921791338294015658801274800376250749798315528415770315674342393864226720828762023057599371303281311010915663213418801276882620516317037858011973129783973591850433737655750555735458090464049839839863270811478391659952102525376934816102126181293327470878874036880950684316870636971880242040523272896940018777547468995466887197110741237250888556962343911214405684654831359658037682284258595598519683705278517484879333880996498211743568880183119229254099628671195215432604658733494045336805446487503569744428655732818839759430956949408616227375959892640481313888644588368686857454348150630762845379625815855953018353905311675099633986573064833759455741450565848358391860946421436879938148237971170086590806779657775931428906726612145991125457542727087992327876563496181954833950501775344903372006690978305209640593321020415907611202047614061521734980204060400237091703876770269390769322967968736980277001893475165831612017353893220734188822742740817476973952651903930864221947447009967741011415834755607028437665182402299596657736426732575883565649904305450409459040762764523385433100613756493772266058298620698044516109164397140424750407597476690913744850463701520823310973553752418539321480130520447622201679450955573966400663782708952808075426724569185913343825395036692590009176221596900815386112493228171937838989672550632697535116745785941944534637632332307683385482067818806674538077727057394416087598558443980011057839554030785438204107117456475755858955442825215324969282529023471773103778583428296315345137636125239730216866248732916947381729997673210495681246549157173675706685808773521551066511072230010874876543982705340231494737604839625280345384924734423122172128865652895428266888662653505334920098006662248339337353813970842180406308038702710282766520571220021723861763971777838771122829498459141923867504832047775859137277208187133282141141480253211625430713325561553919103420670625491328157102033284189181406099837321189601948758308653825851341505035763013083540282253697791120470252946910166730666659271020977392393262642830750073469255337699475771734393265806760241080666828438047658534296293562502490288125074326671358856213293344942591318418784915745415512277350696734788510083688586056642471778801255903384367301423227763306716950955606709012525683102547107700982242735534335279472180959697085625627276795034058911732425576956317211363596946076945287158618237930682061538676718779362805401903063491616279472475499155660503733913392764247441962314054712828618639662407024310685041551871493513688104240005617872631471205312025029092040134294030781400580520277648841128466425322235745234521028058675671473451584893200251504870265920492552420243672971937042354657045568758561518130371691227749762538644382342790043631830383984095065208561572406405160385784957749868491135453043724645783121781756151504624590663270842035288593207666297782493865200340857226818934582618757629651620499267885763646901477234740869372754327363061645834871693096991511514045126955299760421047182355697343254629490883768729826082915433905657866007876964749860951316689166807183572467479423976793363116271849088611537162344264730753642472070498918821816320133373265447608165949955400076885013236616177657671360126029647503999637492331804027207109470676908273404779549306286380615346321902824242244692063563743425088158025796049883244282687442640358638886024841073873724078530403467733445507734691557396187293382851422854878572431595619945639395907820604831646531618779567092696469216333210661687044248891391603378741557165042819004442383711141459362985602785521865712792831998948684439990429172655675316903516599143362436777352526692517990561288947290418239518716269293277964843543051885278741676575878848832096230307594671878298326936002639576968372318956761946483606162163245936571362471358126483283981954463551038905603995454943064064318089715556685052125512988849258353392461695225777396424543134862967621365171535080139569984617595090196375753084812276834150590016350910832841559090920604211756022430864767597101205108267739358737637931402628271051142458834573470252116854413264571544348291205301473789031632492244197543513601407126876037397392019963380206559943185157162092418850426072214288039371515697663258055462640830270750659139856318195744486477842293019898823006546007862580720883457332810902782911300807939392813027352256671736492283398217008336824690209369851411763750924422845724380701232173938332826823961851217465316973652731228325273919303628411116276768188851578370609881465858839207466895096807486769966690590138607164077083509062158753091235974799700566949800825329484286711732864406397617940373595745540266456646814723320525912904809595153548324796234174502543662358672321456161540984245747502408506671826368517938628617788589547628748063784864427183957227619691803899492206088770360025062907891746680971974428760580764487789291857918763623316696785898966864508047815981997829036737483088288476934766876718154596559399810011602447542142702325559760970923402426257154829268850001159760326485821452918887891703526286171757584713156689662700888941630960905975834735663787992650361934584391927305550149670260346909437227797803933671736455143490106739708853684726912387160766886885987194693868208276858075531735079511041762326917624574786013493476656129943851651785635253452013971585505492950291921664758932030569249883785871309233643459037401463502666282039617894230828644106915537686678606596418868307224807251730656542121541997466307940255351942992654040111720580964699979753758898734781887641438215836343958360043947837843094982833155765612765738535581130888743758611343588264026439833157557422408410828323455750607886014459081925382686360705084015211988790266571049571177243982118638313803443435175861938100703285509258274651781205684323024109086837045542430454234803968194255448702546489089022924387924778033702411806262150491528993811354323133500163427998846288772065783505678685000043135580212483973663379795387127609142538239272963643591907256904554787774145993374697421869397656050124615275257874187420534728379092174248563478068023630638389111608258599623244703133910483778065963044479593229099485435203584086483300737220504405584025865655044806290383939158244713241631402858796425659090420733595772932930476650182371384570764171118964313766799310714187194205599259041359762663292363612907663621048565203219985721668844915938278425056822701172308221875722834987438482339039807988051534437886623432933504616719528626066817857636457633951860004662455692286074354944602699548894279774906463319947005325893321390145354416448722980429078469059998354326047397474071570878242878052393924210940290535657879474778690789672416619920560175024406550957290075351011136198407122718887375925961876058817487530862631419137172353590821511767364321223707826977376190536409851611510235816869211214343230708686624243138168561805941021782891830480918807770627097869188481693619408882169635166879755457464198830736324003652305642394952294883074773041430256395654222347936991087403879945554370725391369646692103327822080763789242499716035693248542859601905388688621388217438579964153316830707288251924603507368669048099604994648336212225293002903952853816096220570510906725376178394671620003409234767369242317826243372450246248091954163008342398522124779901409441245131000725107163433706388833093847361247741317068062068743554876841178556695285431567343468271964326799506183957227183006000373956612325274773952495857863262387118587106571117694699703016090044356663564959315494738233869960749448932957751687191071773767541099874317199123352994597281829230241853185542472327364768412295791009386392067680436825206555092921285460689431017842150890663623435278706832394529244317613289918469008711239959598385609177851021683712580117087011020795740638120196485871769204126165560341609690083885067965153260486954913285491350629851734540894758841050503375206284071386410359122079396995854739761096884987744346133076052365170493650512125123166064896234010706019465518164157802821327633885464592741702125240282759906122445359527531549448262402698813562181077200420495302451238078517599004288218032024357191611668747397567799996982401205982020978969087650424376605304899319180962060042498948301542977595133667120682719388954602287171975736851060335814519117050063626067005387066108886779331130156274816352711127424776102308437805211864755209733058779274298602090226482403762056688226633078228511063739728338794722842035495582055714715517314392675168728097998747408897688977665940415735209753345746896813168407155625286517055797225347403545880461920216650374144619095700911108494187047507992954773594555537894795183045022515873697093246975604269619311746548376157547641299520258188182085607177252566578325092975059258756427903819310676558253024836664696535680517040506963553213822838086956021552348692175537471187639642885162681139105084862587507904621995042514289615556949518107754793450520557520999841906999655307610140531690503525690324601892766785213102633446602895400536206839119540365829977148003438993085011672596033597709590731144641676464578205633598968568450734533730780719573739191856793511998423338423723339422285625529144797440019329942962662806573472907544356319504474897046319368096009311642919944849005665113931604409028879818099092630609430731234311980869418990116384917605636823856894241521444183407897716730210566817647596193331632688106085643898587945081797672260806013646513489738329389488619709608792703867427393430119115272052558039868269033444655752662414100581753908365154806693843272594921868414597321275600277338395789269252489844668235231582874431958410131453267481858818355852764310988000439975949562492112232343753956739505815711865832374470194147366943241778371892478656799050049406043796068597322088833199020842469879225293822263454446394027038171367312503810178245296473164159724192060240750482043947328377046013580952438527928483304789851481631239727040388801410149785379518764658011437561319359093493093549550379330274348113153322553541110010470367540237879483157405907000091286700804504876466798227415954596148222046734813278620011900266194800597762104272468613302689273918676529116765044812525108214818123043322006963281502690180061906613601616093270927139746757433304123388476573543717393363043614699319650579707150786214522212188407225798229644245396900475999667429740655743476277873204411923550632675201931112689632411022467345397038852345281849392718143617108053985146055796952079989520806186117819146963669605424338845314895923276462267363719771311554935115716937381795406649067286489585391739550894350956068429913642331847335905642591922141529688895324876460357398823019452224914978606251213265362690543731660933732909794369619991726345609063407066556828420159905664475700845977361615602711955624871864037285292735945857926418794915090119214759977683278210135345057685738374597258008163576317823106204367371210589530510932151843439231659830330409249875755357010742381626715503416025665802924488104680590865060132495575086728604839484594478748511036633722764703654380450065931181512042467853204013715384955137650746402593243029051053469732968193196202700161060490123514788710666775716517892820956726832384773258177107962384524083230020878699599610290138116382740779249152453916129798779897023284511762335576612857741256098772444660436584694141096416218832846073994482883107510247609819367927223259473596172377512050972972922710463924680110670233990844000377353409939958788645502779129483426217086976060133853997409341401322790303338323352005245065097496037085271990749185017204281790523811504782091270632241970702954144943300188296455082081476743937382769677026325744377523484983117099602318915932629832890498305446936567013016328512351828542070664931437219138843479025272528104988265461661293002777496286772888552208694336597703415075671769033081581110516225085105964870606928315288187390562345208164863627729208806230794012492122986226974122211456328346378732437319665571780742667114599973721280712770970744855048176698744815337289598641320454904745008375239904451310349815238131289948778416582870860676346397971717307297394560891226737185066722603695057118699943523338600694362589999320533122021560581022917723709910963599285763932926579272279542569593903416598191761604081276319050047765570330013000484510822730605601041027061260318296333310086357113451140820188082620875799241163333125004255597303581040416070230760780754631047585575517266278430694705946874694800037153588612428184635604835701926710112314491942154779430880355130490012047145218005021704903574985851414946829545226845781126962168343312953857387409407166969539733214068017317046840374764475001675529451394673902387840295058053862047658688039373574111791011906507418888964290876942662464693538104234552859022411969496524467782649585423226528732607256172991453890724473381794561991559834250978662744566954173781749092030135152327249098816015273009021166743103060025704873629486130719737420607509117546200571769918300921312332949958720229377376813389168098306183527277341125927705583184413810984790356588870046269259792995686180451318013672783643845362822448539603463576477317705028966823877458641137625806765216816604058525986488681556479915409950199210203280791621040735413295879850749994214440052747768847243728082840448115606171685537099927111439056454129984951069854076900743531572179719680014991149891615617512035319350629187412169368375022469461976309241468673293243089790608231901210679903727885482945899801631028030994309346907760342920740365681721181707433787261915424048029729032652670170175309230968738257655566365076087855227116120385072699259586006674176391416275455302646737667634750456011749257044248497269299037597273084007666427302674060793610557311287527304718921575200723637995588518253308148030782521123293472412047338109201575980045201394459191072145040792929619616383502346993145622029569865108493657550351838744011583543894120230579686415929128181533622905544824790824759131154358353681362145669304588130865222389290206529387940753836441448612926021945923148706549922703997738068095767214705068220967445955413730561140451752099408640543441661272937789265788752687050934132678623183863720826455431480994732453453412975005151717412944408783368833882803635736827303333531671245801419385175517089904397302188161268072902148911015797750819853701285462618270937944682376556517280711815407921505245158467435551232330478316734068307744117335514701198940574401694500485797496042477863710754114308896966738913965144432553495681330823432945948439210948717328925882152133001907121174077068316766588598489041963683462609518701169022340112618553878497500921152547706635081704093127463468641345941957521842848980976250488182107325979603436210793126634493121777903471972392582442297897164769948497842223508421424366242216470167589647208859518274028143998664870681109914748525352441737114000715311509008379786728217573003127256047384816071667995748947572070021381313570747941460414290269955930655826979535471142588901338479266035003301069788732347471503616096218756808305637870865317271453611850359286700797482637885178454951535144932275946017852667291712923152262965319825068364030403796021887646170740652320539275517638421402321174203636539868472194369524529924746072056037788484524939867453568183023133017635325390181594247343795343205152869876046159792647017017643628601042454525054124591386919800568648630451078998557248906376645782281271279751351616929335413104848034607593151199626594545477642431018420497311450518665510667673404750863540293498801245108310319329493689979397931651507194818909399196572120735689460426678304457074714675780745012567961391282212047268003765139961221711593366080986255337011557552099641978107652156803100924834555386878535188572124502765517174192401094751969790797934210705346066138647674888139110261202325535293441161727581307146569576981146526613515451612338470405368910865715293336301994802647097782651076924142436889615374044266843130999962546072709523697025428252982552527060019746217105635357318459736939639510472303698079825499339335338240543167751527322507574947817194859031525796509315871942939520451715714013204205826462832734564649299155429076927442870214643241904145006166838743585844964964754298995303601919838346882811935975807021610742989660887071901741097589377980054178051596435481971626717631562848475567555765607909091204025017061646813196518609758445630621461721860476511947470248961425033001342347310703840045114436811583555335053610643630689522445935938320649629295607399237802217755735137558648310634598616491182432501133707610339849137759871557940764067416039212477907261882617967259715686888723285063118071891057549664174997740005167987930954326646649086725600798471140419521293294414685624099643778597062241437921786250980528737313894253543008644843204519888750752156166319578489113107573284592252475889283889720852763220380530989766613133170138551184050819817839072222103129433949592662442358554107181064409705833081889080259907660937514105301518048378231020237931851856168301443595794863219431452932292219766437600330229287929444287490290851002519540763323840970918999975859658190405967616823129847717670619259304545126252930135014827678823715040130926507672667844893142406088941517379781610426526331598204092337799335162360719548788759682676552937845538362616341466457454805700554562078627007554654128954848804450260365693185030629279488983980391752938353914154995522561846676191414560800231238035808644865217409497510853272666556368129591318756942576431259144955338783223138510665069547195801511949382149586267263240233704900073770690705780552471529191361091457630708250540434286818581991308962799566236912092114867206936515260082905314075380480793952953693224172187006833569113274807976249391233462574786509282134575100609960947313396836070690376159104668850024586941677756719145954503752283853984455089766794811695513359433338893500901471100861630908641358748511117637978471623939337746981054335951939671840542371526782665032211747401028806044934286708345385677432004261026805604789753311575645726419053305939283014944375999163768390920483931773829804469187865886386730804548073079937188004403832146382557340843503328719548776842324443153295026362443224140236144579523955136397777590120245381140646119992670815284277455620745424161675706188486921506294936488000613312556731258690571027277330192691028181299555269881317602648845391351085357184645829527160798804823020041196747778745611484954850752378794861588449403817786023986190662634886048370245902624259503905519055636460195293794530639088795539620230776673896018311764195176172673964483102344476887873709642420889209160331543069254437924804711862634145362688142785253642488980532531701885469636572729449424408414952866371233994775122929675450811513938112084682352219636646034336915825302243238039129742334116109287118922651494585621134833974706666981761570491179991894630832561172409680639400483280650422332953943118221154222195566468152343497894067400604657893033466041928962486009595859872762403113642044449858959853855438442056302459129994056492688949858577509043139312464026800803190442986893784363563940496900227934287073625564838078614132576426477627545898895410833761186372795121512951312842307489971674741123004407689411474882651769022246093048769219842385186191173948112495401670420432662285215896448315385977673432818589581694560417739601355192808714595060295184807512879182330552757010205121100236507090338469793434518666788633668853169130511323500528737921748039568674433309648041139353968227100774646712187221773547377009478219806978923106618166928733535581587395755258127742089288560713482931495452295267299906734783279258482275995771517961265485920989030905699272199306043378055663640641430302011125405601712292110424458981605056841516807090185590771850049076358296313516384608353137588113401217299170369796935139794470911139270504760615449318257379567416249427053597824011777371382632615954221991931861529199777744636404902977174682570672306748592034403944764278683491999106228650567851218695749412458310123634592607042326556098091041509455265343787474883334400054594181496258458696774352979108193969491975182391584592283377413840374050715233125688011508438415729733280554324815407295622015806015812303053478619528579754821431825117214450515936862877596947426932751087027478661857834937039293007100311519696642733472248245484719998105381586195740106888824190871757943684407387200140935928463469095723440278855413706795959413353214857011645833214830388664351153190539106045991929564144938423494394767728894250831980063422543446904390772138372037928477997685070470923199478794853832657477879904997380684175772486145722472120446095723537348772062099114510161883015068655928399843775726606451698029171468120943938992626794093227917390826077805675564079206227981583810691304218964276471017356102845924931055943830472333573352486567914568493463834558900552348865201804730061718619274085101183236210899530998794040449894649905844186952194972022964855344874582834946470485003852575996635363262040126233934407035909878543134173891650421457341343427880433250120439701509769600621192791139842910236195337411820705643249159716702339323146969699808122704493786026626774402762093519446137258299407433864896823577345566737605982551994375036858486456433404483105682885897741449412021268081302850891327609121532131685368722049066531151684031880525338937932863920154351465237404607437703795659271583299615947679616768183574037182826641209193805820656323033279525811542268113939772094003297602828669992847374340513769517027222409924774336647886040210309787528421299004904544543307719949507165804937350577844176750269476792409148534259905345169577162357187552588715593243918197739762470929110429135809710388041669995129728857298233600394967617381009049042934441950045224807870205350523763687442158048027616260451976334823651378474167148038425865177884878299044692964207458739075239430891268044477513113162182851112350652787769814208998079635451033940710673102466630811267368978499823505766264131718480128914960608076101070107598590547649034206942908067542206028720379009622083350958453040966546212757636953784429474666072401895157981338825482673516000747744075541404617623262552003318452003129027241498246483858548927902782879234004334305187141230658640740480924955826239802985691791708164999956431622929267022240667552934916778782416659612762537477677368868020862087896622328632312430737782165707169243056122713669300100472525341304676868771888325955406198039390751969061237174218077968127079566665380089063791486082216115863897626354851101353611370498356277588787153387096428622752875531190667741442057617691324945173805514051893361529984938305459463407526474611640077358653644084478141879072421645564335615147033880738395648425610631375200748872996527524275238252273874103769664698571405888856063590378856366580844724724917625572671197894742563283957868771150828922611014701785790336256536841078732277676912669665793738225257754515563360798584507017938248999473607456816860634999866003700512523203299371770644561294319893828514032788480590567349681039029171801690599477146075047113399425103674950719241161658207022882583511851664315608068439819722140533984508478934861400831793809339841084911811946780691830711042244926116358966638229057428713127106375100965625358251071589710822831260827985098115560134968084326726294475427998347419668329811121561135921440565729657538910898579906441374648852942554943545422746981678841548750916458220748695799336713097594732698605889642153199311975737877587366679961171428732761957048463552263746530453233460683709050909093384947417347825256187970396205564369774268174260931361884411307899719819342543263004939038132570379223806060075261437068782145310744402226948856344954185728567006857152591439167398339322737104045696558815125754446398211898121670706530333726820546783990064957980499173292841783812709920379884754852047478107224059672391808550105215909754730177171596448145662755933136164566575520345901980706868760157642453914650951411656140379586772919316825488289613044715643381067235406114416835088505034209862681370932634366723468981907429925884771354937040226307834748686150075704158366675684300836778489125304799717271222463057054684319264004717585053303857065220696144927048995215026123806037955610540161288059484221582376681879119714945637222906377417108967078362362357135053962900588435820602820722922766220845633602875540590101073645090457043088742573983034732004934552084264546253662619144585978661513493578582855383946161112691173750207600675504517436599998698777738922241987995865071321899515899747903625103568256717577866818467939256670365901892167347404823145256461711289642195186744422308746159252192206601914092472675301225496228501958720222648351326972671447085072694425372271371629104353561284774038200202380450925107809437369494458978106246533128620907332190491951292211179621446895097546542813004727244206551162581257505379917703329480863671587052696996038284334730935075208488748875775706408986076221528884500916723743645301200549749770040655574337277467291423303386002014178112106421651152764833602942796273591977704798103166659049683097048263700567704420800768760554023902174983842474834768552330864184698905370482726927269222848592448679419979955170977246669323261185417772324449078463491359742987752354911278257588956923241422754805283429168613271272866940049159157940700641447800653921497905067651269556554143350613967385944817100676265914416297530537863268352466464149140936778136210763189181352130593345437799687467686743191754157682053436648874855228966395827041373621588134344427465168358976365981843354517288829790112027048576150424882997887273189663048978688400319055973974487222758267789876996585549482077707370880058288072218694060263831026854051425620941091407613045033439542925281985134332095138117708565658509249858080718902331586068721613741649211222803928060511143764610537439385007312427211329188220124398220767576294341224215820445058568313434486831783160757753646052822352241291462684392017127267958648600022668880273203130386123475125365854241318137160994815361009390778984341587035241326181360926841761816811024771893322622914976711342988535964910462894890790418399132536302784077765579691666306899597690067356736829086910352517224631432839791457218811912300347712119627995219795231504937556389912362763602074271596939416272164095517071200176739214779074474095775661210409174293538119797309368848989167104471664493705401762627400914490549323220405718487942234553442725707785555514740206577291717751911592689793286218294199571525627506254156486398114324205325183950429135611809691966645512897656852255191211361948534696271953346064105619266254491551966684929665646780107288276396385138548524751249290849798025923876226276510670830798555761437670191022803374265659871306805722453412762855132259322568629409925931293754132822292699997402372893512502347043704424673425219558092787684148927999050136751921092754373417580667262593873487643292339195073394936118578062202570740652749344921316893470126620397619747012597885960607648983494403615813667256470550659192859142991126333869702156151850885375872987109551241507117787259971332360487795071008034918755898775114562297945432889155991262846370169704398127095183313105820322654036802197058605083100462794406313627562949014641946776757474051547354435326780676669824510152266494824205442193691262133869638137987392798538453680194056518708790204244260768026572917170780229103359317253414944833564288998800147480390700739725816613391184036315865942712008261549460754340883225520590227802155862483148217204454956534940468308779588415126919397414397912899352997913833882547254134522530589046209479791322272350067468292096641198935996028648438715605873152793598171082633125557411037648266779352822483877102308441208299262121543410717469054447296745831421667314392915838206254920367067346743219840678401403356663898473663223846391850301029358293017615591064005940506018575306567350515968560218571617724998910431767328659636507883054428095589553133171036804610457947032236144769892654965369756259975088739227404371303713058531146553450160877567914033255510312960087484055353656216199762434805061362175030039558457268291123813344531101961387171846590957770790902810654371060698747039882642616138372718644702630709834219154367159234410047110676931135535409923479690258255494521755351049994734358855066718952276140956714628638231827484616554300479895384764724880810597163948807764705942539712649471584550686013750307034626472286949953665524939873665112749875035647860113753194694735397267074113310364564047251654479123336629219210688960614179009590134953461383215351208563360810578324491745687304024888622044817160889600469624314879757503422974183492810583275000172901671851191109313124589474278895037541523365674600045508855610425459134963089507391863329544933036948226267662743504261956981251421626806070535372018944070129823586731985859817565125964352890517196394698502655509199639964989717521593867555882570439933273971958516995757618473246166552395750801951200294948141303596322385191820411392052999735277531162002936210398563015879510262054464271979854232183676887569673883492961555702500469740105419265069316293492126421590291928810348319895422547984282563893510843268917355584493636093329315103207989067087758295981981066172804485139270889581811750339205323802539532710826506564048331214057764594861169451389464250276423375101839029165810895938979720657017154390250898246090664642392496251288890325061887210020987923003224464506226652866932149401652538984812098092892348380789451061340319477419668614128175956504999810344818102744813215240706456657438849384671009002713220453241288715794988532876590686270124677141447739950755811068222563201390955654566883953683536191569008076879078629487740834877049230441154511048534987659144433452246620691516447912154836129083038954985875696332597385026430631677376919275869567726749339837574312447177660941558565814442744266763300387740138982881370491618956776965043707351885904430763384119156098998921367088115832215637655335209274659932817912561842999328988381939494175330114345728192795437912543658694277491097894986120861538392536451339444450478778458900998905036680619643085098994702623404897462904494901540033972511467280310286981772341265248968270068839845461197399401621909783192407002285694372533482872243695744571685601684364323636772637485778710602590814750285738269676286432014255856204770619285345704011149756022451292663996873166779224694166565107561261768875530239336610515284683813027146141759792184132733677503119429789450126204480870310533275725034848055512588353629105608732712414843684784354364227948722567446429393048193592353890066258401242016781617550725426776164244731366868125619907292263330278236248230780851366645500923171418582015931139365120804556062062063407142622276854135164605384255985179024913856111841715647868788781878002477207696947323217410995654343906194173134646054793503078958099381569154123596318302093127701252657118644767046698562919325512507098681531437021864954622665881809082319028334028713005818382635246103874091522086379906933956919697094796053385131226633225737281149393847634816879867481927276557125412357500539443103868546576320221691567127490617575013575192198519563931445667732591878522847636690284978245915861923872664556665137676446574570593753903131561106250573303924690163886692542438032478589557508839923149202376154578483839300948259052261346163942136665455592544424594114144641483124842193447830840223419781897163389130868122272432497009217633400148494257480733688332983385957226453995386215780313940631574202243834167322768476840499240963326755858220792388167247835395497136231418053024922705880460333144910139430659105257177564368766269645666948735749189240137154292051014470856245043037291540150822204955786460705052921344557924444204677987089917322467944523101977486526738958707014752195757095431709304094078104691675566058535526256015940772393601784141281959330726304734405173692401097801968804612991298496609728348826798291380325976221744825084120260983715994062439484802438257412499882351802252852134117264373521843121017794006657823701298580707841162245676323830888214411084351197247536397963061870389261662813691978852457825931015695031021363760315004256845689777303736684182104973995743735754104756182062132642436532962506581490074584437014946681258952327858016226715552128713487031183664178124902044239655241002204459486854680554279831997191943473133147919826583006905573240314678580916404193590871777411189874955914976986769727552013168790414198807509050048101073773651389968737794150759450436109125925129846277308420487648376867197648255789364665254147280316741686972418389521638597848783247638230992783663484774310426882700765257137294509921800318093461459083211790982258747411123581923331001932992087423636313940059784655720393383385209077329331888716801508678321889550379604753650012538954793848909145950252198205575635685815340341794933397369947643750220836421777364779519819880920309359486203161294670198292058602583213502005344274220624200270981544063364382682040194339825873083929384560762101429097340670837703254485970830282531196482942309458787455566329188746282078554808557820153646569274713640019274324606027525987535193629632028798238963043995308283647332386321026197649095250097094224151982148129876085125067879988980541833944650931760298234040011954500511644207896987223940042083216520127601501945189103997941917303652397576259212376708650619578213746736228293681771236412203255825887112233904870219936788259209520454260687799875729409949552919774747409510411957679379570196093249855202002834276211031152998467027792176081571840129697310339181127160920394242029966949502335537039329990341925317516166453806498543656257214745940955394701136750566010416946668485691224786484595222105143635019683264084992133733056882577061379548079285217623631342252294958432532913302416467758079209791984541789776525790292203654330786994148809805131000246791975295799622876304589059736948267740697428306001991407879868551370028268393693832393180618505048930137298376011381333374096632681263831044539614609119711219246874236808828056306418094165255517061807867167750446338715216119110696275414819560713889793581898883312590738868999847025898647423468494411621366715545145261812302105711879045157829659707552458679809799408584819621317801443735353355668690728698693613494792436288970923824212977490348277525840498634468828958603928434899253979076973766829516621741920340848589510136466956636628070810611850063899391175908080110310346485959353031982790782694614809325638991966470395095108384979605362471822846233143551366706389832681856225358372858504504741536572350582547304467971954313465296144472423411698331271874005610961679478660270435363043596524923968514796942328318946646788250109870891501946383579216327583610883913114158623491394678978860672226912104326667162358836911025281234517418786532197314338936967110905419295755596998693778840833773088528116233236662613081871125431426851510309772031202860410021456636881944629426529934092784251627882361204170636547556106124335529262278487233081192675311628979729445194334627170333574130411091682991369170432148192878594204944510191631325313682081206938655523824076993203572666225384777329743061214811926094820456212908833313776406733808395042044909982747613769717015866027864959794521722016373839398344967589018071001817132079445892074014172193045758230187511155392912442559805811747335474215225686377623385447482079087106644506493980691949826148869751281765982697005135709930732592662768000909098600274148628660650523520502519297800461280482681600507262890547134480820030778726405464008014317213388874310799390756589183828221337046993910733234820969438224381364545256546889203135196560955420720282851101927243294488358751245412352792795562745121161532149969807986854603114140949066797724521611624478838638842547001068897989789313744973509412127761944739637240698718469254347119741533068239366359500157052161509884020132568779927407075331869751084163621404588855233898086566495923391137615709017203931451476638632029966392828509798191792427733024232149818689097015946431334604958341586654488974942049664952688515694448773863316388311583007714036589969828531133666156792465609549764055564835688789999792386843495422940374389941658825931199283211322828950235125802984136337431078569536757175348672774182424475040037147810584599149030947027784522969357452962089294400579994671222390569486125779676958808713073341235989922215455594508779944863299063452529490385134469015953604681333107276487225928574511234668724007753816889408777545325426609498203278462814080355839647785144898124229526321983850299147108380705908111332886886854256704352375864506858504173341042278553238809311915787685189278516125262536290770449905652676628752306561678969418456460926436990130982974189910278760586421365628581368263637104802085859397427768705922772287586473446096305000740766347915833022879796979010857817371458942794738221758739333539650429651309974942226419544868443436360794250623494143125440909264891655738791596803121618620404526157974931135954918567826941605376657727536893610056852353230188165927012582655536951238681141203126573073544146404891961684259264450111762853358332325276925919890573516682913161091927899600415000091938783611397961292441330242197527984016804333634328731191856277450792629121735794383789599400972929355136895653725634272320182293934663359462979333491505047340812197788191483885302358060551449984907877267849777961090785045552117942604552626585003336508285704734419550226702378162689815792348854540251309828372470953979085428020721184115711270017478781160764367837502390736729297311978919110547699996988191325115166792568262580365147947349177524240530208896511401949480425640878755194298720035104193632989452645290387622240355190510790131273173383050262037317453740348869277760348632152747339132385525270351179727173733425570426037221395735343263647996861243159859371954154815211956286800073220103429128186608128113514194869285300752947548446052375987723458758665744570488676180443754142261228211361414210447485120999507717959895583947484112308350371308500403632510596435203977647774182132653521066035010266651251374246878988407489479474769572024024854399756219725046676377390140684891947442585838615943911453556969717642869023914865168967439130423271169058297797464133618904889175694552552430059620503564499751098548660326164882505201203251715081675143400393374118493684820093825497576618511296935626075359981820458456920778681960083784155921483349386451556885320168904926551050770659772867866631607960002446429440839303137705578823119735311059505485908052615169808931189547337976292167054746717952856011120840004893381287019000392182003332769181740248917631096170456249219884893259417061692372191058850126501992943545988852971596464457780489191886632192160267376389848141457555441744131878472457025607763562061048258227428638008795255096927379936007818450846814907143533571853435937771679350950927068162811751115581189281246547733638701824649346349773959637271031252887873017729286634686077509473357325414371973995888245379140986926120924164321704077253134851217544624197313603590474271900641576881802457532563600827876502193949539081995471528994547737388936283852690887050023490867667663516963226602264890584396391526848204422567561227698039210053633379654869335630730333795710326799461765236347745021647398079279864398353043747698238810989757417979693285308122201209162535123997251975016198520461108413178556095969694648771221374418690696578820485998733104593512450756172918254769817177356496496723871064360972885798982471907626442827139488815115592012057225664818953869715876146339395286330461976360030714316779547301183803817067338138325470339940351978252260743528058072166524644503380502476995306964245385799837664770590997043410485483051286378638272322049219167107720122710427227162292570403493436399333401142615042526515311868610683575544259879910547909265083663351993563202908859681015014757222203904484260471622738899827478468083634171356523922996493816793679640860205304988538393575114664940732896954228702709516080848813816116425412749016379836816660671521724277781956375079973768666255540732537145246266426167759132946158460537498061676335382685236914225178659600066532420849872145227826870549209492375588316274681253287074657798147863997209830821677041042607101086291765538079547272877506520993273850328010331640647103799720706518078977869174548726713522103984440836078819442523856010969456590892481801650434724994201393612458344819872596780019460603936499854814822577392394491209135526927357391516599725316404107263208175461896529790099141155322955879068994721984629119297631244855549801476387794722234812753641923716113062612023575905328283647783887411297368418439855196626723343212390422186221330396754823129675599969952553718653645059305332870939392787371649021490997101571058564355561215951068159688744921093112702099985872436937772149878202204057505763329959636693317630140226765168042517604591480597685290331367961793615753603803790595246382557372252724956238247087463289299200914327682414720366073672625466440396770945342623020204574887267698165712072797387764571719365946922432912999366961265314899061550588093240910272938670871930404539146451413234819170995070806510677109446681337708192671374790120287021727633974191630894341337121495789361668015914230894809163257517982461066080516016301036380116085600422065760780327197835415213158412789628105743067106936831671477832129025465244063436491128101964242753513875070338030192449565063026265379439629415113718128689932163110550942289991417637463047589540055977609925824798187621923971418253941515933787737711711136338401009618071303965594649523510113517378291659067112442900469792651305928002262962515970836649851644844800153085985857028108047670650339403692307242853168830539156930318226061560871964940221327941864699037099750014005291416855460093290821589793242923973974621403909010544510440903365925499071664743661661234482888106578092259754693474432868625547933613703348062881863364364433794513437918725120402691186821926787609222224611815731617748093835868327109743718483731878945182029243597488004553078871039077758086310326301986192008555936166267099780791606404876528943826646724515214754587645471737859591248723548173825508845577068672458969825685966354494327382746117083420006241410723578123134459095310633647277622389407424361315306370143550825050747626286303282864300904029312902656618539932312588803935561982582813606978530945601278504437838329151900373641866134399059720541627343571144975511489778682141562522433276920763289850107082163403866221199668999818760239027193799266420691677289013503921833698510749253799720055146481742311805123442362356446683930836799375112407000590999582152141106750750384201044539200747118896032588548982521404832934725788190939115346641612007499401589708983006303583721309701054039123939015582655993194784764461461919003905150350673359766171663217025427608280034603535015953266671566208152584529351827970417583789027864481971098914558539615590463019293062071244994840164710925247444144667490523177247853755045738522306433754856483455385929255892560358208116135957802855007900578743634854253896129005716797380560672560850982014040790517993120444557750142574726508548662598057587570385858880180528805959618441608487542525059382578074881263398078686959060476526655541376992268695754868015929209510590444270588785916193149133901469388499714167224599785823930993136087984837097879204302104588100849582434110980193562925989052468156642068609797938224231819671472899400468112984107084023176144851570727987066438051449479060744028246366896042585606979188039315322160254380226104839273340773189797503196426976034480353938397341103790149610326043254087968866914156429531346284662228740670362049406952649705692730689734363990053023508811275998493547909932155162206150019505453404659603028004335549892389622999406095823398523306837848130963767543011553407239306529318601708967473136250920792177586689005922320829959183578899522193852251589484531551181059407669465708888650267270365732281959980555222587871937632585428274971786064785911496745660256846195676073902249335346731029698832495432231810056870171418160741681529917089450526912550819951641747217821423741041667482442431653908721255339247893168088963675380813343216627198871964003986997015669304807720914069070543055238751650755140012655180908320642327055397884616502056346055580076215663987423343609102990054205584184198677227454481487598999945522379062095000164037540321803406437904664124916185627583616467926803517334169525679047590017365599009751880194604731636314220063999523580425448262338589445397567738092833066943882829468701402641385570848546732554269963293109680595075335832405847359489939363021074955506101828139171995614566916436511707580364262219551198721839654655782380315488675742445122153269538962216537359146812194742273636049554675850912830065527314056387828403964379457617308347572204774775915419944642702009118609637365730830534176413995353619494983496513000510155357678237668804797950196796452056248621359380165360701581699348616834868779829165694576897940996899518526727045465092435869878670290716438658959998577987685266820456651144889293356544334300985254753388764743670337689581860687606426579247349592720870365096792217118092808161655745079985624253471092805862805573112437897365836889553331382307799150116076101116865429068057229720955310946325244376874211278867238545550603591559920426262951437018480659522919882956350665591554547451639156302613450488260640448050867585591233156762876742439391183860621909364200898168563797504629391992404703232675658558971583676134380781171519201755201012070129585247932826922969164871740657560677360379440571093340380455124021441780987095403432935829532487102476312283979123508482937056611120040104126231134798306233174535461406972585831707612735095832859299854437171203052857603703945722541009259158502777262705130178852711050773191779997851995097597650430931813325418240926203388893134653352811215148559623466425494077991364780122052679935966900104152753622274674570224563428571410622292583451463876069201280552368334026087267702885454465841398692751816208878474019583025567656425329990916021217077984009847865770592736908084572338381273682833634470647090862995197257098144261657768909913272795369374708304785981269844186284955763885650981884806455551036440009170408830262495107988778354180500256497469818207984564600294477446123873392118220669185244575757189247744071520853462846133758646854872026284400520709764400885440503841647503512382247610662710534442312865926455362641683068657437656363459704431887918457219870424744261419104666199793739608431323046840262223659139891607724544556625584572337445913330754591489432639277347492363805542165371434286604255180371271940326602918418629241765981058091182267793471637620061779014683988247475472000399791919960568196304881293958921345827116335439666315171013224089130877733393908439185276530642630984160900368724084456241198051146152208933927364147016681839604387017228455818162593060317781988058042777225253024339680932627989217925670473466114170566080654517411637719795100983902638848109754504895607893588488676752159717677773457564096543520144513465386172045017369861454970928573112823802577140795185745289846200094862548246024990649438940196642118907291735474923699979353849904457749052152184017897162354878366284836025941919327558352051951363749542613465448638712846790064567007806125948262138912834998412294443149399951623195311017688274605173644529567371487277757749074876731190956064341264400273800811714325510978958084594327147129239951655952431094448686321169150150856640685462660602871863436210607835723673619669128701096623758723988597111264882914863801527191444616055618162232780935819329643785660092243105355511176096413190708784163412976224281491003221906221281774742565866277369812970336362660970175851406015597066733895818148805999670861797052851561480454528246162787934962565121377053458070619514953147206098240685198054074996826692711946715918935012506821194601855210532952624770237795087186673353652728822363492209270803850804247356569281463249893135396160284428120834991579494970793149048109344945666653383330374413345501744981275359545661755816100871838730348776407377184894848555953014368452657795907231799589320208858966308500982302389474480784174998051850070433142933576488999318752795095195470339992381532012725167158164149111703704675417674768361022200881730357396894568497393475912297284626235169104785382284219524122512012815449864054061763662920837140765087394298389990675448760518905284293446734981245583902366486978468549126105479981532454469911421023381779273181195008130524001823767309518107066088914537130216764467642741683246889015182824071222474787629565959369434919442163744829747246304997082265784173853425064276723277446367347288855856675044540123791625877787531075321177698822896657410988092094694858445188428359547492276225062366455357190805767930771440377416406657909760579146459895277226894876512142252956194543505431587371424164155647691448787085242805334168663206401767777441504308434067202242332699988436183254713852315274789355556361859810474405570433635891801066786616277484569788397438670817052469827119181291624934025166734154875433878604119740880616960455999566464029808689659808829122558726428795182077158303089472620479545148863174332752509261018702423135851545871156976727054578690862768222789091473559447087716135340508590393458725795272612426224995131262437846364332181927020944279371409862889903662090248597277910958061784257985184873752524400977702340385859891751772698744007205087041840399079867441244947715888177790358085018667144138264048850408429328036031235531517402716053802356445139206637866390028798039402537700983277712025406276475554244641335470746305806646098810607497757748260997203240568279609669242874126771878239860065926766156642868481445254838339222793692869629571025198509168372493808813491335762918803858772907824909272205394760681289593150246802645536857522580210258699557559558628112056796866984655932784812591935394754472620161093085240662424106324190194579481445530654974344504651063272479881800818122021606712887094803374229691547657118896603537444189842322852104592296993474124976643961138944103897313550672315120724917798969276154706263403629460381951182690389235576933551597896393552066919881088510822429250820315074242914784064167927692073004220624758226395250754248995663129762163474004111700834655372121153845797925218350172906593847068036670520160901927855981179717318635094730833906899878474557022124874999651648884875316499150433370305644319580192139111482140611542622794988927752055518308796052572611238208841214021395386899678049819674341712679886451708108025131972814916559284362126786275318989976566218830882611642069386262314803866406215866305666031461511077877443800030692317943757931213485149959293829677986334312054481984109506027441714223196941117419219697075513841167000219091195586539503277202818973839462239704452650548306455473632794838803257086576529958286415301210170866612283433623744316503012939280477935151356248419426778542541962722091065240530075181751630309321817297782415716274285695682751204551075828217492719154031268654410844683322495521959759769954781267283638420235915568491375611041132609088023189333434542526135607473162263861575931651007846547164609337977114041927536657242239847667587176926464777371905686510302109206823740436134269580313881746347448066159745711888663431894791280406781406793973809528208540875112364163343330395540782399236491495977098790742939933010630937641525797036944204992689583987443754285710532318812294122521031627849332373576797145277218278021804466863947932410113596498659750824063577873143600807258943348219112539329151878457723932493974910366003676229677561018868055578393743268500630276854303200618323799126726892663484938288920127747834435090143625252257597518698933265615104380642102789656558289857163710146387191858768763914371111073260146073774723927413506217747563954934513849916258641035376288520665611659748248733646439794189437611539307313777080471036210028231374756478932905589832073845007644523666569319097267315430927206845576379160638528483395028270169014778317118298200997545759288912056801450573993230744256691731278328537513763600846740049895392245698934874250161391538877336066038798284829872594264435011297284506497985591621262458020196675427282654251893881098738870986679018851669811435195451305177043146204776313330816663870871046927656142036192719749234324080662749303306363059075117765687264974521975932672989716961910075859761970943918719035199807460552986394492560820182446315043869326918008365737469983411503596798920388376148524595405330058580976379812701002487114409583074379906702870366361131692906812327910915433445342969109227438490907574520937890692333443002011090120709856019812794462935754474832825569547624755927689131221717512987483652633341297651587761412561898149774653948464119256622911294149104686996486669730977808378707464823376463930005545260630613428049988841626334209175163704485780018200105556689296685617390746033165667090890052693549301257809673058454104882248677822323333734416622456346641968313898623102855193672413575026730062479512411969588780364617886379575220431199261445308292546336897985659931261656413297189422235925039730857795723863447741136491036891070766580668286054572162561504732482504460301889240422874346659927506158877262592534272483675071836929294847720246608309418430004954702105239060829656166435434079368390423606765120716096937795443456162654002995780930791390718841085228384925102593929723469802728718505290170414553853871115623242026297769404896951485488689864761805651030593364784329108654373880339371744403860788029935535112581545438768384163643402300673462035122980533503357636761592053626977505217815918232102772155656472382037275167043901092491237617267932779181688880768924249897650352066344654120035914990987108211061875309029074258959155555798416864519598607758846525078913442507336565652627479045335454979369709748694202761843576812220224315004508929441020416757451288496627434409536073512966415242129050842484395116011517159221083664900144726779231536508748083100242665651090912092460890900380750314122402075180668300966745857830130870476779524784963254994769619799132141236889412165707839767802938840540561374784071349948030743600478602892765283334344472688637915807956791286328694857759110405943645290001599519187031261876975078792628942573269440652873617161367163935003659808376688846839763636286947029337028370117926234602476871509730840982476356609863922280036937167143536069602830366453445210655721395378776491879585183183924981426567963872382937629935461089494560449083409274724081077127833734048120398895534565803125776666758833586829642867887738675216961953600345974958859623000229706480233787888734829852618910383840532116495558655273854776458962368183890436263470752732586320653947777094685681046984003204158305245851272205792160227752491168887841220440499627985648489164081196138290077895214101609819118785758207879233800358147982244009577024360168657265065597858494942373808633509823265032695065750548757932077742371941667703302822854693937752972725049486000148966466134496333905127725734617218262990880774778606208474694103756749650589232209249774304776160617826238934541470062807560512096884473984005166619356918667611850925274802087590497522732835342230056764776999736651812169371736531633885858306393939690881145918807936785684995163812831120597706815647713852907940085081670706372254464932273118179388738778731723747407138770423804035815320524903651539220331618424109688078122758150567288513202165052728060259231339661092372026255602482708959341485905065864361950618314220904349547917968409888339062729530405170671175831518257316986248976105232917229552761799895889816056172205400958083942238125051665696408771438765035291592978140492329727643014239121996220950534255825808758128757526631017015085948813343378347738104700230254650934307881423157220194800566296811081943032992160285028102035676421212081951596272404059277797071699946151944202941314074796811310461643606819044418403737405490453931067982960630362705406702264083171562661175062224541099509390862166925192677472358109375095135027602283788305590074220461249388983661604151708421764590016286090812452688207861043820428694612040479028697399292270825682188157502946089432894172296559609327661132472599295856700113741414550060653262821966818709369675660352217423734455188227761882901124215858675957668323918193556902494986410003884145742212514723250585017011381428994323166592733917025891908566250508419582253272764069957877260593775572014389769448901508097249100059941250576433604735976770030147350778365986983366253729095302773370872125349235253494585715721477136939571919945407693109689013256731113772951907797898816932875660685036121642336798207044755042907809679668306349083198190394003694946018537640823000747430567282641346052306492908701135887401276674096211344325553735961560726542433934850162730820152405553384822328455423884178021886843309383278426435652420377294040016060994769005093288063003149536668039853495641925844969268968141524864180429553577869608684773369676498981817911399845286777908452383145467704195219993533200935468685589421100950626743033984364615818060665138597969447612229804908979960447560851572765679603595997478342358878458172472908479448412828608454959446224797825564910525177752662605168737227081733383546982163015728762520914041857631873388169960018341729731026250173070758551599818620712933712532795634488771339136978107483131586300572080567069071183685158844213726055397016455426127740864529780645499820639862214331906164964613199086922504934774429602921279450970217585246608680693594181219394526406210842203908130493568929189919407138860104849909619066452060144745576539947344352651297247841382484607518909824708315743491001421943803546109571398453686797221610718257362805545252187171631557508905467828422771127169128050898945216149777636929507710924864578336447322737899187523753716773226331483661305466942725785183964333538096759175592395285614534496793744769427554175562588615291888097855862820995662956538747269038990905248466364393608349150443477892399198176274021592295303621977526970838376593068935088715990280161129789138124490495973629066796252668476742417339130803110693754182941381706968066908796503898591902579729910224586728767271036881147508037058071602990428335920537950645716332159364306183918226266118858893465630467254866173351467827985883040712427298979459488346721339255484600292762392684052517784484948898373266894316582382216958061834169235160201669838120071077021459325270086208761891481922546967071341610665475025831465468012569170958177133581292743414650026065145607416484349190925228997533999139618033152056532320425864744057492275563799025370985881872296606934674921173169415001894597761086707575042691257957128828182561860108322752404025240216130639046013491395753370513493698674356255449320961037327742418627272921074915139744315961933948062229676652855030621061488965245141347626690971736837157511667842500944378133505223840636076855124928194515700213731900805181336067692034889530314912333624465973017907852159099285280393123292899493098018600215609883420531899295408610874071596317709874251102368521088348530195481961560692608827508550643621673980959317300716152709801736499320446434324542815037981853272744760175358696224836482059238146922977912420070982842371691962293765500274294882905602066438122253807326805771937347501345344665334963469976104552080010519612637744797992913504846224235808979394509021141509305756401772026972045803231759701938367492307498178469251491823294398758709044168543125874093750576029701984519043503550272854184421156964318897711571736315962999800981524190259025699271565889997405653479430077523041708698551965141650917026989016505514340739436628781514901519900255998187007083098693534075467760239253490950573279494159087812753231181970218231446584110581924868340054845518302293687407215578550170789972524149444783261646083420229577983182494124141777447918004331150295341253629491167466825870813697405450010408317101454949418940141969868201589793337686354715985705545823137459960354837720085161972006698996091901871614964161896324938807367053705057658029168614447832881387124857810240903954447702973627323199578925880571816999286188393009710336263586350651394744185054990683292394858545976930371559016609302295079587878656985299471874260865670985608100693979368604172376887873478795955237157830365311911107572918344045168730956022800202935376107793738200772872012848542240376429164591768642447408769831137146599012623238635864771717411132304353329182054973327635135050572191879229415822075934025767218853192075683803482583601546166844129644687617401022003391371485484624558127277397051578874656205163887143920846254411993607752699897217702349157053796410146696941681572518276530895504716846132366619431094880192926006810207319754414777224853553094632961013688514281722937346129374139866787462418740388612818933159991408372005541724528697016936397116986960850197766164932580524548250057095892311814966194689689462970684339994249565507597006369529755569653509744836219078386227740792646040180644442899796678468853781459903501268221948034660258940717714303600448651330659058836600996128489180744079913570944379425724198719577120588677455730002730030993641485062697764846986975266422191334057385641801762575557177953936283156012294477403969564036386029784411309247293394784418558954472761129598023451318459549718680591062277390689429527447062440222067666525121101792714490741373366575374867045426757019344933907423556971452998819268095886369284362591835681688743922911080210421961468342007946440195747948434072155080453696958986588511522427613886926408924389177432547289046817451945130949125367487180929458982962451167808110067220534204059435397860937031714429019534404057278142109366476000324955309142863176141846005162024084454640308810989519244390836596525132410317396001850675758131794182421322892272598915329122796088422238872207303744575459960629764952998400765374865084556439874500877224900692294037009924819633752390640632692841315537837569388419955112389699783885658197147757959689982865770311047325560978961768561132129977021803454896349917108609483366963044528289730464414056199343085543501608631773386924382449200567599603063679543312130242334349488341493590103804633599977840521147859160577031006045686634562650400172148113803553757434163837343827465601355088052563658942575979220372479532617328916590306849963833043634065084803544146596989045623259825571807373555256583168807537733685769205180062846626563360512720202702094352463986585931123492263132196919350245543677788169553830655827084476460656512582764321061071118088009583617634863008309577715675544586731878792801496051736999797927479388176476182958737027058471417963943517167813403083355969047317818541011115734544175450495716064259563254339467635018684676762469257293781745254472977142812220315265563137059600129329344820555736728413412213199363654270748297608149349187059095677988905680065918425693857680762097706476702663090622123413513030374423197675474606320309417006025201205436791734728896404859849725859832192203347817235249718043710932150862092293133543281654430316189815930375700171974948642963127115364641904343012970641932545848195719451539174704638996657572492186504139640603993629882607115944221964236070124847851181865995354313508477890456256864976310612345196916058148905406674723541744204244593912031110790101984062077945509721112078858192925852226866685537745319422791218574847123089595860595206191014964247269684857174474395302365060112718461129049383798587143281943920487223174569406011901414974554500143344215966470341667635024968704502562966635111883784569514658608202043783611241626772184055294782879833139281262230687178733278574123180116944390894553633976635454195147473142375463713483281977046730960088304993971561707886851384595875744323264646108860595771751487698703080736419563533799613783768050079214466662384270419534502250225717678862642953363063392499707127568368260513899893923815502619461844592963304970917650043906864429114552057700087766319417664143184036508845651190295276924076914040458942980669220239767905563320502454182224746950685670829772043748704067613124119299588452174455067761675386795896798062863653814697535015371526969121469691343880588105607811992847234668729937222380571205684761403669321649426059177065396963865889206950420228867167900557000084722010715244841124935571651460555562679339817520963875238760949683531015439733442744395502870907230477284116397130797952610866689748634783545783352195223718283012611104728074372465505674925691026206281000729349208406565659566820816411697172045053002527923576942537897982796543247683521155462196099714401117754288640779237086224434196339530000594698328008879528581848734996329632101096250839741735694188293171493087688043388631625246381288396554198230902351322664834763827347680997699290541904499373338619919978107993995281443704953256390681993084098674115013940116222656832045039636635443814632488976422741919807311886212070134914352161028552725037143065686120369203331228106735268966883056799227148203524850032927629389817238357026100204567812041786083075565124320015371012885129831302231603654180410453793924500135412687714697011377094356900391138647032792376524394853401573055817913123027676552506929405386884684367753474279722122495053271532086898766791999639992166380414582211308355604274071434430356087673922258417777223472641155778143813995547427350245562746945024803662061570248853555035683199623406369767644082955057482598322654739143944083606889691791794564299636848963779241755990709980195477202927505663604273398858499935105781490081789779325203519849779810248451747777593856269520942347309708007450895404866619019069084160272905489225670854992468472876620205648362864015425019027874320433912829800719765032769892273581686144120481071954387112309167135133816301436201970820775908380285866648613851610414215807219327750234300743177524883828087028578369759247686961754238317847378598177759716600889805107347210394435265366383278016467365139742625853380706022623846282020404377233502381569837067626912815512451992046851669288843259160450845042530550795789072856970654749513148844599992399200589501458930045562023375670354708962429044008657375584932390945295880875427769702654505554229443280092427982038092010145752778290644613907676870588399182045416138978442628237700840134313979672925412305377151823062656117086470912868334399407094694005904218019382444270601842215760031913313605507655186269974508571184242038398969531856262552011744082247712708228776614559203228235685963295935288574343458942230732409587606898809794281764524916048829571387426723368399884770819885192230744970441006016565314788186932040167253683675917969950490649370721290563813665211131642164057530406653238941712415336387124881541850696370709684956267618139985713968810385661491646271962078886490963601727815363425380850181104090891575590804919088719184053252462417866998876163145174577695810140141537563108253010645125199634389290502966052931736909530526430462378939802489525661334933735372829389761330791689350083388649827185663357134907120793934308882587282413007480361867128341352614111733081847548905530808655983928887681511036455687654769848913400846510871675260074619036242546638010136767905252905012546317102574914461494175938811516884310667795662771816100971700879589686833821315309381878658850681856985931339454755936316962534093147331524031955857241114487039939875574060066837712660240652968899389106716935093861751071403305979820370523419895300951812779808835982144615751192599227486664935871168781828286435354301677776716954703588574652727717641527453630410796184570138234349478757402502691615439033112366877322340552268193514280943222592989539881945844803896875662006740410964588171048075996953963809523511847316853938742890606168552743976916629202900515068940929899519719705260618587111266019213005186881059798463376055767197198480769135422350002740378440183956345190613151092407712203132821679342778301174400959771391548052236026537493397452371879906751321791737130059349054155723347650195529219847015209136870769488124036538125279055500281640081092325272345640965952434103139484938992823660975708755832371767200278919439566754222044625018726104927034089228521737144347481994196950317165022528483886394677291753455239665373545167404955953990659899747823859629089302031361005892967129366840175822729317714806936541111246047732407605058833662332107505703239429519121366137557116088292872178404355919107445145360652869203567639973306512092087639852270012058841868007879686635980316431427263613850608206808156186619551654536048915392902721526021968596714420813859887067900606019780062313008549477170111161114466193549408029459247078911703985790403042502227887178843765437900076525791139193807312466366238342815811721640686750760151432900289438763409034815690974479469342937388037360718102546299238650655236520169838196884960150073281482333794084389067283671348037151966731737240007014958556841510895775794661861948535564530826974574020823981853135950227189110928657180995724155765397666179697253530482386679741217130632209173645396164669012324961914010367959895148656255351851207196897047022393448920487653122302386367777568946876362746870840796407642571841774091386422006687025543556017745025728304957097293055828037936768792221190049503978775141475151514988852432242365560887408601959631582383960811152431749865682675578132518954465192572145149269281943793895041507011455118550499459377423621186651385395514665570763868869837601424060263362079266045659000189941010771909126923872927980374673457893708906415836114707090392489416692972589318016855413464065359729276698335992175223530173476930010960701541074811617272853898490961428006065307952170667998067878430414572666183169850628057345419335145541088683489420379124750738267286242872502808784226506336822669840864067855545102425524183617940677847911285771603651261613157504215916975505837146513199123319718572876824046855849913314138375195962464568354043869459084937618435595153645937103134239977645978676946911317652616827425499432358437939385878398631086849415091909280677949342030840553972714762995282193054367569896418877984456102924974544773891033730259991595707379648938235545061738735200544374017279443297601519197652087019256920042155881656283966855893149408707230960720266937124184668785107964342209105618326474139149634755890222514600975452305021866131718339279468988852776614067969143917823885597100023016780627682731283862559351656786433527219883892336024265185598312689452141477973737089687528387225811478420368578523316725565858408158487116114891711462494951058197094281240925797769936786741531321562347230740472960314123664917395695890443324934987606171588697449349457540379258486452942120449255906481984775021944216345277702158119798197255226721206376570010981630210026781170551938906659345982739922869817362899419720406812996689260826733203019322166166104551721649643372016504406526420296454896208518950918840049556797528829596008285767545647041096786296478781770230877737271269130207929141560869588100072997751857650607315040559489391094123611379907131436654374848845851477276325432064663463815808404829764322205635572330753214955932003955879980280528537556630169346720598036558255955680896310893017017390205037144732935551145054202393997748094644874015586758285793878040361709055033787593116990049392434682951430105484511959473849934693133114634452990483745609943178739978422917069838833985316260501043761904727623123775340671959099963177489390547468762162318284988047061575681370737980239196302324036629177685170137684468679914257011481775554167139703415934572653535687086312179876168214502051209642231919588357886009912528461074385937588024542652855183416360592244567548398631366257923174730361078152727426369459210641072481163235953983827341720924656934022278399370087909683023495722467347582932432251908487217356876932079789319267060057412167594146548300450517949681682453856048178368506525625427897477303201091188886390524039160689943433561950639957236593373169151616560936136258270565229892304867916771174369292252113549690270184961984662047706830530519870004775683240126628417890733307351587636171672191216415276379016677173950975152427274031534630465624608642993730782856580511281259551750849641676635384312888859603464884297948750553113031145020240775628191694504097585802387863667677072774612239746095607115279131513367863955663546740931235960385462283572439464930522047703875050329764338811093969141293030345719492218640273338375175599079648437988154802946880212436359250478774470790915825973726959777198657391572371353032896285849041995393351458832219414931092373851887101496895395066275815746117120623645866610969769484926844899290276198424496011592812565684043602765064110076464692268941166088330680555672362295526536407355596237110475916976386128772254799769748290765350264684424535510564835978681924531458730282448125896785170547338860420919662043936620848758485382693423511210504362437902558826922090123857202260425404885302020243690582668875435514815945519207249383198004421397442490840107922775107069132632970543126411878317700930123659179728198043715005214991176924218588578241898789998341899586981682034048556935215615900303713821630012567812098021036084451889945276088332097554807610957407481585256676686846684970607272876325697034214850386541968611687247525665439690393790152551295332110824108734053242573578467657172037856696408607381904085779493038803427726793751630143742962806172700042005652861255138444009464668865294475073857391049314485249277018558680799727063745832933509141664312022845108708603306622298568531038935845375310375504258506624719264287513326633335731888718428637535056595315932200282564465561075079932733864866543599919187583723134895821499025541404812422642261236932197868115655991689213550536961971575783205224138594152551542692853519421123972469067472617370854484325502474592556265440257249229764891629677705184898650762731002613363907296888410906286514028265953143983480443985818752739326578907482272866632292685216268766669394139161799642297503267479356895691844935219147807572525315069544155185509748953841801305759098104435466142604566534734444123983105665453949093389278164053677730789284378553228895322837628483782320351450422923964490819311306779427034935422172847867294594938208470059375990692471795779629798070534685656768189384574644934828258685515416123359323551213408763621046698491382766370101020390220101939510120250083626221953784188521227906502848021132963344995913390711637675260261947385498149486637900311213661363399452707562480779358017667516211699289620798306248551745636970316187815066013104650547103082246138551917228101518649071273648740729750417764597957564132138614863101195995923464993899754794145322779329852480868275275481057148525458354933341397303932049965354682929224159972419999905263791328520067963342303566933791187212138127031070061561027862838562204818046161582438357059191219977423263704174958281517102274205385749368825569613257154011045650663502654441157970005060254997383042664039159196064931217902271951942671238752360983316882112913078190214179047161526300770006480810502942196085542307745441697711425066230639653683295250534228317998650880910758807848831157126679370358225278131220980446180097388659456397418313762270019296396989976197943600161080112504700865305903613870451060914808475014527845248199274376034323120064336532755544995130340692499731196586363038070171846966465286353757148287181646558888500696473256838663457617471256860791549301593871073125263313778547224788878228784567047878699893416429175832723832459219167441942912100823727646109211061145467398848244534286454429717141738542053089599156976244648247123852711583334180232359864205140436773546205318764434802089781629358814224675071805227854603608559674585421448964003987083771931791476522494445207205062716846483218428987153875302035009345821623668209254446624858282566649955278634107671130384165680238604223632899802585770122228967746921219495025115986434167389202959751143298774645864751929775089283803107196588452442631466545497251856196954976570167090324481539960602617166309126968353087398024525315069900676640837479909810474759273958768130601124966656820900992838007896267806373576474226958608645984564558715802219983428250312453244862954468464037852956567071203427053141995086881536846695458043890382228010261161208627132892246254952927495031779275174792107708311113410498314424563056067708398134348862532500249042846631761362548698003250557115367049326131875826964578229939903504046541667041606885444576660776595069597446676272159414014300055953614323127564836547225266516357118193910712251649266258567012097445007984544280895059207544742579841363069757375395488204284236347948860625028653017641660953074091985110735322195507506362459918688713174489356688677090284435379834088226116054319835813466898379300409735790772399460413124361356583597492679805050449355015683142460624074571782084619539321727705721517873548401725138801019716032791133834898606812580772565474626349094717439310148202589868607879520346242020537502774750065180470441646772943635991949689520309363619931154512834529751266433687813951187672721707706163240063422867815482263407936022968501441204630053348242419330734256092868083732738930804305070078048573791773006270157180461055958801323537688412378515275514650752077608676290827036090436629969459961796137031342676267202966771275239896219138689377878224581637795493047447575395530018352921673202633056837370052793101967267048701760720448126446279990944507174972413134106049298768705219534886730177731576672752750509424268843665309627352342723603326896035930337431237699749602236622499210173164337474457903298310947630706388373877476542353496167767852385025801311575751008015309569124443609912148857235781899087285460913185015947020964521802580794104422727314914277313999879913692361770767606556128596364168902381188782976779009828005475154497045756551221476043629628934889884507041950600831582990352836140771108874606567541154979502931957055142544832872848471731915248642133932956607038025131683809852936190144309931190823535077714962089444548831838038037135420908272335335177087589142467185544093463375039896432109482471322394981724375694578659749893139133307628446639417827478751821212621964695324286604701568700490511448789855510787041833008029526597539062611340344162131765222071105968741487204964729142868083901360384570035543959103148585420235825367804318484334609041093893463092494658584640586983547948685596585860405971882599338069689201549267458290194807860224885373932599415660354665902039886461733459261356550132062183043170157299353856542976025354886257588596291434960468783012504478446527489161500896018958184716501456881432152277898425688309359715524268540264795861199188287621755072193501824780115005769973579260994152304400816465567434922545183555854048080652299403709562727827494332542827516129952174109804758439268480070052601441469764348989142665569692272593382851000281697120968478140012919260694252227321832099949468745028034598786384739596546412082436068084699576051952490927088111147880903417358071022133227075559072383750819316107899956661409059073353386650747842159713215873314487633156751022127935058978376521611516417601967008471959233581570200115945157206466136289809276654056101339320474872584888223919191825805637736952073282954169983864288407886537328465298081053934174024452571386101687115676276522698665052784617028994727705793039801365638423057521654690797080310016032981466878708898511439501061921351893490014380124584959927306309490496783136656981714153534515262373675831264140499439423586504278226890571623922808420162627430696704981155537707031789449681531244117256673276290324979813903344774425486788518409438675655736719421899585092477787540521309143302271600952067497784504729403523951064081452478795164734772069963713306011322553939302443288127333286391306791744222446654324945777201568575856397095283177432387152403640119935999562299446562087563166410684009845159847042144074588474528734700370158986993524614101111077857646735677412392341473259262935416952921165367942912363907068305649477903051927519420761888991485607222295339708651623148315831806221502842538747506305612439544529320935615727911510802956926716918775694370952193094194796180893733435403302544974343376692064731436707849080473527232026438558210721722264140206073242058331830688650238226936932939191320510767794426610254161850209952413323809741225282368074399255472001857860482653778200574058515883056404981899869569587996969422749840642374762456588172138527702461278784036892081339990356607583102458603855607065029234341749824855525878899898985013228442470169084728427080158645788267602337589391700104110702965098417467682085594409428352582754274651895832736503978114669188490596401525768059843195418682288989649330338585763011780742394542100433632932437792231933019295959157305853626206234853615567171587710926853474475586068150349708548446041271286927848861081512945349264917515226594312155170067813026883009635902083226691276751719316196431790979539235354965898623015810806288503062088404465121355738039150557484179556609355177442198376388308786387734761191173811165301281175875763809082337477019924590758120107226774965680900859769497472934618552485048003818544345734283435368155031596015530344471865794219731196822092759856712005690276071216510081207563299218976440487926181788188143724349520384545248669186077734123043697828082169085938075080340884362105831558969173641329557673770964542683952253438954898664855445869999530769912660618393599530103252815762975801820254666356632847183355385181759342501700611514372845747884794686755827813719512044803567848326846018804285688688935440855732624162360970081296936615297788614495677012337852478336683881224654171616419974974942266704838872950056478623739100903421667641552418887421436704883349463260453471535813135914809236139695459512718683561272007782936241968477986751048677878208276526425632488370675439469104736020544824039544133790594505627232997297220018169127497557592775015631165433033669157813645799048456158172369586073776507639995978830692294254655468794541968300445590700283287739249618929706409848289897116001433414995957419167627290552564213153684633895627555768324633849278568040297732836497053636251009789294127974001694647704576320333874698869524520255173768156663371476585141200067085773757831503397755249324213010035288019236964309139213730719437598366155110162735982588372020089439217912790239012463498600755593254976466009288280831612351197873428738680690784496759780322845129694762022503905239287039237847883755745497589127194521276470127587366730581397249256200536393477541454400296023924502726832824155032858873695513172065018931701587700514880214428309285275401749985470768222552813716084224212231606599418107308650575852544154641026256944716725862713170947953338881334003772147689759718781268535758035009643905881629661228097891926008416029891125600172805134108373036584816536954125584077537473826627050905437212327836564707107321086348020462993307835778155615173884955497738890656768304855240506370572536038018683191381021848450614609150232888056907861557944868079006937024615169543844352619825607258046667364224107734150088518605384071523868266631084143861815546030601924719286168896979014317008954195369421852774274372246448925712242564587722197769522879080267628576739867192565963875762055244507617309180376007032847887878304885107148780130246576549727036163310712388189001075523553987481595383296602570791785524187689599404153011656862148942910657351966791212094566009438490778663468225739886288415975714690474350536446574861928412865462443381626539405610063855731933060021758243784847737994256173374535599247040949800550842195163065614923395864565716417294388472902929482432747323532184093151062846664888406716318774133632797689812043313871245272762725366514804594572964240296020160497800533011683459028053078334760772378908347421882829453182027449458656928615725560476542437519689396000423455352835396386767379746901556086590350339258201536128166998159008302950692470532032973150510271403108829679910711490507322786505778067952648357900616373638411399615263942512167747424603106897971097477107223134568003646080043817966265893676673744638715640764858166892629215153285039967986000232673218174992995562346682417006100552351206936728765467039127251671880577996661270392892819885391523719186235327458895956609486852336192216151002573032803294427179848360705419958725753124158126840291227395976352425730731699826721909598655458864248570246033863702358686759795976162441732638087982589131194743251077602706584620414365840564518752917675069876091753998775762600706390107320223160621894507628698490778081762412945459050355323862974675137254515834866903616810493471436400246336986804872358489310664084799351922467109406472102868428607458970077894706158447957673376539057554834050734985097457639427063347377063120399593681127814985346978434865991866025624631189772210001866409145747684366770206570157584561262461854554332466724631769257768967041605889665455694863291870082462449712469500911489885005402745353288614207285458957343162199091020302891479071146222176056357714218635359225107227840060802889397337344245411354994179053917862378816647619816684667028276368617295963119611403378355510075291897748724204563243479017818422093639307580971739074261182995076307066087599968463261648625549308441945597508922119413675719354505495854617205203494923386529432032117641446846420989203003321694380643037613477522229551856830247944065743485149906990121112239863144190612543939381254701654553582732575751577631060845256100754990705818330893985491357824380792220233515762093326532508864102762740678231124930369862719469931395082117735298667044085730008672326806061183350412063047993417879907701421877691745224897453012357939133926103641115449318533336452098742643586022966251438176068112719840945106383147729651974964134306696955547490869474903637864653660805975876733795287833722245517720787789777252091454598143625551672112238330329624181518826243287600334567082689057704697525380110147687582611081702130283009607046222855925585009847192346485334019604982390005104798200500737178397713954302138203266691958449146017615338220622210042508023303514008340863732760706426490664403368059681021641937136370839001911975518053634891463462016164998100236337198359654890105810436954603050149391912490297860441279191200822650056638590183760379716926666715979393304904544650874970885702112183230710597063220616320122810776890780665594944997446089793146528652544994764664710240888097470508974489537380576309845372119500019375398703922100429715882970168578709271619634229539388633194593825047994766270018420024622135222226130057426063689622211797110550153223169339296167965817114095841732259950557473612890230239214328503203477767426891319913583739941443938349216974148690357871535370550969808254948470267333440791899669488668839838818602073877150728765144747962181439969902262269760621748183923931251750792584527896607505402997194616095121879080622465791652904540034448356026209596960358177329832537236329533581300992491996804853147613732439733031251971675739113530042100392476785973614991417631657133432319902098629985841030010549870995191512855925763559861742815120779686810957279856390808199504677124235152793892782136260077344976904156499257806242931701204975695516606091709052441670040051950071054892645671177934491822286376699573045175184575324140932277353994937684407371651864357618642527488957114941302338663141730838592156541167484399559677777786458468333677036420630560521044718238988740023942529847663298685110768834810481974775942980405118781203130113677848773852285180789299540270685145683144651983476269639219127515626692719001538088516222235080041537337688753064499479206932909231965454514809081339361426238983467879132592497981997164808007277997577153771245869012269473574512300643534471274309628722772030709966484831975756679702116852946414024603461265664872018453244044192247238005097442432646230146811331053034855387350921525481943680160924189858289649943561787994648836325917650591490866562116547094897355895900333734424755999805531127607776598337824806834815873593638692307449710738531749537251203482590797504124157756467511398333888523874146061811746094696615798921003353647209458261873929250100454452936361238572270822374039922614400101242719333885011205764224525935096127202840609300823091678421388341231428182301457041152876037778704360324554492889800222940491558679269844667617786239454466997677549045876277801864198204208095697705266037873968781981822523527497420792070072476644167800797298465962519434507185392653922203092602790974660864354808471350065112206163347405871874405067753051952109324244919356743554561352413048801679532816757229060692144056967303295691425142015767810217049616566540374716720822800570002553533123392358324681492670278025417806248871426648018452622093358136195476010331053940641093988612636909478275743529946329599558420650371483057657753679800268752317180581566733379439708636297252495374411483694012478337058004190454374255157051321095963283037202984524923097417693004988825282785509755583174883749604957141489300504560982054795365329270872857510581819388406905533787786285539812485252785910413486266457485786219167921437330083279382184268988070520709711154948561092256691316820456662863095293262480545611523438297207245520978615293418365668105137636953310279685117408515668555187502573484990478292908783798582062796479715647724318999758013468254310642972472300261468188721801567058940856748921300999979926706630621550121868199877642247197279461058207417905094914047566473696064796775802349067670029169127263488512045951362001912160716903552223485380399176954575563346518936197697922309147691801695295219483311431522253670624324665736965189272716584294475233951605228367011578143574755312351819991261394258446637562916137044555429118793225315918867970178174861120826991391021864353315455368741815423651549558444629303543632747201087328099645334120883705033205713508303739271066757711008881898169793578678357641099913019616023466162015548064487276430074495413111334486898465737937877375813346448501774192499427876649806166820293706196520136467124769157254013001942819254608806748535823095792732216921703979054805199918900931429729530312109945739553301191866763481163109459035432289001287079107886217316800865490140391032001116258738741366858127530303292219930088601179951529739455923364124023058238042915080190289584862801086213610614445459623472417848170646352519513888238650852277614031428612290569838659994211337033523023406129570088258525839293346903351863613799874278142311371856373924510297622959125352232774742805074301282032784845389675377075336425813024523303262332690152310251420531593337901118458253935556160309878112373787068392073476885251288269462264913376644847351638237077306158364613886873390180499661722543967988884496870725372222310485002333477325028461696978544530841485443633995924015827805610956954515462732781504474850184566104904454157075436202440137955739317116711559420445944195721338863126714454385873026394842604967537251687248236733117691099072493405183038660174089682594002800478312377085812436417687379305351694263155614733612755894851259232916088428259508454961340125372992745513554400305503837982703747811761498527143793853421786822443250622007759225642831904685553947734116772302327030915530768732432228779953746750282726507507189525393039747505545225777098815661870788567704892741652708599804955648310981260641982094582899088146134351829403630923618717986435348597162089218469810042626062614396217917511089588156966969457149067170954710989368184309318319617564430918333214786983327518412192458104271888079307848832507870605023156822935146616910710959160410108671003179884123754080458526764356636856296694725368527083241493942865652079646557209975061787935102598632295597999828306067341660781532395107079724138572199296797181979286455778840782465266355707672001458487879828229062054504259253522359531329468648575951049967710154387473172800334280871690547654458413195826786704077898700514717599680536059400306803137873760555250624007876674801448227311066538457116818046387115769053601902763064680423007675023794846273963399685561917441062372163233997662024126133282371461498963977850909772426991752610782162274503225839733143908199578570570959515006468808879343392148544370120968187737446881260040702453740957451475135127114453698215182523106828121790915986478833182616094894296332297863847171196728143640847965960131562849381937343830871803929189449988804700590043898464280963473268392449031770537355631694211112855510775755683492108232009343242673540963023947427168188286504526854212002040121549156288348565190797642076814148188755270116127006015226260309285406103542731819463661124104446519009372723311419408371482052322097916606161873197540907638388036302500199155719629892529177430061712962578110458152656067399597955527135720129754208464688893604244565248566778983964244196261511944630084767187471969420057199210836827184820502301503951154214027958863225809843460175903815110964991184318470001889819905904156166922170828806190699394500561731259205284392644826987900718831850603261569764353864808533163509414646356588519559509247963575815516037822077965128301163320733550751722870513767498399831164661255298867395285850021552680120725740086444443771751780251035838247662299595365640885234819678739433608673293158678656225253663191412096932073788137842170990170796158009246949856088998552747328080253912770032839873221458639760643577676601007048772274076016077714847895042243602956443928337178377076114881822223726299752304512485982803468987727295619261294521534189383564284182128182324267739275831793157478164014726719407846917462728334980958964669263669620983456102874181694088589669519838498945941571151292801618196184165645206194373193815559644657712323392442646218587523402267215351838696366786144925326517498255304529136331133729220705610690343705234358341671774555946566555997175566849369291081109577427115106260479303040951793312023290209177684453673572339244699198334182127740353269429419250504876524448040426369541713901290338046893059289631918689180504965822508042991798588890640010450940022808663557039374635258646272533281519983730382782643485137626756381107539613212814106058661277077768763988756760044853559405381641778361498288184383651912623536752031338392991176788724150763245376497035760784462578641804070689007624488389152450750405917815135773432130260799648743155391481521199761630371606540831869119485637137951265200560914192382862816756314994429394998364949605486953384921078321996074829064786149679874627713374602993357728794255552227862962525187950222775365453946205385784936548661004981923893726459477607682021349481881900007805963900197306858913590055232768162516725051918539732902976347116748030124841198255167215161435562614694049738707219133129899430626018617771671842681718516797524666777629894660447785350053420516938093100390729663499527613496629983652358518040181702645904823615557515149173996790437545075830215539312106144550870625812549674135378736695635514996394026196762474445085483043511656232211736024341875531892500081092080168288100660056999477198884152391990755408238379877008425286862710836497750280299667897068552872285314885413591972105867847203832544023155637310295937688339451301799439858439635976274050430636448711992009910417831964521970075952893106528689596418865545627208545944903999463303122158804732865260843658545928191939485874970088786473952208782052568412985004332819584756008194493283526062264464757205367281600595477766220373736792032858411711527072420271094744316313587490456044540161596987548053914997758973621588450631652291423882223150000755032072323206359900221680020390624728388470897401640810512562827909592847673343346139853681023739239521672876556215517603084200311234618757058844712245192696508263363764007689213262411265127305570920360415409652497969183192178335511739994524551764146497914628122808727875015372799702251660725382630212547542236177619461004320098917628297802540021445743209136350384149958815247206218434774297905876466575003140484080939786254458792622342414493662488310579588671571063595726443911130503014311511279796924131547962553815362156621312834201378243088864649394885460758209744954102319007282815703991748026534869461771065097176295441072439851115191005705561882252539579956561037557034766628214122916417791002959284855184948402724655661776334779868420719726708095115760543842071831281045222875467004381475775418567422745938696999477086943862243123927564716216069333417238806614009218268946100370890438572422093342045768616331785323847346105029023200939234040210257480511843951583810854816655853778519095508255457953118457517820410318853159725965049761990130604866309291713032839094621829874780472709414578301645362892372142518547389420053791988918126187248012029549716746181532750411811944663224984458579381767688223216360069447476937270842271975483968271344164671453001860398990887866386434059294220286417778142677943959553485500179010044296019313212137023623941299298513325466941903616269258831828448678897400818230429100292118073654110172343831862382409687760187660168444233336554742872917235502171134462068437587240869777784879291188245721082931133358813950679076324184491424137146733113632405697708232769355117858888068374139030185346686366161398253615863308302515970347083230227679749246699900078615729604420477592606378361624181996794026497540670839976726412553650010193619349948421061004142624573935305858263908524576416463117263062981677313774632234364332690266172245467354758283596894352086071894384315277009408968378936471754779305595425686234634882087234631848066213498278371254174848284324754131456251513969874049152118306982583895625824788981657958031820095936856373155000222637694194126723322737891289188450887482877828509523069080671965067825026721747352194743877796853187131079852374602274262983525917762385170396700825588268125942799353108181838745674313685052114894725546325998395219450496885201905953617484562733863329792721876426796534125663891931271322559264730912287591967608719998374770192726390706506879058563000926833576118227423145464081268758617857157401193255269277345707377079716785284295230456584516689300815286995788053261936413917803534543576040321475591675320183422292652748587353920389542781874708456003219041187981366133811136672155301245898841572122793385226507089295602976571674423585140279985612647654582184883061719689045080524777832311965498840356502897697141499274585970528010581020740762628803214067273697633597158876219621434618109023788540793386828565505222626117355370144265221514776601829488121414518698572936542257833374629249388673899188462147192230790831061832677754419246268716970370812226308773116202194191696801132143459093718104351207448483164249428844422077948273756603382335516741683456508260991809003401870014819357574141774586647910566349510830706478015482535973568715920370846022347328163819543856426472948488899343314928718619953357864113963831212253184829405032504936551499773978216810241483182217170219802797174654667500448878945433794611982754400332573207032651808700090929585648587490805827118366694708426518097080060795856117702533517076954600506748509052793711300102092751513616087107705907800308629891377430527959136934281619629585898720449088936390178847762477009339410805344443220331174554137341107840903257521066251207360964828371164509258269600963833383953698102758989375671579670825840024974999255212187876775683617266711348725526027946099255542741139157167223264542357687499787103293453449766827114386253671187688113201164317973219183303143514903161401172390919432393375493524005521469492135111507837068540587567425559068380709063746988182439158495322540083093999878037823272131875740829340225350859021883599985797174574031952582160715288896756462297376967632472750702494807068588332023629581703099953194524457915940426520350385172330692516265269482864008851036567675078513682034335076065575230573752998749178318807416378922187549701228941198627443756946742156012806027364802646074887849546618936134725396765899792459886885684339298161607361805229688677291162943744943549704797132574632343612022309141646537467192647691646677870326431795822179523562392992538987792385962894737877976111015059498810333547715794518631435379207923543958747340156090281839957387053201084487643924394386650355323680083765342135082904992025203415345770049320811024749862784460908007269962594393616044913021382318204801303197636225787983190550970459497542115305817629334820066071176305598910751082567696457945768562831815974317349165113528421584116931978809320822987435313870864716917231788130081918515931300970721312629415643892636210051840205516628878875240892120780256974478609097852093084775827466368677672190812121540739427879051299087392056406140786641400012287265591507755447013028347716893564775201713523488927826132768063501110456796791968852536032205647190390803053361363023423419072704274761974495511555382317948414093200757908662699772400151278750710814235322724641183664518872511193231598066340731570439430413294954997468789693389834400220028154660687562079426327505447155725426395336270031467108843885882177587287995660189226724690598825388992787443552848444953975766890721064379171996422904542412053714876062510503649074591619953022114998900080089377171981263515021813406162599329577090832115732237383111429973477293945817088502501185052530186870675236301978242471518784679104951143935449893541708608991995461862849609038921734437966004072455333480897440070554726647695606907057806009148691245765998615288715616700763816620659700614272816575430155000190003015445629824948233671590430334166444218839223817809191688805778752727241245690703871912819725204930960770782511118933615641082080154680884726709901421463241834010748405725369099812498455883978011256285541405555480132791112412106136291404264648658707244762389179352123559862483741295764724526828970814868091433471811572942080277764383328204044638162569978117662298502435909019283953026645827519086707095936439627264598242221963551902737404427182536340571010329299827243069134299718256613366097647723121695880855627795904352520186381037091468035299273394061937676086625268632345988020828019218656586522263316433671933603557121006248367769284120176091383662965873747895361535727774793412024218958828132416681790636860898001109154121841509656242576899875353768974058037105353410943023382532604787612800263631901982813741294784261839582365561021372114866502973962860939484351729494599289255300521749329701510610482431791493657302931982945838858147619098120383496613552384463945619824865471359229987436702687963482061770204876481665884458841507932867355020903869593391995633919759829243952513104815145465323816701796697469298546508599869499081468010378090335922101223203680268557142867211106529651129229598925725984898313750831045007611335544034742130065987015025824536258714959521878816368273531336417453268812353970811457559599879977460190869595501918311517941848031360298302335358784276774649187063490897056042639684616694821383303568980899925563940602262101607192489032197082707137593648584102934955948938085008490036150965898913315106927706187626711403508133442207423619886271414261148779583024624767959413539562276900152529951832020492989234322977480330906635340275663108684084915783690416880431992096384815918512650010220650449731358788877813989443373643724048563022700633501892451145117403515242616736439316475258850310128568593071065586893993714023575585887237631267564119739306875205126830619328129264407381948799101295251825667506858293567459508594228030189178444692941472149531275342087976443678764343890216644574695783978853142768756375921040307768802745725333465520603487983900873687640432630542441128971776285754210717568834605166473338966148407976298906591536114540045841274754446369098586677849578129513876377397098770188093536422455817706415365960361517201761586231714438843735923480986922681741785613097454352339067269181605508281728992195658601284550428379995802190604457454738324176554233276529573131165828061475999335167412452337759685694028163174510210989262967300077136017116454953371914807964080574710582261895450782511236152187939815546365973460442762942005636014904870461601756620810733225991333726067053862107806148551292565990478122615721546981515808993734758654440783282025998730472732100317158290939860037305992548541077053788888776858437632423009575174480747080620496853218479177037559498560718914352140972704707319198067178861441574372865068299880038435890488477192812436614886497295217309579693070762603711536436202620900930865523450989468309571518879710988439495016373046604373933393399522031535016314202763938058297762986843852270614357880869297090486143823392775531829604994351438517729734532281629953091732401778275247490842752735207978210550570045451167370627263282771363435097517114018839867818792733882731684465377032780524607919868077076472576097130497300638695231376983633837616781282438402765595561272756098941989747123854577531040732946935948708432581649711607010925290174658871741037650258575841936926335879706649363863623454056240380989087943839096646005165794739013178715792403707495983968737680747587229484368541946736958124137803713325012388411584634476360042395247032743150105801250786685662726903961714628866283481161691347619673164258547934391133818372950065886360334179569795400654262690405635375794623301187542850694586985473152515049557121487387034145669280152286219732888397243467702454066454915930023492388746400829466723666456006115299717809427919462404553657860294352379464641392652046564514269329706694833135691813822181688475790219859696853874787693475208817683532849605757450859254099746241164584064896382595512722038791099345698974448222116673887818455421297472450340704306142757544672596223786680274629028932921075016777640804419502601676036065633038780882526338932675880659599985240651943909585340980963217177732982844954752159261509110794059280139641155862304045611222649490713352405350624749682323637606634129454767125657422887654545562325402009319365288903919433515962266577933694005260380477067781148194166100203389086701572515081353736120929426335603158776363666616791055894530533210241351330460530599786206350533073429101903167477084572171284205775241688848447523221504614679900580951175275718172894056235932044807702036308660326335388620869474022165764137372572619119015781025128539663847117370797817842787425932554459393750432792039483984817307400759558373682639204166777467668790018905437411799542417707325221039365106491065707506921474465019751104155555281234749315222727997776402086328663067624851312461130215358660654396281456454402531494172056132449706484561961511052804800303976010506806771360251952569158563909062235095731259429233525998982550437171756657623826434749802936670718577480027910533207755806980697969110725693979870985388982459897574148689001635183268265175313846621298771615439406625005547066499714462543647659632628313461854988310492741999376124433511887897406376373111476547025805336069676066590387847244846048141043619484406481841028843718245323892675133964468366435123914908760075309074351679508583511908868368621106777866859415149102835008866136737197147473192665957632428101058339548808222525219868794785507474897651041981593779922323589461288111729608715082320847574158866563536098078637274545628377098655197626777449096303767908363697126271635383035581547101441405031690656816035282347578308089482350712864715636671299572940784112862883513032876213421570874416542749469218478406514745616988960059546646273054494945292501856747784620351809034958199838878623883638428805019537034575914478691822761245088888838313289198197745215301680878329269435490484360035492548481312078293093022363932828351687028379868550736062033860988082727451749468897882651616450546380495150051797072992691505138853998515900228330509358473111876204191880573470397059675334166343638064319151157585630179836691716127464139629106229734701959259895803271194296910911772344241221427146220943684112289907393342353592106446692188858125689735679891544031745044093511526737446799863104980063369952453786212860208430242069931620961035655695082708860579298655225651194819485377991889825595113785763407238774624676098785547381340958732162795977981829331616703172080441087846569485578688467414438074556030312272325720435056554505946812715548161253528583381861946424054760754963361745879898375905508426052356501421220746903268606663011194737585347810141831616668582706198653345134066903350487122925185953364327369651891033730051853612548241535838322464147918483919338595682828355707068693388239194278403034167329100768274850709248723212734180328715694724001714024074857805330718795011655543042660474442048569990990803234722369258546453596054471578198006544297849586133626225091595560674038259080806849618969342441964124434336649020967860332408224040469736530554916743616398457506150271564398546954113888978431269462200982283620616325585238565596675531224095012058333696158677659567304629891522073786741536356275705578294588607499835516607406573038740067264753892587089637109870197264226831174471941149666286116223472098364173111910930933155877599657329492102830027398735503390633935204032165305808065459083042408992628354366784370816265012771654653081718413985832304640925861624589606174248466392521905421591862888568767286260053035731038459973636807578897277301837324284201764263568429477269821900831428120234709635675862108089491739557296238837107450166949096263461549838506823395092108030343479363597276375546822394085361787550433346330063484232962512912042974107116014989103516369119568768671069464782249706546777354301715681270030202568158789694405481689049180821702547398884847781021955296417308156611543417642261817334809366058189208926566452489583069842186289453692840767711275605572132788196847944557968312364636929502304370128660708882225034326008914065122109703227819593840717190285804294624014201798106435345116987512702681071677614477411184361968621936311793254476201625377842322657692322972462255129957750758813031322541278787069396558144506089266993828207233888668751604514374896077611256815830734140155415770697878976441446532173678180707844318473431114921238383837957134867039132124088671004587444075529169733201453314531719810424666011812857138737094536483129365300582433511592452517351451434414009963501594786592748414964819161871194460947729092668717362687857089716018046302369679918029133729626726168475338889004447196890117024079566797987893776091567469367389945664586936147764817817674352105058226639178423219907143161130909636497239121839710383322456730988937443965488427045093814668812682326696586656487850471784045254596422554410470263469519699769772727301339288999508208235582391790610565568924913956793934763587250121233515068862708782864865635732108510098313683475942632358681624515304326725542857081518958187233517624694713966965248735291580639660155758640391394391074996718241302127151485095950428446320734034111499362077315346760600209821882370763339216687006248192754257623819736137743683994672373314021619689530289004820653893357574926216511481004449298640508193882131095721328665623125943991959874190022189884705982465772721314539266860395592973579812278088352985870608593243933688330573075808785433381665637938686175980301208606578514807506587861623249754366453474373253771353384677958398895662957160317460394721688208881958393134431684814097927571553953392295352329477820567197415467006697171439822691914297551322520635918317514509671784707031085238846477427671918295049676946175054895393797863320905932474352867488815326547528372686069458247157457234071915979713951137341431360198483607732897395873598343400135114542078831805480588727968222740823005987044761722608751194232855961325866490833773218241380268626467780500411697328681391050082507096695221821370657894138656333673017336424767120215865308105664004534943447493850025454757946725349226799447378637000693711102048664845697427228470678304483256613214668171256618483132430687585563527018001474024569353499649425105494532646822126946037328300905903220164988892133351825101785213024264271456378243695617160795616903399292135774102938564611205703234508743937931255121987041978414852742251738142539191354186747316785962691340279329846942451804241904402312543586382085761661797990291769410046712213952877644009571503071472369657113986322177310171511118753909732556445450500151302698295534848397522522010690878453532052987972608004383657974220800545983036799136234411490947490908419871915179084011429260530336718297503889481613912557421069417744165116877492287875667194548716122847414553074328677592839570071894953052501173938030795549177708192788084480785379754369385778449088808288710315433243152398325206562621254174863862459135719736189958496074530253145119729999613368408445733237009415510260965973308023993451479639063650650480177263427039045165290594399523752964779453736806329257542104092356591169433251468622679789724553474772628031714809944186754687163982318639280160102270370468313211040588497442433123767516407117813517950849223028986300848687877043635792901408418243121657324321248318584394167047823417319839580517570969262122470127010565375949708003504848336654947170541872513950853782066401615657678456241388397030406376515269230286059117563523428405054926203611351889820098813627678165851038673410156964933258708685751400111772841995625119072362092502549325147914044216518617727222356321832075843509536954251484949667693566173923292019084738909927872433121216478923598866419862405006163626182769275367011341250573044914823108372800184959937869680925653591664888940635202801417673044679623283318506832168316298896253562661521286159565242996361888607429117776264694322695948743464648437455399719484417239149081739935179604492007734693613794345182900980025038529508653611771330029590984170454283608316819660252904498406118177898737196035059793965948677058344330492393709191251487194301716854771535668866503222194117506678758317888140884405626503069979088646837143632292958777472937526603010788133104366631281748829569268594294505777943866462019216260614578301012737712880902373207013820760218913138992194348825705482484415380582099010281548890060410251556772623028489603942579556034321186189874347943953557630058966736665775624271571563635467052584859937123632253691456269064942343014423551327565889898403026744843371712000169044328349058123566473514370363692786002875862524418698201952499918721755650794397567853244602541923938961519228512888363280497685490147242617351201957659092988952711453543402812861742971643725147854899654974399820847488255437584006282730831075449752285484042611100082381627354300481041470349942087123276941020015300973894380835801705072510222353429925140741769910625350703057534166816725422968502234169012736130582030649971720729702624921649643696778008317839113629039005470253350997957074576638517143579422123584661707540323915366847121604554766457181909504229329672502599845223560850096516363864087777161232991213807918140181357336404688107083664488868333440844348803639021079965129355408520442412526812438800348937161824809521724029940920520859526763885132768487126718225852464452124591412975787753875152498306421067857522078943018406429473254186888760600407147266481689390688339531418233497750285152342134636183656965729571159491354349963919268777947533274365134568746684148351307148864194120931025807160335649503790775307497930606561251995059575445959377745131803998961391549680786948991244428856165588692661986195474404781358106005501372234677894284884133664321714628073362410386417718527181242091710074123408858613674845955218322163564829540084561455686203754246324473519014847510880436144040559453603456910372543999013673116607158780222069947995927220458230235696361683447232287820770864051573402426939368547304335920391168756317896314572096745995844591831798378867205199840811399586782124259511701722593077989964626155470501230521686562483688797138103391357025149805829011408716384932107611394410008312088526304349244087649981076633317768353966276524806737029032614835794118039172251467759024238181088205134757830764409411356070189509367915154050556989886513862507237945616040613612710012780932144890044899953760581190982004714833369501852491696662912076617246762255963928737543285238843946302480286930821138182248286338731373233551603039911645649537548347679853784666988160184055088931174983790425098201312634018931877287674865012957393316619593062393557263544110305986248312721717806577490588321606319246713369422512474779629674817447998656124673418984182232150867019933160798628219241362185067976314414181065776313825213443462213107066410815924152753066507936164735793829538598985548831195643457828432459196087317181763814986578599116616264282055916805151368951852267400442137243900792152349719507246591388736071705252319722178531089867002280138854850820087056713993482329317989018898900263065991125613434770049940802628885511449380226715783023350846574729920784954196482157272352985013696402965993055960394923836667861823060655580693258896907340199528341470450176385604698447485211774943341081188526339644822654357268485954841757252653504877615780631621640386505476080383580455858677946593807952840245439658919644645157676885354003088381440436735180349359403495003969714662497047865055194722922868827351224886369378381354854910767020635565841134568660445956916475910367969490234120440909581151231088240527286964648116885417347210038208548829848338403335009106066509234390665459061119114405913908012739797569874384706391443182845384010335671733799368424991347737058166703786717418597808116385973696542590002720523079375790914442552907457866075626890532344904606207694854535092830589089442016742707698453250502709154456619391007422391581399341995914060582246357145503791851135109273149948454530539911958169457783989001537164421803583155297226708899241667444499330767996026556406820365254252523589599826995760956076662079472934183174376699321340816445008528570092605753335109389442818374617685115333979135287878499966862819279252289455505908851929638737154364630719571984694950845692535250560606275877639269486489707369985953690849185038781587579608182091086818882666539169251471323760334260937050588641804767021594256532763297272266483450553795869220644582235048615335058822930578898400746956007034040744004259519874543083642951634340205639837012952021388595450522187472314839040730318297516004461298384897557269604275525416147497277108278875994399713959327606867429389049393501274630444817940337860819082677985479610969233141485005929112891588285222336325387692379399300013741439174651478669992755168793194773606491972717182584183671344101690160357664585707560405372684150797354455246620829998829263364568710382070041413118525187099140887834321071710048030576433575879004705153534603730429163136965994436820328847893153659922569879030574061352537827969374420507228038558335254961974226714047982083966218892187378167557596101034316527363738792406915951133795330883162885030096974392460719578431169061220884453120115139658844352334741621583801210164619415025319228669115952963398520478628644412193339450495567956293292884933469344578791771028921419540129408041315860552704564073794595375301976459118208999060369250271318824392569988911197524498282479114690182038753461381669089237303112015550861200435760707146839738676079573727909444442925543110298710787958494647079884075165470678448238652083990433159949029320589699885709329752544934328256497596850276429721760778833008975376258934941240697678152671911685870265015317636525581133974453127923395995819375490055003883537163279121357157827229878415842071864748523611455337813008607230347864934051809050093989244996664409888491678682380850728513706812819626778052892972697040920643370097406494894827769594417562136383060659514289563375448730102282777467421670187818540980271583319373907000633228254176106184051169921401976792422468706156234999509189087375461303789858156953377249784279269049743452804188454831252150636707440218716316554718102177488854918081081607682095424259418519631560702965514775100297970031746406766465105253179875657330592975109600459644864460092326186331930521497552314682795879533825411050723791611240187024134099231049579379434890387910544322583680399021042838809934207322682120535076173601672150947811098112988479577003908768419983236686236407645984819315506261374306061914994974601969636936861340628408506791285747211769657609557652556803655930763645662178221836932315849289110019984146911646181982145797835527189914723142280106510389019588620450210028873341343095535247509438141414014930993409818516170306420067347319471744266809476855455266476281362729922697981913905489464394959236393665979868827577360330192612454019658109812748751445956425499622035039241481999225784680048662634176077218321849920514110366384940288939374400217096689499412294247254049768063368595399634948744480992525309365290248873333146945846543688532150370844046877272058721793515180530378738847459632294322003511163842612150778790076669379256772998828631017207749283865158420583056710086503891255860157398046961688867052426436748092347736774185214411554371064920550006137272678669202049172549664892234994896087994372120370341092553291619966063127579080463879624698718681394438447816557094641369965602301563718461615525765849779953792369356551740737268089003685511118096879200356204582302403554290151453351266348311791936785189923877190041661575887231405024475149956145789357005486715849317896705922537116900709846384766873725137915612611216107551355429861038636553313480110969190913857026391436424639038524109605293937963944437244372166843304787000101472316652403557731130216156845107398189583696599354758071823159901120395427492688184767475751448291669039846389441787407121821074393442148904893381464419781489613351984598733939532688646436576906455175251697716006804315472998746566403371728495234955392539321966021436492507186196229921227223900455631844865037406797788111812614977425049440659069373582197968449944945580108623312170271334082482853275676205874947087258098275842014090949091505083674433927279140077647090209845425821580323423443287455380784220376510883775270367783374831759064098287105180138493630628637558349787232568968720179299693427660400223784561789742284057892781155459234249849081609579395256345545996774189469383243540714620747434790332954267679850961216231795991244192871695435908397523936170288164161201608642989801495060976065120746883437057707501931931924142831183281517553946928330857236863292043165581676669352062006338542512746005354136397650963965774412942070056463274301555970839966923970326174166422265410630534618063439692309821264130372242517556180824545833939793276027274969690781960407444154516062691304479869062894366081434434679088397822698908239262246067345782463079703543456435264251981997598288152658559358355386029971104325961431781342185515351201305975316192111082642453460125393102257978541195479493299926250883206786962108809268739301792120987647143166769384390534672174730533076703991787624165156056370179548719429216186597758672535154194623209710403133800204913595647992693238969868140210251536623126225265779429617709198068731747624310698871470445917574080543131132372050020229678848988906024345715866039019784520956732951043305015830758397604423111311650848803189097952304835244264237089977749977304753388268594571356114471033019115868884254090821669899123198824524879169509192035823685067137383674841444162675195750099414743301933549783477820194720708204588020123574463662048685870082787283331220487637684479267825583145162773560779678448834876175756324199037748285872359741185195798505784720018565089606691465658159483606984479363167594074317681204456718901204626947898553164027825625500856971365956044534552500761132837769212279412880233235506411441839434890346213475140158659866255053108226992149077491459236580849471096494614731113656075836557750715916168678418316184479978066829993282941086091016044499415229728716604874129475881307819787393445327106664075078978626917272379796129886059073772249843111796493312465053457579182452381760621939043568380688727474476729488783844985939243442559816175487025544681132565103877596930916079119262775423553225683198703315322012930824244992735147112385079885775604009281725366543580951271207974074961930489894712691157528059560437013018911229094811605845720451756790126758236155078298969487299193591350549886570112999454837755778541786125618295866039668403067096548529369067680449208371092264803706525232347481118389963117176924792084315906094683208919900429006759070366101981424634008897280041212050601935288690641556727575621981995205361169350757096383790238582203351490219942854522122175652354129141129990597682821339802080073867653237592665909180488624985114941794662046905823709413480933012938481023161758726577516412745230162024438333614903887035874614922865572647999536910730409634531688492095165858666030007015885033891972298604762832517748349863763480979983599111279207751852961009252559763656448714513878828738359268308410326162859191863242265436687825647547369181441802157128814117436250456632224473058978897429596098471440934001877299617261251129805643302372503175872407313783239301358436823459528209768725754779320834744649637008296016136316756614124590859321241035582206071409542388110063724833365186696056053217856459672106908714622175372230649287997950671113583960531270998975882101432531357578958521574381933579959706301606802256837877486304560666647090874452914394874505309606200472592745978443546694087845374046317054188882865192122955250333669141624194236257127841646900497393061773959495741709118889553846322304749965520342901994881536772279584496866001268494064680845818279690177465086873198969565653955487120958257441611461837179549372604943545484907092687171901221299911332221100382461076394064898720793692261324949040015026335104957542297123753782876444072793459407604219668377637470341699723690732333624441606754833207558765376294459379230487359398932680519541549223781068196662273980219577395748926449665856048200549244667339401268693308459797874472265457415449162519999849081862050848846232463284718762932504000309951005560166554854001663002223243651703683709151182373864975325073728831836837110052244392749256428871113595564863058924327473124618471340465057579080334723354315265432169721445486892001165661539651763714366627218263812047118376627136412322977376020688541974054471073477057033663769450742067625047409530611495552780631677934260264992017625049261839644630206679879195154610449601564935512419091620468031756247476217880677566512966806335870546792095245286063056643127305130197869725733888720397630466833081393792853563622349186334339120435124646142617880323396196126716982061373601160246518829805504242885888491022873492959517527097526738842254110358342388073896810938535592157345316644154031903602028096485376093976092410921033169473158336685153072218397849023908906655429332193198665296571440405038841869132048706778739365798183643250834809979022713931830067828815022994091864075773737625226664475287967619720231589429523732866404829520173810752182314858394445816658758300029366733277857452967817408512453785729468369282229200824434429725425060679893188957325162756695717141407728334465635662327920685247738595574432264324420166745801375517005972035338695961594686386711969870984643533942118491670687175257960786527758449372107207910062960844595673673829997254506765677769710385357556398885661976132828517117068806358209509076776900261759526098193251476562448553529486597087938667293771592374777364364017639836898925966390552833269532443442810886454218161658835386348683545552204557581027785602755142899995478010306823799584456298703420215508712233271441429848161134139098744333976667108411069888766348629380300275490904242588708065978565591644437596493709710566883000515505131451292678515837133372685328914218334057000797458776964659156490259294441749505931103391047138622427172044724141039584649794859289911048484232766317113800496165427054819633668510990509947850694970252505676163199639921597943915824351690743554043379466876062832637058214856369895468769239753350298767320788515132346944551028176804984629961991400667810239227347693376902449438344937427974611675273264281560887893541055421616755649302788841427986121358498656893554284515773372312830725553829255692614481641956520407389652245056336332231526791731131081842254936773387875975708454587298565082743690826990260619426447380117141041499538733691860952241442688976760938745931528901010480948980133261851889960449655973757216805128858799045808694121239269593573991383470399522732465542643318116326380211635662254640344520879930781906850889579996476730096401617787948531596747349619618446810685961185473727047613255393301818748215424712438039415485752663345484395129098935339959151089051852985205466136635837105171887858636810778885224917563664593861541676248924200938372744652393673665994151641753502202008220150677737517705444154732517068721705530722269724424376105993941266450568436571229003040757887922568885612205189945543835904044591523223574032385293353047593599354186365638845778344287538752608763415875718436189058569080073940009512148692967025602605622638768570904083021936667525249613729942311878144585876830506877881507759332362336448025463207757925487157497507546733952705346824197258588589796979020777243448118449913307317753476795877991956032292426253718497285364961422907010915060107219651046896283245813102895698382068051962215210130957752177230239783927347876474709280687720766889446176142232784114086597655222575739554927695039734141839537683572009966404025286215416105293442922302424632104850960222404586624199844612239733740633067545962757788036964128658221860089431579009579183118971458147461230189698202603096452913809460804650562312639813987084558339055056980484877518894364918496720428264500158658636787967634896111758698818384354041949236052140141816479310950878038269659720848421873144161988622478060844487660731392817179434454911580844576045929460468382047016930863526270217404723479434470190367608276872589763606090335153150777880207091160371124586615702563966964279174275444221055061049483696008690041978268407516895706361328052564495701067058198659369728030126672551577268984339719408410519789009201322993939595036662722365677387725422283341147569376418090483261325536308926868653584907234887384920127480077986710649357102352696597948266583638873694731836423342705271945243074896642176455893350802352148217428775488117010425590260755962212938332262766794734635549090931701959307825751019793447609234441763500474056466355423832883624446312574513535237963220071383113561563598909801845106058553440126508846898146450848318453533724510036516438284784724740315732476695611802502346764497152008685482019692324579199741761607107697794540141954022295483967151497660117928398296556411051741142757205730999600633314391916619502597959650849626077321031943053089957029538163260093140807175990684755588083343279409018139719186562849340106037617850228640029610343643697581051423445628647892870162814422592804035404561127394923356745303949752783720137849572120831714502036134896185724365592203268199056163325313568738013152082553254169968067172278397675326894940683987439377057193285267536037688864458896588062728424837254940356792497298410725173417971041075718571253464496488928224573726081397184899492877007236984576646821788838361394068750803990934801480682085667322088716694083401445300255116112440780419271882836472621544736452183634972637827163398112529466486974281184100096108292667742354802696116712297090941815836758994111173723433715234996696052881394591160591673262013216746734893705364319379854345866701526605825031103940040858500110483185746881626023563771840846850357743747269481788694104102161425908491989254237140458340913482197651955404707372687293478272046145706587465314485221530169786615130007115757872509557892459126260182474101064566699549224911735235142901430139014004703450607906073903181297641253318010001767079138481848392341735560063415389942681327720195940452623296065600250440526366099424925027374489355896843374713632686917514322407039859781799518263040376833458397444917356280381852414535591706417788408243888797102578479165690129824612851155674330871668356979973423947215436930244161916371000674455828878241160383435843210970061158980486304052313054920123555478874554148483824171847528207110081379671129565397811315169997129234352253093508398482132443699354254659293946379958986930060149187051471982363939742488635903541711668773717495961267336349794654837751170207397328946223833230828563605164837189558809618601216908439409337225047433296400911675843742089124473104612732407830046920876992071156708860217268274891392823003301371628384863114461184137898683425339002018071893171838645461200988780128399290263066680386895413333041254337083379053609148992668126993307777791368060875373041184363815118183488753129938623204817404709847224991369388129366553917755736597914006455722722406564410443151821212142588048165857499601615361654880321187521510070317739294015819175711141288650879025932850018607681692279116154550089131089260943228829181822682544829316119574295174485306523324792549299876109821939501298855728504247367303916907055759411575140991946361545847482699662435087722223955231954346926851752293783486991460401193508833103715012767226574334867873618145937180004766420706297505901401154700150715461340924250283455355739313886719702744512677855783551974641034225180118983698727163302362207943103463982730528890216035768604650831733632421202841109917691950817779225006268504626039830046015910984229861395369190474795221508830135483811765837819984133671151905118752279100447230589209401832901169207453108550484608264400683540407644051838328340860337006107261234338155831778655426562934514533167128849129756942553703285270071649346732101903290014506092311500464122906366992570798660957269231496915002667172996694904005414491192423140058173749969774435919801282283961853920471123044420516574890165241309153458799161410240902565742327444424915153813400486868184320253907320952752944236032102709153161559343533907465188697529254423191673383610994188422594331389366853268900775961288334190266907408020134629878261391584840041654438049453589468497367558793797279090646237818559817527731250061101418387034804142525882714795254059500222840306395577547451353636062390923946277718752848565345681275487855092554359342135564194190571515193333003330377493715319727126143791439578348948153199244642803836817577262560327277632013950297274572735054172487395012855568846776713170665845904384778907672759971227265181572888890104711295413505707255462478377514174068326435683388067837179002857004805362242518609095641657520983590871560876139341791577903773246859576594695229170814576667306201593045778248633072413164678137756394360496810657223740630302236341458522193443774942927601261621526645236813125801916813119384420275966065346115805240956856606596517617917864368958970379488679511716229354458883174300530937497858016613402930983517120303338038662340319460938965968783358786422652231668682221057200846835915026007605726500723831563053736252630187216247776257261156445957768597571965668044930850824698261942812676141782489127579798933728936851382967279222864936183602681122771721345466059871366577110343851459126313519732917496928694883740944419438512431313768594238969147065418608236041688477453718379006619080914454989147870786355801722035769049733706187350783924415631131445256166156780137090707755276164327444137666852615544938730587546639859822670864496805709865891967128157452048223785404987747720666263496462078502128494978407823250495376051676541999468500466971569931701792956185385512529909211748935408570654618517290037211062344940694827072879249883796822672185859359713260828054936322363477989544156678406487960233200726578966661577031205597885057950597290577299969338515608606040371078233383008364410690715362726051843608303046310471249823742277805447034962532517853227873776047074636140325906481748620613541143440981404363495595543157012260329329948279608908673623354767129948988565039440491448165576835686302588249808623572616115404845867466789270183591568401393447766085032160042597910441446142305673996494577110131766197659005916312310251648534099344787878200645077197954964712523338708321408500347546796071686009375604843088865801277524123909541544929321060091833521351227610799138347664903190777945050392156865777888759304958919664910227109167248330107399406545526930076194341083893298117779063689498907261710553846380243236203980610763143639939653222452014331823005105360751483061167782085133659467707697398288432147532731691412541410258786306410786175052871825481905079470112153517414704873917183087643965608254581457425608535814075636672132955104994228007940788619557935427738604220998551989198325351716668511358225167847197965774934914690919822928139302892927410233514399496101391466789563536567211868976660600092516735866909469263976690783961295159171037900706663866242020962626565165413693367740877977480027723496387368214187585369916728143555510589698130034766988353460521471322857854542119585389717801077398389838146963564542390159559440003396522419729170901343283319946128316588545039731032191732373343684364255229942731840357762940811967240616416276155842263396711319769946968495345370910655552891941847730618878448959139326929039102625489202246213920197774216995055366245782287652624488234419291953748299522688171076503349499758175465802181975720320373096139795638829241748360996546035763018927345942466073793772880033994065330872536365219359278282969510341151010145539913359018089989845138146344832334236790861596932353636136774255631983061126678039280454011285618379165955449223836436847571960032535339980563353410133473625678190458986371525549859334919912537837448645594863203374818476424834854971917277878463391419013348015147632941271752419445307646762114610426236210131325491832846461937800533149604673134378126177425840093400908824022346683729675842681026000236301919832794895992242057398311212510432652521463374526763690176776473998588560071882777057671187022530333120139759589118048130396525205982479510945037474178842829885879214990767251774955505161726102281868530182622693150795899336386746330524252963735847916806901036162050946345876982921634028516160749970006228602565281802755067757326629014963704457257767049925295054119714976429318094245957784509725087509747902856183335448763422940266744993061487761014323314379719208020982204485904792836121838146132651172350961763866061043994929925751627624018015845903134785104498314254377734245007723094764614113894282360005397344990621594204235480280375959958264614137154015233819965387280687900206415732807242119833694170048985721900429607582583505312858447681305332657492400762344184496967237032734303231067776661843188741425399260050414717188599447448543737900794959906783065111259933124537553210976871398523586678963061984683454447825793536265650930525883955172933147359719521765769741262584474020298883587126087620618191007580126583779091566673362003569313472615228472901311209814169987362818780762124978922776746339219487224042996099774950540067722143352650952584210708521914770289337231029347309733673428631818989641752802875785257226724820458748798392519347397349347542874325727526022668601765369974737685165653640019864598197918295494019647049133809161669171125647846499095875568644267654965900920575157054473075981421507509055008029043834673967487740609356999523665281059335955932386400088941284180371481612575513369836466070269833541646500416082370724813490232644315179967516368555821367169214124546493407938094884557501383383476573147907905262779766806428699814578437512803831456652406661129844053554786104444111571441911369391618592416226218463533074664591046500465240670005186962512739338560443209432082487221515783403669346037108534861136039550827322264312046427360242450517819880123168871553320940756740974337890328165727955102835295802816908978284015195810244196595086701940513457386792741167965200403986951265746509086574074211868458495372590978549882173285384355650762966769275527728778312990147773204272059517836889411150826566067156214925622433901878796613978877611390280446257450941416041872849641403790281916503871931093200725089949893716335974716298203462490838476297793931737684838663265166452059507201010715234889392855551482172445125651208970583916186713636107975345708467036365312596155082987999639194589499042703649145412661118912361493373821805118879346035269650925084309394721279226583013006189538702564688914351026109113546716747559745978696279980998248194496878541443118631818701100092885578225783142700315827159981927641727466706496112999352497501927538623803679591052034110910298975038272341497819519573385623009246718245560400439502059733281552301327378090824133858773775753041865379666089684037339041868960297329430369090203735405622920857476512654311436658606416019723394838370081881404280526156706864012533936610513585236905129318234275014994896030342070690639344370658733788506358708037572703533420909533862612901495326684445711258980562045064505685075028451772457169400214406875248230680033478760986072817297689880112773714012828156434404984070783231121487852792717864663519518140282864783048015585448011312209949524551352034266228585788045678840598202166452682053059695440420764653745810224237618063221208832946355709194321336461693374896070592706342549018700452408447281172184098180925877157971998897990953132842817567621463547646081559204155561825883689668950349015396442416258900502580920946922301918961362908178414361733954251573908206567893237394130945182144475725876012285977898370708083983028794400739896799268894316302800422615893047787280619352171896292911773765684756418167082140928999456619852696476386335599090863403509488823396126245150993511318800264193286511332593958804566442112853455369289133830725474655380079022360580325309035978592017091009905765992382600542576497827855047031992540398457103249746727650137500911693377416996405987382384741218485496507414706477179507468415598974763590663652977020261017173938208003846950834988069234970598937098883409038502619584043925459162737735896955388785483348908521267061637341772165580254746869357391001410325471593085421817568168637985501772121163773613668790751732461896568020868261614980509398084525469641758458702999859461030740120510123195312184198257860445160605818538781807666396235913074293010143192877145131032618264666776188515738180244007671404934569681827051961122755367534281272418042552613130255013922176405356148131864775654859389094630141422405463294737564365632192657329577439207205846454340987747637271571839088196242479448061569675132925163943252934147795640300818286496292056161104900382340361940951370742908524046838017149197572462462655218297763078593160383423720098347256222998353323785533344673543592152477217649366014147841161092639928503512424464114381016710552273255361093321120346683020137318901430867266240519319129156402169709821926637893324489956722369647343297280957305362891472536201299800123054732655128702519877541120913697996498060827635021477503896840456598124500392906438771716917475033829495703992861817449975170775047019509794716702236373000924912377486500450589087980350424979295776190459440912454124594796187115104476206044303678635781430568780535547359968299308627047487774803364163581079303244549461036850753225138138490344043714030919869951668662832808073722115675160106598867944381832038177097466901827410875973009064135420892019151328457651997625093276593287882214435017945967658652028145749706562690124257627936207870016301699238264527748052897024673448147590581250812511496780324524542755279990764950210002654567385281006433472317195682438593508946274538039231867484082462088049430323798946503738509511040795919204038735670424511941205069632710480650085610425444666757522881645188183388295694579185913389255470342014865468589765873324096869187592795060444288428605810970444209298136479780450120847517089749197774266258980431419577812763039133089638801013550937150437176549167953111532611117117869962497506524186517271276760469363732649735823624920978134257369001095557646044686652812066054468975238207432901384086243116447362416877665671116971068083541746920994126460529459007059403875675788471860623333968536374510988624411635857276731164689168029056026222004644066138923169083384161938495789557824096871753332587820012054686583618425685021447327410934100817349628046876823207385814964948551306203852782087358819444584442896303570207163947434056992845111712034708432077483713788757089791921017754197759992405933305911448204190943192725840927247529547292513308498334047228730819942466164458526897037105553410508911838462265727156050199132270410644505263759010893463020041624383791594333780594956924182916337790095649217067063158314611973145335033814557092735505532786199329359463900760390324135936824988115207769278542147862581286861040682271191826210031543174360320483445400430534602961302076081109434493552150424992317812999469661392848996241159051695394182070610711929998319441239875138161585274050026385965734551412518392631273576297415122605915503500068206882365736490257407964716201558858524125549795787306247392442567515060653900262475650109289069021136929672685247004880027956047575795857757823142268965768716060606639897155845702185871769055648173282293135896983014933893813663209162784822132255919301407856991780873819754727299315358309727877069347677718804035446863398999997585201413278332300950951017988086930434768738215294903123387574351210110420301513243384854413801377883912039182577825296313638607875053237353269569055251877726223664369636476174355094618213754605842757296163472594536178565481548821686321693797485387832140367537492858839519251176687892250872272994731426325553718454716126416563268431146694258943020280960098290146320747769698876787489924892575418913440485327862166156480435899310560508343536605673063679425746187092828752184774475082768173829643039655520133883001247782029945506949925228609594864093502586231386023542016174295774359035409114192076846098470209718702357433678919302233071312117742712432188922829007238381703259262089690895102013931733489708782913073101268679106998557362954571476221223079695432383110240496004778047154058312606372609853358111653789999080805229979649258875893720282509383977641525146407028710438391174211776181563027349853135683999869934260727405008443695047629991969403312348042941657337168657154186399968786525492356447795179047831307854678619316076184184552827187601803132860276382899190271643340527476170945918569502885515443490444691105713602660030040200855156792629626293592033461899951976185039666319759032341502619635186027463423125973400427350881810973285607177163808760973123244574722912435587234274538944659374714024984168793719016071450681681762012688299574912998323162024266258036738055568569803297739612552382378201747282203739083475142989249400480534390060893265408997944025445506688515803988994654889064614756708493663967216717979968944326480604038313987882147542398024771128430810947670365474857616774799489245745430260234345495867543492173133948081197580312399918764259928138736368706737626284434402807963210978529277358587851871705413941493042004225137396204073013359369280367367570216983747810443810906378959707536899224881848750788498076017301152829098498280373072535205591644794967621332651114229865833834091649086716678367191556018619834703688735412334188311844259207317416710555631688034653318744276124748671040394192975410755809750935806565721036360215355133931013071366800161761697253669799172289833233579587237057307610301870937115995906994440067073451291089775215292760687529988779357599547436915430799707332841268292984489632064229266265354845340508526476905813999755128010410048642438669592998775413903210224528908589429465054787425553565621793422131527324165985597849023888710700618771286075942609277227506169450467813537809393436149369215678478061087590358117892530281462721011296935992242251154190509513339670766826164426506132638761566191020503291722375328716694335084777722137299658981266905475403990912668687337409735149948322111575717065853772174497741123157237800467064364255660100795154573370704879148371838537685099578189984967437517489171693563744939150461686874647709319338914267346384308661936249102992417325692851748361989124381855949515453376853690545993001639795169159401594605047957356758691628830021517107088709844265823829626431495492804292117660764267781607722911010728626890079686739614138773114107177643868938736065347102307993787732075500253674755189990628156163162092727906467872111799836152261294027739885308902287436673334969084252400415573129967492208207721606618243068194687724247269288864515233890190522541217260312486407620032032310099647154730584184667536422157764935083415229724330116439009446120369835951836466025112422253225726080009141808238830843361262964450082499792602019849475941990264639743034190612526064460047662008797183074045344745617688663455455787482191178575023594028447118582462356039179765069752341976881172748596495155283992333963628573861365438490468044732079012288183047923887139690603684777841245732239228934427474771501654774633724405568601246450047516746740496705848905902959602999490006822998013389731163361979158536090566732435050600495903086160476475496656988907268577413663083639269551957424377529742920555183659067088725870916260511028804960231690467521423031616205350829057155221210493903390934314184813117696579050255947642552950925516082521782994479374818783024247985110115422776092886288636690039877830676925994257696333977609878966639358600019788502809806440947129676603964618618689560630664691577129608374692687246679141527514945555447018444087446599845582106598375069593362541757799400948132279617002331439992758429307298393351529345446188235416239053454499777783512170281414355623924092801603366904504125063615460831173708045746236686162984719270366329915933182600568582275796528967178902830647724817977671799854950286491168478707693267215745615986495659125933172609804720313068809055399920057054769166118578337328014141265337934668128187559565691222396013179073423760195893354705031848633550722818224186841121407333734058476260955312905673353475698617702167982178497537030376665726619824433047304185494247733571660086032891505040896568769286661486101508132033046574463232115818121294633173304720960709246226804587946758211760862651753850021097668598232444132516428974212836110743018062701848002772336630141232075040366942328162333011689224767742865259450130039600865393678606916462786806425895354094720889037857705470534113858855964711097890376592045912269365088503446687503640566767949136909902266781072889515020518994845700763156518542331717286538133959867309479729293627064491646330191309199342308892636732216152648161919689203635843060332087769802084326905645134808873402551305516900692854548002759335364692773387165387797029602968732007563111525112467328974348831116126021615435475610175283638251531090380384253047852010597416402049052020970610215774162405246151535890998764395789646538998149120606687039387302482390949622790039342483505053611671084266702125181072709661627427913108569027981172953087561340636647352047587842730772588065993989970490521523864413590860709453186078483495578771375001955174864394195125454627559443638588506623539960332950671405002507268760618657402847914199081953527248512328567473379302831807855967103437525237346615082566275151935549611465847332554692493898512133501452940522335088003755937727574424076843085502726081524994473923870529845461828681029496922569264303543104251139948720343567862700383502212073093732486998253942296322576917191332083251590512610224594069037189906728804021788969577867001089608570607048708941268895295485997444900569342765054503694860698366790599380065986826285714507249860291860581790422949425493077106521798462064114033433506235088136128276114072962609315137231576512937148276707272856025071660409903786232591664152552415570702289315534329548390182265034008997064748807742995840688454930818435923959102289128232519744289866396156571325889765393430298883222765403842380754011421553207073266369850012527180133491955738012790400020567171558904043202069624568828566603548345192390631463460774689944836428338506102386560673150670063935472981928789441434209720414957701992658403283860489616103426082649240817078320551533855281110406894217437605366062292677531089339715537253038640651372972205129273295655008282713651365839105181560022361144887312418587074388127078232670114380560172406044425211351509938441777186496338122908052939284785482958970563306694432421842937842754288842238983417534536239311415722730745411433395089776733892603527426367714326488239359492243472856524796336075943604152248385602002621194480871688954012042955114172094682458640367362133355665947281741661045265408789552225908459719352795186835086463842711662505808049316418770152871073493752064331777764325251079080739305263517630236832457173157557129825280942394198788916034552328463903398736835864509599805473140884766843920980774999707702215368110863465936506735739975641647716631435738092923699037586221276587716852739486785936239395552916986674239864594501071944897747445380196673736821327803227471438869463996193286689746630072229716239791165878641137735355557007673800533362732511759575805849073477883121554267109878014660146909907357110605476323015194354069896705682161888528040761753270794306742459168175560827740596624948127923508434675080717822769144342150983804386457571314222613244125077381116379517031465119769060687506814216614535496634757011969192361310631875471206052423641857690176634407418067802419597670179212145773651933500221617334040181772898225955592085416621706295896030462271861535961315962119860488250188812586446307547207491942382852798882259294436901272397381099011760739732893858568211348824797013474741878140105415934727968227936570784489887321513559702943344223560339536616198867775540148978387033673060735255025704647334701564889465056033505351309530233114999243418068500887653210570848002217735704694947489036238461834853308174709808391272536909141444673624851741272587940303359681339334368257539842471531352756210884202915948970448411175949965782335064302196301416683043322995074353821863361783446426952027678014533563066675845846175989174761472948137757911346117871982181390896392464218670881897067278866461817213724492280778749232862557845338710484294721841209656064259055048714236405898750130865581035562527528940424724677379919577126908164623898647670998778174850632773698718871491784377819458340803730630226275365128295496972045048019109774266421208544457484342382465163598973473674610637257058806530868429710602436853157881161416421464349768706700475402544342652605198613844910133172673935948887082334407780744364115748709066723477684100083243969433023240066847086916297194928209465411655102315151376191381297198105348967919085976523788524252018514607334846067195432202053413447192806711546619427224116723532056872846422959869768539990609444892417243697870524440902243578545276632876335180960163183167146190750790410078693713116040137634419851653297886503230364126570445420442597276179202507825477326460078246170397572985925541876910780320682482335765931450887651724257649040446191066147170427415781358486583255345734427804738599392154264987041339822051224078549160103272643014147528224390121644691934493150637703744739796817797873765764573916802445531631422025213150162649053292593263452180075773956256149711051567417023473846833100212002217190931593335208597972902679151806940630836069867068146865450308164565486089865223414352035509833221298771729068447860818827010437106857801560617452626139089638510754216167450465437921428645284766951419487693855513810127050257485653196941305381517915319714772627646173542309453019370535933235289866001925237821989860999238158271091103485395445115437554086003672634720999850534685136583880202059263486812071780760553825334468879067205355164046341322437755814637242153688032494555075380509362931871285623884956835148580702832400716979827857952529612002604629169446222369661909077398247092308866557805198565985543737935382411254908170265540250853711813341136378354075488871562738376383519918310311086945042418844577510966113112813323274426737768382769570499103072859563874442377928968203458093516358865948433391610938957800706479349567379993469155544671557015393296621031117757563107678731602029508657590363979745925978010709913788822248587735944031419605833983799217940082956246406381658253523180368846258365385602781093298463448106774677692167583864997868362247677367482090110651868066966551525014966272144450191668752656512040846936061946467326849384872893016005201179935514128591571663647007754911398089100240505839531437613167807865428154957076604369515508301366272696908908539365217043140840524605434840339450614461151100605035938517868921717699771399963679809338149430941315846842924656944376561291985944860613565158834605753709119218872396417889430390377182835173035595108653135333770129416019951059836928379954442962658060220927243552744511584253565672419737432932607736751963819394012485771341056738042714749772697275617984064791642658933685987314218074495764634609762435668261313088117572376816146783395499594100037640185715690395578091774550609135216845063244226327124272820085332315527613509305643026952536594031075446153219100780472479078181127333126925649253194692802047580850492782549716656893326560936361114304731214055206422905883362324437945917004332358164907479813924973658602707355007208653326305172767292038764030156866209749198284629635182743839769169768462970420800130922169974087518004664413494507750429218900184472955328109262848004722873950238378076899753153760394108798822581390999207658306024007533259705947188640292101955946558368142210687131875477213359713594235427373281261997025912987920623147221559044468987214006666922385985578991569801624239583261586366640105060324503777851937014850652347111638299825473171511199811895466036096831457211599297878492145947821005989748914135886676133244084626495141224211832395641229974260951998936849140430485824349247035491548287186370335215150807246697934365935552326958799815346585028673582064073867616062740968940495436671770429906398650923775028677251541065195322032131362529158885862015630029303026443793607504066625474595829605576857161255388540475486294017043712509619642936919570677935061146833423546368731765073463274580221641763520098153879032194886445609321230460723673178746624535231171547258772363240899262985874109576632924936042199096926418241245273689410374081041696994529887625695675249199679702148750873442662394564297754165978023799686280504551420844056280627796977013259688849714602924397328763376376716815531190010026290738512415362142344975083507069144653091320345287685502946814702781296447581620126260994873386317556788712070248842427773779545714275315130188308152361386864536720053767181841264591757299735300007641446685888085662331177465800449018541166403793800636257475219098311836340654225868974880134107997910711647442266352576823896286324815396434832894836679507570091023626196191061473927778043752289887388085790389999629530629694851442657648783161927188433475387688935222435765452112076904383423653771226843796149295746528007568405139916121965920707938278704066180534313191207483915990485804502170226100894699269873923105713643303880802755604108537948079821607988620978577973040987928577336239816098166377138812159265522171976268541788131678984154891293109267943883333051599159345580620533140807678251366162684873223219158322259552723907707357955298607257173041312753658190546718898831783541332861188120815491799827684931744438544518827988460518366695363162331923017544408979343928266909617835269510088625803947985716454976911930717558481793580744436854002179885932060999490021833400273121899040377743767346123861853813349583427369409852735926089161521544218998588496425910646749153657656757704222439486891367475095163678789452277731031025428750545928451709082375955967827928775249910748395604825868208261889536681690026632148753761551258602453121968251567445365979785325063423105244293272127542302699955280463051102335886671859139712371784342098139152442976067107971539469248251528751004980108319731175930859405579425644760799661306497657190614358647990770067424356734560433099187314693391828288856237513445949966467393571035226802991051682533039201971835587163275395271938150969192030970031274119013781248567089767273712259454140449549410621103913417573424281090574388176189289861795318522792897346191974119656680225799573377178835284592263971821857373844348681408155255035026749192836989956611193859777672061838420714785397036871247810621220047227694962012820521824138900713203038035370586846772296364439857291247747854264812546190783217443345256608059938141613266635414610183968693895106392266644701698455673264333596996175548741647970446733532452841265863819104613072403430649513943493626758342955069043146282337398447160099337012304770514060778524670267609544515625191019455747283918270029472377783089217947398853678156839870113763111480548326912510033133488981053186186571166288414404123322721818119453283856651866703211287556175155267495938733460422800529398363993539944497540312288346233964298361090643981313757252636291897390096729958604739376774566926908074216609803797785904989582259760661619071518578084809053629581466088003390485566964224789061231258383833985024460271157915022421410860471387075646293537713561545522356373873595685973596833462479516136923908935825521663221646042108072664961183263152649484173026058923406736335500625289290596057275003251470828018949874667053572370419627164214966202661924613782142294237837226021903280125541077931201478641300407196288300912616858482041437535594990353048799633572886300557168256795645310521489466641717468234359643996220377225696496832839659393987118708727372460505992967480347394868555643954577315009758263793129495441585163642326462740712444786105723237416242750004877943946370865692951309707106904550484995425422000033672838279838278228146628490511257791606322394362178228362062025764436539708123596955835498047843679506641528459655014382896398304790454641438787888989736740641868741603933337584178806752415502564918316728026748288675148225350063966241917772503705896150731944218034659597546167679268102027682685845694998663196321321350115866000888503497792320132474712213074670170573746303379154011379653206396387260676660094750500387465414991396305279208383420467016370122941093122811212239776266434087419183616159690387155040867734636311455323587639175415016315927776507958734011373444594498201597282577665209945447015572899024524161868533680728175789647500957990274231407656830508029064295934317828734440941375178648893572120965686003073096617884322029246663587680830946479443909418587739161000628643907696439073841092800274832597094661207219493858747948739246101900040869070161147059080399859599308858675429446538333849482829600193876082342780591451647574850817094539062395781360771998744639148051901293508903901324440299185111866117148484096179619686019069183984312399341987934753196368718327710654516972382702065862416732023863678651374662997884078574228131147848255382682612580877389911779349842648060371580648659464027945739999241331594590502552521366784820537583218592431358969672022778995494823858551399953304668940458742410462986080871235472020311974996737304439737702005293903669414406156213475111804330678306528485053138214593152315502644623093209185814582020743273144809158777570627731462096733357134974040635538632036686838821023747049326219232653279356389612431450157015376560253832606230815796874248439751584130222521876430544252215116972295873569331626540683114564432689113163869261410109102553342789632819836898671989059245665376371598986576204145489192229507889139042640101261262953067581351421319295669296518691380784221200442334509155726219758734005179277656944783118140134143854786879289661672101146142759593560389328256954587904733037238599772534208207199306172255012933796592651351015822822868720661311575161587521987760367374141090077919085127712803747987327759021026907517020563879890737299011897793754177924097652014486361953907277718757793546629403767722788664390700454502485579712246845895792693498301310061539706836218053026048090639880596082501472238957351718637309726948720064746327684561267693782237801679369534777456567123208349942403599527071438677823837149897917226694564156086919000362693912597226038152887545091946905928444224216323126319571260866760434577870115690850559073968576878242754107527086467862336017926406186748141351614767688737175924547936823535566143823938884723709902231015464085891381671313909687230025135602418945599787366082009381110088850752141940735429221189226259873161997860623557158854519906578521372859581596199567042041827224185085891418575159581014640530826078182434060622054163973596054742644598977854672167181076165673873266279199925967351328458191078680474191302343439639608124513278309480424695170573487211899787456624191370488801308623973827073710332396371469416940578572822587526911721810798273930167726769204301686853341819338801757873883593168937050425478649670265308117035692773159124925133383866903612250391450046331185747701231165787332632410085009199976227452476327191274678945772217767881725107328566649123510534565932604821589912427431057375737361583420870083203029591684110080999367757948462245883209359216805866340590348648136947263768848415757170852553758630333603387825893254567615889149516522847585741343134598982951832357051046497721735960998893499174129442662107450383491253666993459814906675869969031006562548872450775322587247189017813981818693706145227329672303862341121867644485393312255571621716632512094453099180705183290386677897559786516105461141606839002730208501396688395241803260203132811092676708986965826905631640583356893847211559172292120441441953686013085874110906970878843576573488332052587721682978585709212162554612069192038449260766075843458181995948089933557159636678824095411501921738185358313179561504570215536218761875165423176904428562628980028443228470050716101183040064612355699805454554452576094650016151572137635881715268235621959650252442034099113865751074950672153231338619244626076259129274784249151924323840779832434602986048687348543307012048310600523489796007372030228439045387378040852496581753566072063600368573290951015247863833140017117663424846094771327420256864796463686705974124011352385360931450550768731517047823525762047263053323068807933900762825860026812940882421227529177775152970428192491555808977344657232971784133598073484041051550983696868189610627249065207642418938531935248438765521543917848261236091799553273570799743055044610646710163351974774728026188947695217822033107517262028819484318263219938420251832005698222167478464193982929020057814995987509882849570758758492295389986144598460517446245563232271492845717289000388636452397173342102519363006307530148127908556680007198681357671257892551574561102995137247102087059160278001496803519050013555280243292987140289738392666642544413982269638146959693008411588629177590619530525783800768311497808840408316879263402281822682690123378717495523238280014031621350788553771806396015552739204256352920182696569111794043607542646562459032463229690324634057602129354305255915081061993269207339847028119770454232680686973857852755707318532600502044527941215736601123169208071554359255028409017015975692038930403066479443937415285855596123092416193419108673541531232178974779062289667187741410254682187157374987215016069522913945334957621317621474757899638035471663088731209453388660978714293260908889143172361023680447546403763907597582481650013019591118924463825721817237943157722643745998357989492737721747054344682125859826206326364202696953452160565267762198506842985466475443710496843184414859521591906968279673355904020921206029771268213303871913931347919420492661196217048351387229946801331471662941034951788011490779807515179994772223417173213410913538740093920761658159120153510579249258469981619153648626270046002168751260661208804682086126819999694391468538518422027886381987746329630524314807778874706887992303446859576444487964465416070337679579514539058152560640299596464734423051871694921062357840543155889535947075805650312430631429220963067123203241861988256707675535255285970948483844461666230249597889927938097020398558732940206120801525338658272186104527207063622640809416435304963723699827528470154777924513112568181255210964546199498054702987679599184237027467609708408380776932424607200393603404502022166856374750755427255151769735094089300735677838856694657696301543892408081307279108626843733612241530994284659998479492636997109500127636611579150225904031464428490412773722925133441686348515048467438065808088218399542680819002514022595322396166780415839564580243773187730307199247633271680781390958868199871450398359638669733802880314551683949824116936133738101262084742824593796277775953954876411752091671853154348337435808687599747829378613917391480858671432502442245994879617904221547573666313692973870473877345069779113391530915727658532043256777190660967490240499949303831277930048716539891523487071912948753081819994507892177877065366067711892925603261665491729925775300830464284913056080906439856024028036975894578725695146813906091229513960901313968783008621735488694078605860990342440259359063648951995312784063486336101292061768073526579941948595706689358287555669192145572870752546660641499407005071049636153206208857242436838008198488230928028699863031426317885244336125557151665494093581986043171734225107247739733971792727593639750683827916629914783170129460135145330643871256266098361144185105978139099386010981285249315420066017861117393895972516981467605712883342523837168459349341672379577439965315682448558185759824140018774037533849632846482867575259575615094776670183855040960406291478019213325565618297700343195990447272007428929527852900654401145244575726172672642211033403374337909618517737405866673151641858102252325457072144694697129760461103451986019946903845109196956462075535614434407624427325685498240484552758497998507479020224237834747781562783338462373486013954667819939373087541546642231934961914131931881159108304143523291489671383481349835469074293524079221979532161303454823722469779707365399440122633183248590322801376310175413842112990185081235737647344558234028504834366254574993863970785662953975822296378097787441480753517831923051289080030522098174571870731098877766336961865350241702803167326908211413917307206862404441318053411887546917878723522628130973580548249581582320307937075277080226211451863588689436808938573375691225349335119741320555114767346522537292141788546107771903890433467564223229152431350352285805820432074308603709288225310827113638527911565107644990719522399220664574895527338646687419994373965752165057648376522576585290634375189997825334442482638006439081359082885709572438662903751518019524058451518368549357891959909288848558073577255267349719553388658397593997941873322718213560532764302407345546176689620148435080167773984344161580791048131498328659541590447677870869481978768279482311900330651648584671793717273218393167625158062318998287643623549576524848664276947095639746961671572476087466313035998227994268081029341279316073840172892698741813928472204208092851549806297315734145295736759902175898937106414319510031824650294511364020081402216948629724562061566448422068644954218603597944330625904284882029500676657315892240731957940885925470504951524625748705076093712147152303231448262202334829787950115199502307689953536440277005157864944391779079037307071656407959374886058662646037393887350641550035377691665487094290270254083534178450809657151444617184067815869981388042903816828769977777405978172439740694593498790720255815669008920749799303782682140576411090881724650290209507992205823781775670868296697198302099447330041905654930932085445583095583220093337074112582176909762949549555337342124834621063454887920968618483294629612042808068728304310253904582879674634065152197960303671546734003492052526923638198483375718163331703702915954378742099060883742458343032012627801166720153880877390041806877837338129365049725132999215228357240685786907683275035618177052015809570274827265206321767796794530351855995725938181171074549874203728258674208740415429539671266986787439992354627096425882338304595208938568918386318223037727871865159017055752737712884054501420277625984977050412883623715997877460202812485314606500094296416741725816761461982232382260694127673697480258291172717150042468544822114110139275877962173738134378525473073124759100686351888958120330051963996818827512960780264567172905764401364950989874916612749366178735501102529022670158469183182391999440172919086197696831447198665228922239461640466699268756954289839149169816993797674373071410871849061917865732030507863800534689066382472465099873412104702856809597545874895009693298747490249132558848341706491644490485932337630007180442145766076960660676886225021498173480137126240005712899478941519684232077905947125300221613674021377625726869687021348743102858187084804340454158395977583670769614574372998935939550657348707002307911732499181856829792171490937692500523624597087199294673158029400053106562989916367002573849830851229964694649211416439907938634505406366476716107805805591535279761858321537138547375430218544967346421300080419810483158886935505696034857048155122081582608750743718651492101377008201317975793637542133985287733126579230544889075381985467374223231994933408373527525680872276130212420013782820372741667335976417595585216111853233565657767970349537639208101396411084690549581068397203596041954128139678045252176679368746582433467686542284658214202229952866271696833925176111298761694199359249824535591203023581371596271202478013598431513161060984974411281728782721093242242547243819253568361367926520131520342856559879638653853796919813416190025403472968304411415909132470005142275966456743538720073170242093718137465823663945689206854324888369682671232889451770507547221859497030949021660175491878817464671587953506834268580081334641312518408274716671097064873557535385299929025561971890881781511727903137252880860669078965633308126900706253990255247179126587188188841115960856233517324449509105974864553894766138565425526765755907633241100763839063162374462533757324180902441883765658954188723703315647050552041508664637420663011388248255811850614530856713934637983452830636362045150873648361802573283414309224570482028163634476934326256966786542162898368552842651582196460841216439706498861025029582553549060552648334099633671188707864394283577723019507813781815821267386528306832562665338600616868455540307414310716492475985366938244134812533132044575617142716895209822264532687030011617463563955542681347506026812266564158864495938918739764332665438122556593967367779894583395389459831653737126143867025493633514828896762534869074925261906867571162315366643445149818411689753547228723897437250204641721883182564948115149774209278096641089153064086103048261370510254486574505810563999065699003182834305479971340420107493955191154102482063470511882325035694828170560993586958137921475279301099366248588660765989951645262711007530977340977999668068719735708564472638852852661555423005411473089612939550849776955056575384534533137206682258562639701002903413749532642649077320383871188209070870669919014302861392442732015622852905503119503635660698742852044800472967426819138855663640898716131137625017619272754606746317970893583142185068136483552052251646395685698183393230630396042286651077424263363254199279649917965777079459509931651286965170010092368919845370130762409074485279179576775417357254465193476655547591278867967740531569665237439647578273575153442515007809721818359797396981260366294138929815357083182143384392101320874089562103121970587117533691479406339531747646921888340447961934866380611493600958688539244719310340170016621577437398776872130825850054683303143895996621055761480069543803450570127633211443369149600687764858642458036324557032314255379232058850295429790065720340639445724286675732479642230098003482179912416512488632131943982017847933835886984934604869316489267758380187566159650353851010249072983209123896462819909741494106731095727003551555843322787729970708301710461353143313286453308016228391986159268681813912048230724591585244283285607957579493366896978641162911024889085391449760709201215859137662954085228112207806170646143590021103993117331132554911071027664095579481610193002222330623638375721940310557603697005222695484732122437037448439704611564497294070220291752286163300010284103629253377846679770438524404711345380363940007663077033393971838999466073351280381711503082468509614685733569159880067384097078159666061366391341933099375067014136272293873942607063278923081515653438147246708758227243704341089125292302280096853120417758033971084805425665591177527839311706190168065457485964080926576520170403818095424217192591204769291163925804670310283034960234324727928821747870110372945872888910917192069076276876897697873187647526803640525013230898599655424767904793490465297696700982275139250830374469396008698437501074310428998214410662135884274633862125264137796598944530230814585421582499482970636951759331568611826681984358688547902499313362952088665131133297521389992662766018681554796291251631410263232572912083965931540884792497473804166022391174814841757104145235247500005163848883316165419906070112581400175284689395793543318435950432985208235402676911595879373574528155229833242004706938872173424007806585958706934751531254790474013158633652251492049374271426845298028050735570949810596200898725477116464741968272311730390321327399905458929682938814388181420436673576213642618629080717984236582973254666298923169008433045819486391479766082720125958286944483928131741991198712668298110531699425375226412739881196369405688652234938697044962078853319586307830199605491155851061223346619174430612613360741076740709729796104492793798933770027173437024594335211201987247013923765554505932385720128299321509720933603942319278570664927569444535783885305089111227258097867812445728711457156718605543756412570404047856014232187973120985152812275786471859230449697857109254528477476185103619331349172951430313184268144449453001565228204184583040289186403804132176352262672317532351446069571028023144521580168641017236596496198487722458829978485758123029015423816606304912535611868013913093555856540625951190808802268432985042499105800668757881400648203396243902725973772239103778614705487974095169673572181303526286352773784560493316359379652790312875637804976199147757330858040997568238521323531084736537874226921959359577366082419703207498161043913998042197392673508363727781064145948606089148853461439616553151379563271938869137403886847252420876636672641081011605801074833501428444419608679288434423610092916522768200964438804303540375783008788368282722224931972520028119284682525067255693646356897523786828836429119069403822464285667222338962346679946500646617419902584996590814004557506532934864775724917902477637587622924784991471558411432165451472114843609272665148172044453940727681538871125263719426491553527360328257886900006085327217975360803593792927683880464511790661872260298431206180832522292723759526986066154275598288582025560454524104089128059505718379071506413234228032019233664277092438480073078440801692216374555235479242949792346468194077183396177842211084149481837601270532443866201232261933416323193923813085719151041812694516181791241482970878081293707964640907684692495139408980196286959962142951022644990930202626931996179744971210504772044210894242089113619168709981071548653255957795365582316999198421235241588580287549549043362449911698980591422250444857258095287513634701856146830349748835961839370779260738284833426185121557645397644318283641783523303378361461285853355493755597980157489004390178741882026149469628862129306894820504072951252629150742967562839053699604295170933090030176182289473376996091932512304904926360701127720726947677357882494026143556380036179177010984135032455057661543419351752958702786007278019562773961519596975063637601629978774447491728083771889314536687566855982446963641029058073104656597875408164888607121817003185414280972981367389690793057915307285121116364174011177216779925260237227148044540325541538434557479718649769009535053207596251852292976073123320687454670644987715896841229763877842483200687619465168888939735518153669885325996417172114070398192563020852968766924076394859765494667552617801822457223086117751375908154167937540111197527908102433021811780504073193038971003520093277969282523431300756355949991785767206985672704949525966994911403718576919680731611650576362741172411229212249687858127074546862946946801211588772251891736520660602216627764022965602851998045848152001287890588760052215958442031227934512535071848042867033525182189317702126000314632317119675026358890988431267138413250510508643330971697243177009812854091017519414441252252174142748147212271842149338275663439067308101158721637454762485464098291094166548521627089914388157274549772239013034205521646216561839860909227366332500702153032452769375400823743565179179141497991097298189483121247242515300326314026478473476030341047982725701411059661128591461665053256842222281612639364098243856022497604636587894165732413034068083358464961138904667546315865323190744660671956896504499557701923260812794015612398913857037592546574512513472468401362147443231205755517685843735212280764336762108806983270390891493110436379831698930818155292794527389660028470423114567860652372229213036016578589743831042488475412427292430559673530362122757628431362451093310738328283562958704803046122811044916298565501007380221754757891223593350900847862150012174523946259067071410588728045410924441638581812313917050976755453560456487205533148776938012443996665530624895176587812764547836924037652625212438604167807707100690840311573206112122808757163856056476315226192358658324719594313347275224077364417926755301210352080605249662317477407411479106807986309661631189742754880774407618017892485968511476646061197112713394468209983600831675610819594088046800283186223358313602636141969337423645760555591939946074234726402988890636696107445078394833124082306048327905123764200687501465212556148994679146188193788740206351587977816343916020103779012505602406452125895625940779580052615256017883751230955116687772988133315598057034288985230283523671101814340292488504500383859553853351836719014615732035923308444818255658798425592061539035956990576509758997326701697001616950460410892882024272681763858465955909625728124274796377106455594880480724289320103197872961095411935697340421884303543361428183112720857905266751956405259185446385782990563725918603309835814105891956201747344326217325048852252884214572602406461553299127110019430397743361564518195410560779738914600387423790826816678406670479501861840669291788667396258010832675585199903028616761980405418552102547041316194092519720158131566850691536963452111119178834717192758930229076512224932671780526750197190302361374221983550690794714058106768742108684635193990015663991890341337898836526102457292800719187969093278179125358196081496934262938385010954079978285848153615063348839942454037353929977595857993188624117783803339946448160049069913763195665710654420868277087238299783104757899118600476646383359713144690751596849936949246826657962325033517839736537049815251264815727795030712198360556751121842949240638616915650424199580089505016911949362029488654607380945113568895096598473591916972340783320979536912325218006655330373754089338298733350714581082844437516169951518749148031090843729268093211988517576516384324800551571661809323811230058977546000064360323257857615358098647283650193814312628735259463910465632799362757080997153851770538682647139719586727761282242528349529063500813018336710152487033382864625782200027493541310897835968271712369996939682674956572110413879337570462153730441213000971664781194784192639540047210813271994498069819534824003941967509328957940210750451618786672571172166923833120341377434298965184873332212986108883811947130170255898026576875158874814181056175996206533254411309502260588086419530830547438923248688867569556438797666805626228879141724584335722075425437410909089262095825297510537351476860814449672545107720889638424960987292068643178299792936932312091992831571742984333019842751364602355228294829678672076567585131645887953939220213756100129291146837203835246702877703836035050628371819880847467090655536085469814480496589098719969766039403107298694774461487378145955347994080560726674784764726692701710440202051999507403016179222281333969661605361236608649833775978051118157607658737486641862858664336352043302786040713886080267852297579690166801025818347515426443046956515476314250546116269810857905123576640643584296452805136033270789835208446475507309049240470322080363972981392580598493955594850664313917514224756154097598178549701142567939068458754332643706518002888172809459758584820424678796822224114353617496493032554037297598843769537473348443155092374907211443015091414549308296680506980892905711071002888471818502082854778660304691832884866470749443062951198584932559004428640038274868905564052116501106053634020602786679509442093125159850777301672799188661512821358949164998863121804047283151697520668587651945492910494702268400487305521652719516762583451703414854799357011361368475560421430095767332798532021279665900423565786149211200162733419569817178403854504838571512562293266406811138778202086690026020338096202608741704830180198649014776522012669341938610045358145766695184787569314586809014964382916152090859461304575961259766248586692384897274694582782240148589035497673974693557987524291214984699899576905971135813751341399342683277457651613440986734353375151778838749103932919561802737673593256064921393068285993879662496271535292015989547919300026404198604948900084665720089547932464104227556568609073576435704713366450904240135315942634906973725483174072375331669236921378741652538327567391989204264253496626253597216491355282289440588500168485436066929290895435696280289893555713217965737131544930452936489507337068680856940394863322141554677260015511935094941481119984830584126097286905896176761103242161019123590450752771713687037732956683315165590093079133676823737633776588532089472646836601446139091768550487038262322374456983918301130203305987822780601040833033830339968468558745790486895325894537777261473618732202304213772700612728522359861539173524295198857812333448895986466945487777473669245770253605863499761861379891909404668171664824690613197999223439453918977693944564221055430170287311686054778348387687959616051281717364669601632895977709029373852164260426664125818270987210957377880968317065278616286004809600848846845788485641131782220761915649187401046625709599679496037697520839795996296442269690007193609837197939808307205460202659750365934430716068505494366206182954314069828997030224262866489070509303937270395454911010791770603947121743451715284684364548888611602590670235208762865691542918999845091043128646366595993880021144108085613147648725460603452579139654362679631806206111922802165077061063634020063647584957438230648570298462405886577446091384139572388489270867850673061146747726781898472353538552098997511691777081992839132102415432842890734283470931531686817178557265432144672993204272915778378288838773362038067028091760398654405821285414855374226041449430486658705048128694426099506813262183609396893622114138719652337951870053955975546662859245389439787765473347600260492806852144279824610856054621013854966289419742431532953891018791136484121857307154646494950943878853450159281368728723067539327405009616782244789102956617890534627922049811445313617912177993417851461168220534037673056779096409437710165783378009671193724739374701547792961489582413945911947487273147417097397302431455044454385111523557566536611384598215758287321384169176976354505419683800699785441043985067408181906410958878824453750796153115702359398899505554162376498469050605991392064526191585294001099592845616661736119141230211795200669777944144822641000626083231388084179505651079654387510870205900358157487367418742164442957579969783306772297669608796309996211531268174018025812499235834497754437955655467639027966459032503476866797846411694531494559936863452388042862676579430644602191718319474375841511864469003583363262188074371444456062820710474435466708245567112792998109283665547768211058628790935297044208532289329860510814224300977493310312666519915944095170370728596284521265409288935930867196885908839620744452963473374085341571601344831906052096307028817476006785131000814691320255971801080820095205876950332332008677122086448103439705512676173518383222425824192475504948347067921896012064121877747764346277865728968379134716926117818860235007985288044775982360340677201041263378692733332878867839177238713555564317167954257449945511327121850466068440898029019675267730530856921231952299111051530732660660095818437170288943606626192479082090719588896187930810503173910684728381206183817608389635501221538861443531673153196716191193165898700264968292094430797016346255189188330837565129291122451121402539906066848060202752482429422032077239171048981459225633053558440193865763135985976264908282123093885302368628084858138303864993644865261667984535541740049809425185483480902346672142484007787993567617110330781408260929664916039753169141387862045866997334316605973433541151005939523785157436350953850830764756400994144329757967420165323229535387456376448780937686882016967699595419466534215379978226780185746508451940880534617463930215947665406929361065082012270571840405380714145108994970286305754581396482940802420595695385125451547827759329721471006791079214061768195415747751489313921683839500615511793129035266359498020717333379122386763632724599572144208564115513051440988704906820163018169503056680263980640011549355096440490000818200045847458120927195783076445461217006460910267777392702192598590324420537748461273901110899110000382455571861051253805616638264961624032987225517686362540256529835085295952746637020425892288412859312381445171599228155866897962137143530202457571407603394651555872819945769878652146060884492016891808542864021849955386698353071548385409675194234695562017431945524634967025688338500942411811241625275439822344906881136706957358207862264110275171797841126200470794083757883907712008407146619216682694825818828549848382442398676695752874545129886867797978576833514172084131805621229884779219553744902820272660463748424585069861786847341789943014401981732360422250497255103640552299230264405250892514160061196710737085120589690293722165351419902490137830926783348081293396236135974421632824428115030086442842859333536355107299113100319669800535851185822747017962104117477308811389558110034777263652040383931578787449845412954595258251224127713904100386316565813082912317246701522957964693180718057877424639548482369384478458993098515442056240367186180142602364808439124508079985877331822245446611775806866602500846813302873157630404554200376172811965084419396916128293203265225886435221088382626520197118046353218500334999713854030245233378524730774979410460159865368550159378074136562823999623390694826390218470860307314991530344187309663041590910641908648091630703268294984705145864009496030011287735995974635070027386089007544272915567718232423617590922522999321193238641219271147752990361771737108516462276815260017463869305541387402804824778581358994186054922399977918433872972100761548082747012880857294529590068470974414037622895135291469810671655929741743146998338571995993138103405694981966303197530902933371558323529899071540376308355654230275141446362628371846640103024037137475213650318482932483832882552335099334510418103537990147583750460228124766811629114762535406608221828623390218176218690949380315001058835646353406638705505082848373443418270291345235625451536602034137703298697534827458003671107602483753673481374710830462226037399837809619355058587967202285359062967986488091696924357728518830835224417751346698446554390140517458638025614981583545383488701880348340569341004987756869310609552903363334515607953598699625142414231428095809272261753879889387983422395753662954612639110800744205771069648587816073129192087054270868451632270419603693062083117819497449296429723257825528167903636019161775676227147576486623632190147635722028904240312411298142295564716108099816316797815753408812188331143354353046792647905551582740612264652872689297889079530453105055944616755395493340100615437840246265178768850596983934142808873396402865463493362014084763060016633258566124944435821289508281703097343155476431753245859870740764153010681711224459214735467595857551452075717259840953808613928869131270676456412302339736676855031353280549365517545738874874581850200205527433633482497683427132781793854642068364453455863288652144881127793541614356551948606342859411085039497643368443733926897740301761048728641091499629743568131708346946083886246099175018998778189511149684783744058500544727966157177159741550517417978616403739546274136220645081960930893103214329083782370386211163869964947237688041346090938865630910057161789151465646010696834014442470704750523678601254712521293691038677941983392851224121678305823146228652192889767274058846885848122413796490142193442787111678566554966311090623132447916073622748012590037893244771492588345975749574696210446658451461704752736884257176655476395833298707163697302315184095129718412427519304091277173536987583811584983925297049032932208028722247964335383558705904585505525266918967661227508826159000925712653539412091152678676678289825282627459955563800722002474454969999305622276408818766147649663842764037869511722581528686607511724881609295745052799499185729627332700181937201827485307207197545922428158357484538382908549392889820339109010688150509992791907726691193660190991949157722273025131694808422339467233118570581552584669745659033905610791047704596817499375043024121788171045220032582369573871822204205009572691788382136840213874859712623634732009911962372482749520710047211813509439485021461552020901441930248195500065347110374741154653382509872987778406406809044967741773034800510827570004835440389843877344778316809726847163246395577938062282598501514310937341866425006382343106325173861792725880681818917292924516566893277385458130159511845090556928106564194679169825497460502727957833251710470819565145551007407105030104711250186114246001937274203381084772069356641169107049526595520588372524683213495010159093679960205321935934110205919808788702368630892503051094757163624136975247277431869905226365583377217424572016892004442890684536411898104876183421918501579340442677190918883888985499213336237234349819331920053631736744105123603170573289266521361816809897929350034280864553543183867662032252813437011476988477904316116099084290052344939490219725393992819492499398043663001765260663911448145859255656151510362837430872729743043289240488169050993078680810923601425891423162456884983457719494844360317318805478441342062539794023863784471349701036742049566439254822269917807975976923685123386211002797723741908815190435127858439391493608755076357679616828927385524767676587744839482092843958556629002194923341597646981289878580836930825455281521812275991152707253974714604792029879594797379202439809440166561800084806963063062354849624213008496924414138730851497119231988763294621128191255806039028743690529297545544537488011092207622354311578122842487462604054008829063200234204961192094004535748114871932108360379517576129664497550886073690196152692088315440017596197053471637581891354322843045073745996289504063928542650744118913261940344576463537110084511595938389957738884446626582404678873307319877429447451844455269282407717861753568374462739457907010077981453187145313735572038029350434827779528479826869660352562862648637271579320534700797181793595433545113539748146478830525196698526938574857320450042162310399143847979421640222166435789188791914966548280539229257117597039195886910784450263020324913875640116754488547664819727157307357110185737001770069455962636102339349402149727467230187858496591871399515865482154681389916146060510904215529931076279063358187708507662955654600426423766556986620405018560625829498641604404481860279379062663673043855746516754848646774690523983225226479528887804785484943888592234180314216678619539398317612911091297382885490624524104130627414484627480797283197575768028544126153664935948109576844735522664331612986143873038833670553707576575722233605499278966694127316127897973394224153169332780803145368899436418364682252244053020023118807015401076137745899635744824186088276221193204988907624679817667049490066141849589879694527825087821478998407737027707118650330243980407247685542545219766281281231893421789116889616476426599866990462359957065025084300837791172181630810910967995747989046417041380994282457015243519860746270326255888047675370174474622109143412982670149668343348710484563423456136115726282253047824499800082047203446336787443572567748294837429586073826626107772648600570126089245788561808586101697040700772508701453650478695531758597219794526749298333821789015361806555703269551838800913885362889312873823998022370990137803038598571074743426586758439913246178901589885036773653684722662997345847766574664395671653063564487944046562577771839909716621920190234246246584861126692271956798486639086986228168643064134686442361573187941271575496341640858262354239671571377687929570610888289030407196033831589263646243089116772235034800060191199932123574205594254183124590942779643819710908104504076760441434378967841829221215665014452930369911566473378514774767426157430174177659564729101573498207375217787667938915095187649260417237010006605485684464807705296740487512651456922886131478770173022227827072494588688238465362759000104472554994424904754168653622372008517935610304485381596250999948921549920770447735014402583686053278442544701353983947377536149973468029763838657315750928772383757074720098482645156066045239534510546265206949044275039594792625128462430823976419049483171517309483132363584077119922504411745241357865993032487232680453955914100665598475718461355789866895268436974920744244296845987319114359121558673004801661794196725322175125905270451882327552309520990682094632629289810113845631941972717795780919116790117802816889653162530846865200438233080344823852770136875108926892248801917059077871626358235834557847467032477005850667162679868249852820899901888308189718631229520705539932355382293028094271704784437430701295564557830464666780768155387757464900577061251027810899284092886303931902298004322520254412395351847127309119310590351776214201920107708879967708705433632724832390443872633991556286091827811104162985794787891383502766580475058763255933100801336569910911775172373443967379803884106086129754109758024026606455057882324272493204929013584425121157077665027467635753825117250647573086029140436512726814666263884700648303769375407796871031629109107411860938021740767116546007997743718922397682140358351920852394179371638324433251056403549016922968396372292025851201875718313932008910004899483174982419520951850416020279348503888541548456921714368819315659276572810875377291981750929895575820486549237763549055318457049910491331617244281880466557466536869521962922346849653396823335675632992407633118862750338382298673330236967625758523563208155155826832453373306045328724205251147249981005477294372982917842409657247403358541102649473268462777815806780912659833514238244734891422558392171096965287616896101593968022181738255427383654173525775955330688209914301914699238990839023311578242514872155503654966227930427864174020716078731671770098483218593314254427728746016924377949809949410929898858516155981274817610544537172844513448553676674979718039669063363141860928154498852604299884812918664345069271960530296653082432323402908773978246998251335120194285667893223195232468381051171777012447743642948337358658748219899667949212297369263606234274891571304786873584310479674069892353485134346208454906323106104640284777876261411741057890663087712046463391320070241047591919705773302766899855007368416719889391771877920675994726840908673255883559633013049572050639683427091559938717635316091282800470800727739327552695019899553997705406311506299148690736101347761535061824837524344401828056228225179077777760774910393993272473456683687522233126907004009615623963545534490271524278270375494516155852767104812589492798595401240462930681948323712266320558462173448477552636450038277982933812705561486468426827383752456868084579721090643723654930049120999215618713134267328868010681321517161240642812790848078369829535361494352300783829762506749455376691247231938025669202296026815958047390547575661414598336986699231655419872696976509574625551536926165827338543892944872249791078040140320271314382024057810637397217446377214048393824879990233406913617765230430183849551399741245832063864584086295625143125568540619129533467936171836975693450531746767908465038054015106827175899168221736093225216827936839457176712175483365398290088745722432149676036062288555024166847947546703415182400542165173750493499093981147789441701432664235115514919434876073037066262141770523551697431207359638054563379580199617907900578439172025487709184399935020355019324831490338942204026461860608865018317495923834005051046933742462862698458591249368756174422998501507510982076129523174873782253428476708366073409312303908539293750911483933919316037819772743570509567538705879908639525392938558400566382778462067032977777233975313395999518929622876886488394319292771058614156004591088798159483791588432235506700752293372544139960305169332646757272618761725256625825870250771477150930363453409751885689136029723593479387366613780841307188142507169087036777217306067091661131385901552643026741083416968257767815310872020080559670913601133806404743076912628608402020434435328733317585055422886768204502430276369139627024720662609847866506144209927517166005882487766768209849633337087006675949439013866916238891952399129666130635003761837021955365147351190053958658611416248668877249562139179811489221090424029861639411531720637895689471168619539537657797435733464296338183384352961642131211668742995413172922243890551263772130705064863140020545062556703343120922843592041251178258180627596509682254173722665508179312052492315707746402939900870910756185007859946375551243564786231464748804648881349280913007293861106902697134043422062187181048446006727849364478570126252620211801340647521136037765663800280304157644839042320911396784364643607882547803912114348565065225779957557622787344871903524819716664045407262277401663455664952113148130824464620150158503152696204492690233421326653425343460246805080970654103312547884240276435841055573482585902367126480162214509245908383750637686793066628721330533861915854444037871826717050296641099001635737409914035406576697135837695342649128960543707769619304969120682283941582410400170950020787172810270512743554755045672896648480163194068922755275739934972093732307198929032557721142071127839721930081551587964697279071664308318595188784825440612090601009587914425226618891470389093039238430589456570801517532686650476727824321400483873973046302684626558138504261121004318893672077486898626551506610847384947138694672890901363228690946398014009223319542326475464415702114160187418334068930504187251538920136242530739596658474981263170427136754607600732042593180700400135317603826724138853371985370923689205231865934045025823601204338180983910397646522065809638624569745470985459963485145565954741087395337697837073980226221808847127663621735192375357211202545624721018923390147147553143509206419645244666059470950069597854592142134017843711453559001353211786789518160701800547776352744838319159800458366003395856088624734270902696653271420764619295552969175265353476371954606544436408538295305398664937453265559133223244790995709386231798432319396350511264181650599930439738080822183263903443162969230747963848250070747582285098021237939457250074557389626111528675322451274510631538347856556138006742267973103220785137761804357510795547186581137164780178340140044581407747420862788252937781100522503420047317708025135220881629662228500223983219616299670390773236680381142954378182704248233934775766006521401716534703003234860815024922332447862838933838544841207287083102590844268653162516021492094465917595387702715837599375362153347456863483217461939117242440515652463818941450442453430740042952991287635858558273867118149820532895034444618707361767150562879296077707956244310239256176137024825555695078600448097583318113262649660125281228940816838716862485121747484994426594626269665664718442478138199290691885728764146889197797686086028230676783273844477686215155431215164117905925722890253678771094674310686344722527204068197548998162196448927268681634463171735753787955533031014247383458883871768006235028156954420216038985472110661609235781984505709105941616875571154235953002934716671486069517704706409301411001670171263695735247815369493506007077714419689952151216805650441704319240257623559419502544301100133642642253715671001113849482035338673315183682027282525453154561470561380791901740553490282592833576143872382221312723412711903489759432182292733921689949436136698845978981937879457555000703806958679590223741070216680115422745248904009398274378446842031449740819311779040772339530566745365363940375792738842251362906332975126701133638045977337700944915685877701287009402907144598171142310858687028409723015401565334132894708474883272602153500458673806775526335968653811131627552999371032710789364520068424099522055922558158192551524294629300294335518405383787809224914285357120457994468495470427278942301995435252806425731106873023745154546805999319578941906130369998151757825055227236584177589391600483722057048565716586037202902081027691356694309640393822879692981354401039169937677129415996551763891428280977234339413654060388656441699739689173144509619971012125827374718103272930016875032947735343296374579233658451892271763899193638052092890277631408360683703605781134299911387236499072454543583967481105313238269610603053013733682158841549648387378659276884941771273995007930537609420129807937359204358134802982518956208144417501960205205513507095716922241815317088151226944087961572100187816259381186139356346212197372226940851427363969568028801910244849711380858148811235830163805411799238318073066911806025608674716658667497687613848752762787675292998621791852896467095638703584814813509104856696972603546341396067139682484477753843766695779035759164232557605581640662067533888827594603830177111425001380612028158466266039517024240041361392471005512075700384428422493731126821029282917406625969249450045663121812297892958466418608992057425131799036367783592393330696762888966963712118841949203655837272899632182784053096645853661623863688323144716298319174738172634392011949644204568223404534859683057085660397478168247517946563582296742850860468836311394465682237259479215414366939828889043522984347935424816974091344161489379952420626493963213212811953855376770590931737599772449086913041791494244891432104943703803685103917399955658451797132180197528963994820511341563671779600777884751911014809239482942386786870926536360583566108301794327756903298295654115552789317805046210420707637763773464295056542252829084671162401829411513908659510913993408073074509652814152985439062022023001619632977429451306659207679264123888972009200116286853919399320132885553760153756372838405367622859307931815629732402968926882871503275249618942148771293630002803846275545720828894628166945582396007663557223149759179273096177260372000980266800225325812568912710298801141160286103732314014610082058799398375422411666029706530387356458864151468369219993644608838647104183099637365516056537136723677803236127899125322621673210143210779001518165825157465265026319291006872058723555057223095939026197879422632857678163481219637872607541399997481495366964820099321305129144277260667481497159015852617539806959477464917557572417637790256016877099214024073733340539478528199704237625053142745868124685191357418768079598021014343848489994627394409209231218984971076139228675813474735753356377722641437767051865070931995218684510164418781573589364951703894896678712412022811773483369963175670318993935785835768559926660917557331480659618933470477264368478666984248997437747646240853978385162109454591284920513064612168841530833893970906198138962313371192311026472295686772963544426900274560519536919379030522471025409440848600458127573935191077153859323165479430739341839099077084625713119250789790166653107910456771770774390184322947028112469581819909446204256736430688146619574020869141521453890083479822610593806929926203491784889863194372425862821457656149677951011611612834983599572887757774524062944131483567826530840739618866083003257305653132261896992215914116317298727105602447249493905954047804261784094989256376234955599724704551738289251266539616870406148327364005292296593329999827148040174771922816795023498243255308816613693835959661395339416530494911338025911237094632980544681015201529124424610015529022328671741567357080222422507603912954836691533374263056672755091025233999514081977614673585497009733794657942973107061659747701647655204127235372310545043433927429242697924399629302160895165670535539295353762442905435451016795428012070015829241153717062904131090800364011675770135535167003752147209140655083794139945572143920796304764284692449582768479270716618690191777844104466411862954778441751706493100945209011616815460935713319515892553009579486619794174212883227641777787516484082384583220278405853804346356818687800177575054043113287941194299773022719011494672668660013887171109084079080956664717073198782279006115192208087798561809342036064356181994910079843389204103664899091851801693969626432087455231775200614805939261939972204745393133202707714865000324510517222194152023881336267621989028879729808025506718191256349788786689072558454902608393570267798853811418415504651521843427987025052717476257126904311636251030611226146148886000728773477170750221327747814130017695295832503302790350303375814255733273248225725130557840921971491225725614070485001114722833110127515790990840963827412171378003613706885137760764160026777011222676443901939241212162787529151897594062941322126742616081375759748179132274628556041607389345817199562560801799494352967866734292637493862477611973241708304842777841736157695252416611763523235164769399810669480114942874551800746214470250567527656643925279750828609732459956423528737855032622533405660306043709228259252124985143345317869953059283086944351585765312554064707284162454649473509075398841065205582411026669587565642415448946849883798119630127808420148079205079001487837877832767960259643709952328569155406654812368337398647355018915824956463531118272923963194872711012408120657373772366581386551232643914324444643518364098678010256159479057283375571691643263086019062906946795923498117562459742025253922935708814477414752653962554246188810621433195135253605297400483294675123109246562999282816094128587805293886285057891111462195518196667456230740322887932771730266366460058974619558030154639783683723114402911386910213968125534198062305175998859937491051103484124885521336989908628867416292432066896081038604001209456411295150609858640093215867757603202646534307573413958408266824785309506674497145449886318325649569509049225447611937805829467029170482421711510386912981486602525307733177029785161290591171518362055333365383181291426134191238287742975259527547936071044820736595931540531012079274112724859761243295602783125103338815060945606997997757598487841095350420266335570440029005776483297016617656575655247288983912312560759287467746147021429861668165369221931399007912440765749924793732968205150327299015340740961316529980117590367899862112848889296145244123556614016479480440853330134697054722646547226679147057572791597334930059149775412766700049501767906094088274237014044267924053356398807030246751577295549114969157017805054804476513512403020499982819645805757602440315402265614557041978795271348759573310267726375984379638399583920554906102422354685515322346910352411803108856276506054193156875730076219224583169006732603750739168620764503737450276949880653145718135134531858417371742018787103473962121081381338987678022403107642742304314335639798623085823062111732637847134744180931252329295349602782047632940205396172817363194655753217920667216521326378098088607262860155684806550664683779571499265038794385306630829253398596492475259025731262233615912849707026883920692833539008225540293820944547780610148072421292005455318442586758815167447311895386783502930038525826664767893660307095586014625937354549601133576091427176256294799213329349022872802914229738857709821530926553037699334123697924569937349003606374245705369801780106121505549953763591062484207795872055374343005443504271553124544358382628951921877458273911828493437830431772775109701380303352318201227283646902515338960708426556234668742493833366997926795930966727642327231326942483498796044300675264294758204107963678628838996070356661498637733890099214927533078826658668242043213229905409847969273977529015029569191919136266857433490828622391049892659422476498885374079017966473063970260828165215035570376827217464184981425263014235046518848896045131547935299439029970965596072507861458260188125309501279675559520853527927827542470840862002026185583191427689302556113656783113166293924793402130269958542472614743413042344293460205874173855794378535613667051270860368957503447846291138515335419053914299516667581793203594168632352254411357606765642934230285012578715455125358492111068081322235387552531534677854412950597362330663154864912353815919501016565071765830635576602047666352485903794670430773612117508580272382186309659307046838856280609116648017570504851579558464336078477695651061840862930804873284180524073681065248512775955223758391314669203570086396306753229940145247074639134436206108468377616437085281852344973396483704439642916888640918034859420404600032691348566928704987014863311044427859003944571748691367568199615180823265689616392370549565285367629734109042193598356149375240015726527228385968773551917798955790550703218111325083913922215292100545889111007914913922287880340008592253767905584370591745319212409550181396687923707969856050688624751574721959820097105694504685629401204464833550306951952936745821351635867216796925785265101143119918147293106855374032141673789793311420913535735114144902676899959805979744264156805349059339574146702197963034855513930390618689510363672216196843245446896410034083919444580214251024998144098204725208631400235525471452197679891377192254093681648980100390133843967562820469595135130283907509787047046656905108861674334079483921269914423532798879930613221600742159084500197490031121155956623349590092183548157703639045618440779474733510967281924733822395676958558260977534388555820756425264218136544684058723445294646216944496334437118007232848952537672968667907797804298730671566786603659631065605885302178743497793863115053933328656761007218638480886662734638426135758654975200009681172306540793026376144582535565778234731077438201014351080436345979170410039400354893697729171545451240373488575804863027731571650891906821984354916030539570314073659935075487135285663526327649103953650006715533161330915509271193176666853479919782915340123851377500137776104566037776591053191281109348022943313450480976273428216970554148927319468904384827233023165020640989224097954971493245099259723770988410644197355175894696586557235240108295707908987036301783800589918907280892897139460242785382425882057516503185843495008244655446617592817736071134732252467231755735521944664619970536128046024408990114881738254947262094854292370773084598968404869266335619202129511870010299030241277882796088487645012988946295326037170693175665858270836059302815352031088749578261789019965492749179684900963217771600567245031445510646290405231322669359770934282334120293694128198154185608121131251812362014170540416470635712151142506483858057362061794556007899488311253797802216307187918112876517772487361604306232486197472647846653849061363352964584446100099316669561650680257954313680811875887896341310032139417238718323304458216347687782129903305921772692357692544852246458342933737450479011644676892169707092284777359623225249808256482138254592696954511447529887278204156014845098038493729825551656242782870828752247717286015896001513349168487917803749299851108921712205473730287181521345665591743661108683109615519865414593016177717584517585872014942609090780405020338779763245530723909736704470888441799480725049715098946485261071601927936589326490172778339911405906540065202711196637975576803686463388263158569148716349958570733514098723670594211236095725630669985263360498301191184195361724142762476335994420677914853066175738711157858772621879130495817765238215397886288845953236674452104257467360017371337625587107158423584999991094664970836058960113350077346640659790429524371534916770045806406728915519934119386536631674544254847358223243092365625303280357552807567606326052361140516191581510739678222290287858506093093194145286830972323533240961558876937810490142290667746556733067189413626463446393801236132146302686176565183342575316624601674916665550757040066118307729547106480950863667974307954421284158326180721847377656816953391203834679563974742021963569328776194699638398800908684386093189171973413598392569424431854534349443062062748541064047540819868535012285756455292205849681643117909872246156536064823937361954147214050332275241769007612006532518648107707393109915543418701387112127328617328535867318607406916952645018324775601364836108395002262738380430796005804647329070052383305666554593882768268957216166901243503883804657882667219772965572047956089685262351267407396874324588580070520778899067580410825597386126975994252050741981386331871874703147209228089169318744774832671015746431902282016804941023500250138293114197754014352186469937274042223215970036002009230997357948994736645084443606534252347038717620222056242773991813271211718948170204984561523461774649486432127792564869561944531993800528097761086270438472483439545815887399600321272823254680232817775338724120391356252553952340207298528557334095400990643794777992185432416663823620559993803260236592062882841354022984050355132146520117873846218084823466779868260873961514098809296212198685344404898751434431135480988193227581940232651952350914664083558612323039409022819070974294858419829754668402094525968964707960812273815064260402224656193894122145167683501834518216812607169652431888505134462594233706320765156813478521960079629081585011260148682322383583796334894668025113245482416733151922378272159369472265153016280168582984031724109324691059226023780482510159007522633477574628449311858292244596962459066492464394950353117613412702384853012419884194500137898575171179981838049791507172273938626154588048238754104837415639966374237437203192415809983601371803918456243770379660201455651554240531730735491500005020894402585668950602777614873872982631240338405754759211797900805071175139182801545830239447992831537110659334585173829636522126890798570667442563001742266911591938124954241926476015128259806710408083390230697190991338938593697904164813269386919130184135885090818502901321247732570828657402712487669429319960222807017609098460648911947514730060460721609806077429027097125328666530414630940083810992266204381917366018208521597092963481631915227378406236746184928923306219995471459181640311171287962932585403025219915112920996133628475282456779570949954564689766894030530101483237411427269466684981960459760287170962016975397639898434485405750963745483383905180234550318653476014952470627289542803179248196983033588416585324480993813931226914261153316424192034958142742779729430297286633688888297335552922995008860075898852745316203202698451794969679709308080049863429450624577313838809163041383755741376096124672455497192475091411417165989227512721631389301990648861129231017950747727370114364337766702701411209653294528556903394485401399250055106890044467431597376113634841322031464402916384132111878645814325921022545664797941008450029330431585428033301205633087199992430859152001572106885826514686582623793401960954074840512360119473886741724725950793245332849861224027972358063745089552081318165512044537984875185274181951176423159170650535142622850778258259346286694332679909121266719782362135420299418500963555402169672121549242123533534843253631928681566491480111565589039980404417863628226805790508224620481418719318855522128899625639346149372760909179846019468882482865515174804763069449845703739175614323233965327649876034099614436983649777797198860218824499022204208060458233958383053258295359210923173413158067836474777850662624775180297037365553628259733863419529152008666969405954603313283800741752089281107087571299559212607809391042845175853308341158071802787357073825634034425411548618928315997921188641080707591485842751042424940875332028636010193084952709227432800887987140269368265927834131726624571333087748095024899355781300310919300818567286281348223908511649755990723536877800498596459694247455546106343377671143769598512278875194845592910424780934287587102797447398656049175505430040666007730530566916283995353454976590154277725294275476432178568122774895140562191737220646846894713428322921242081083506241199674543658593098980222816096644740752750674777083501360382245734078790354823111232046202062314295340941303089629939510941595967555417967398526355187036146477050144573941324341084143504073165583740095119825490465866544421486545963254116243892668695013807820708844536882022405444263666746118254049094091947417339621916256060319999519025285735745132288978607652167933735903362111863054432437246291766222194803575203228720536059659387851344866731907464062277422287975809736373919382103209630688197382931245045715114025995519049912553625674486236503275476726775590119183215440701547801526167877350240000382973851173252798054698799951296285231256179985672556160134394959044298788844176709405728531993144511376019156565079411947682623009357084445363377841579488717250404109315542559020419885277955872836875708818770082558981763306476276759256032025539550159673696913100734762991701428810490206105063626600965779702587662086502423594566254924029671625192538419863212076312013676610876831054002660671205305161748653465389121602814451621561904247447567546999078759192158339763216641879024706624069746736770387834902217945794738778749874265067387350173081705026723692512798501540047678695075722610284002016682827264947779065634623528762650738767429360625253710588885824382065562952273364561990408142101102387718032649818281494113378317921388848880839291512545458499609294837775452543491185012245035857438637526824547528648090337905720308232438853305117300887384752609710812246867103393843174427086313000121339168779000739763347061992193800053376143316387642886365903736245238130256859621200289727748350779519117612925436066602368235853280596291390231629712217890733046476773114680995847056186271563768742102468351445848886629252790416575115291962523781046419793297522281471520632282877762984064825865706247537481493197675188792819287510338032654589255723109472774900753805909231968441518508755271079244209000309136101204001128303937790660278245857016650723316893946178499823297606187191275444188049949043051776254243692907742140138993182103388194285889566061434876478273364448887282405235084374186553042055623256752403635256246062755445166786813008689169603214847127142354540792272003692158250744334436517203689326584456128778010147152432472289458868195507042808536955520264350041191559333484882814541150663769678435368667300421152307484746217784851851306443208150793136582860621072945005702031872280806704634664129314137947668928292073141044258107211000102783191391410982526284248494272216497549620986572396210826369738547893072656523001018705193305820156386347824028192254953907562332961278767891739471393881600045094730535071671664874302246564359209404287857196646627692001422073299946143956225126549042437370602424912792464180835916295609127276757030199149093390162389346494590149984543425204110601786341526181441703565645500727589345898079352940334232961855666065237333137353067440432912962596362358657032847230680379799777148554921968930493048372030528611861991758062374038035313839204698730416370587957026264742659533435969403259774873028434705894852216994237290573243200759314995458381720431738338435015097730515269209335022290552458149326443571062580460201116655282709189942143905891641589459939185613558529076741429324201277213932375827935704439248977699192985631776954928192699075078646648956126016138300059329278800384444411721142821016465653557812571325163923893927183789364696428065001514137375699647819528448069521399649457261885575907846487020165841084737837698454402954396046376274455554260273835525475563770737883140731504651461967013309303649864802680365604894766918666744698470398969607804782547958778010926565641065924581461424564290451432593960159011213149022864376842976800957365547872980867254135384489013916013823923271069885980637694802501194064254677535422382983145010954334044066900362045167793961867335831930426393236753360508278821001855337795763100951728263700714675818872230083012678891934935158914870502206420389660322263566412798938365013670642450360207620092494458685006903055425903502776525738319223803194085885686493315122876949795195079980755958208786990790081871570091020418405163853457076616181540539157748601541291749479776827524092491249871740062296169995649844116742086932616033657559631064967093485989806079827345749022881527135678982198422755673164969394325566055133672748601916237645037411483526857646788293852113813777897306406393454673128661285579898019772254697047182118944187204649279521982313340555801936538519063331497812226733382104327597692891101324179612076869478770452314627074875001905701606656289004276677543463098898286461964706891341985581209508295877690209429283799724736691624283341403803944132255955999266320323425817143745767212496286959328751837384091302200358387809549663046119731685109560889978320905730356080886694946256869747282883947547773629476475528784592749254022542227634705820267004990152634649454477675515950237514624981275789622779073782419974389559492304934864366742262010587962620742780084152031845483458488545233035286876023604168238333122563193017783786457882058441682078271062963713160563191630903162250844161184310994765455155845811640993185910649952496998195320295254872858606895342222490798253032291406759520779798044069029309327782788768352495400209375486900636230284939231272733229915913727872349183295719906125274063208575478541251035688081896814693676421084188847454423873961483191872944995911968665217816745004660854218882432841714205668633760099591471082882050129294779385689987840825233866164041719367839332370732170562392404488106068159252885596348071683629007245964198380881621293460613331045385864063088321182361094983930415067332730316104219838884965479610414797913231675959322149868517518585326402847484448662036496229475631754788277079795011522764044187776370116298499920532336484956227936723578500167928416851357454999720053867225962728585897404528366537350071334158023584438597752077578881667737150653327159694783694274183856093031214509096105393987824419410086529877253897525426659352121278358401555458084938002492602972877700591423250402035822859528842090164002674070640390051487832219738568470569906295210324917419857948934324318485345217658979329469856108640048844148408227181322586645224567745726106181045671358565203224233675177490402282117204900876970667851048001764559766646096833723891332974507999142237654293736002957116663343177310243836328503325004824409856870713676388123431674537011427745727824200328228775847496181845305321173722623990169773134864835464840977854716420378473404355122529063989531906362991600439541303124281971558281014824339117043696138186157512431868857136210448148515191898578951779882887970574582933523127951337121739026112704407953464172893524000603479887214281355607870445679566887778274387199802863020284992074703193224655696766603897958407215330847982809360315402521327992925577197515838055233031296718198696580112286693005225815427610684159101284340813582255110843271822448384305322494241501433393585261311780888001650148305013446537098549126645692645192659998007122344359576002624136330259868096013270712438302823915937457878640532785359022167979894431498317978656621082705637194851219195586732266240167478375303142271716990507966946045202152144352790213539847426718666869068333466832288506727899848554826045462397061175013587076548473024455278203766097917695414880107520471195288615178795361400271182180566810232045864610271058065149634311834715499416620766423534058328363534086826639723132814118372580451977527070041703687220031494791863345406957331311407065439288198017785550847095468583907363954733957893592748843253843033350612041156371412362143666113980217967243663300965388586261674402615036329863312157921094795349209233920626845313437214974172967351115643457392898232837374223157195169297693804675423873761963508319532454881766281137270115785955987720803216784160677533418123315657750707107499781656178891636856253065213628686363103591365661435015518630810520876431924374062483405447841286211009867987922731542821230098013667710332918539020960479114987961057906142624187575416203851420287519013881700062114116114015952059961211306687005930704093865161373238400805587116851560294936080622058422928834452895498652025662983822367380774710016730703867983830643518063043775024581796271706185729011571502646771036507879914967658423383014931374713932816125875763387691836513426706381599537614797230939948721799856130438948809697754583391754922910122582540711966253514625359040585406939197747703310592361255728766297919872698248375098904148486582741780754605814272575647217559791311012839624450437678842953933830061419242647056111923480268309536941961577659618192436664526122298053282510565481771627910625605099142044517440841894115130646596334586432179876127236174673492587849248487412037018714333871687100300221994118243904888490450419992885197548415778481975010419714587437144827900651058036416683452249165068401837666454979098254918749974000070055382975382793170773450975981435009744583893850587226276534762730928414962927885992335240475500718367569604628633590458989527846823468745829542235898847249437793554797079400791803013005515488427586620671792854495428188950736123666478759119349275870492859461053795177131667573950548835202254126772940740016253420600899160974526203586316712894823939129496873934642490265984761171549365636787788299188496247258949616114144952517035275118118463996469007795952754990931494198093875230814501250506543937371701746767355071623844885400937582717583703552574560283116813912308898168740982633871336106073664991883312863424301105569586750228075214582367464360886995464809630863660041394960043272428290250982746752153375201675734368379843246888386385832994598216465508425316288815177085167516294567469348850569667303750641623278670039067398393450553779499900924949456862702702243930791187249153367300339492210746208821398654798553225526819361034457865605873656314145013522672089685492134757924096976379609168643978706683944205463989505393885662832790158989990732621470416579553318496902005187458813416220127325815024978209873413610264087388760039285488420120816610727766378233972824395618167925643944319338916650245180922917492837543065719538683447513074540422413150728215420428308741166192699998567432192157830305856034806898467327403929712850230871864211855570234216376712717934505459282372473658653961567578038559446762890348523093370261674928703999246709006610392870105168524109348939850507580547916104052775404869253196190058158458218417977639588897451590469217262916451956120008099095293368228789619485541835241682899042283831957986238674698622099838482659850485333832205489562505158878177704812546874524709491233361570674728837606919359418185917691551383038978571543017677259051097667692393141766849280503293301486886787151813332702007464976534525727191606177157835691631283243100288408622195868760396378033827734771345881024662676791732923821180182752299295581327516058801570014031757898550895343685009199509763627043429021027298094727229102848110624593001430307719390656873948033007538928370554380181038497397153016733560927332015614665811309967370565946992101443802192909425345570467849989572151359654733083666132073150846423499232827049085194771201657786719610600210352714038410649644563593324567616212340112410819690559573168328392577581229162319018610247453798103571773656571013867026748850851892785048402076711526176473882628666559410737795406563755488686707958812748109271688101606872841661767028968696784775487639709347868380050028883050177684052870247233231702535594386514650030632900971930428982165413904115287965657242833870601728409636034402914657005404886994949479925550829846886584385776032028563543451559528484435782000910819868630020516263162246531867650087236187936125450670061383310395791476358311066658386989565271411893205266563547791203796306222363104861293793623752863778190122507269591420503844435472534611499925822108589468265066080183454997606536989202835037150861101196302374972041646993915003632293752097008820572103751044592873307689324176885805465017842566095923968529257849525931978819918364159322748076646483102894406566310508103612457294701847532220737830654070378540825664302187719038649005622039688207849219251332853004128684107399575361090517614176044183206513022851204776981535766634726806116962648623991132277625285527334026896494970096216382907461757887330411087248576639887364031712537027236907069637080355162669771104648133993925359058921643489074617954490672005245368698864175095539199297781758250424454689140120849551250861216155604845029654113326481694110473226615968331993864104483620474310060886499763949487368440079129139333688549553815830755036823890157354880683183670299319639113060637486689484288712985034304972061330426654812295320694167968778557612983870715264339509401367468744961772050560804101705239026331289767473331994677675706723629192288541697394630971057738348360474091986835685563868765809207803113867407630580847504996820044639330448271766489406215594211903893431371373923122018772029706299716747339229858430489806254359051604670075217772120524479793108181422312487874450393022159079598029972355237055404180450664569759743715999583246100081125780321184708228117579580638581323075382526899015571852939491884698234152319768148663812405447536139616334594988978429222864928083316124413496132372799272498074238336591107916884466537493894379632630841688586066776347300689041780240696487914351070673768981358857380100864653801850445789851587150444341053706883284958356794263990162971048905753203759722300426316959258632626170167928809663102094329691945238237492335860004385220379826811641088674874509148138829207357707070296265940549473217092129138627271480078525011751986407377517768632285503664231157818557734894798930494146896286703936892955443154894262160985756099351246946717270075491630635945093685397752907072604897290453705721536261127726698192147004597622964868800495047813473147914801858054807108157933865108520086799807923427292273515699095702005448393444000463083431403863651268515238514595964883846526496722870803310153177515962406941752164956833296079904994205446383653019697942928563077055276603244123093287767624678899706439484260540691158707679845200226696515681372118686832617026677900499896956458536605518105554766526628548282226704342908654159654147698495126742872170092762601241413993433668564280145434178183497434232567485559845958103962766432969430698277042285784210385639607979551281605649365524029550392983492285942056064310442166007466489174418621437609679338906884247917893913052757794830584194039774329446559314445958928417420525432106273497390320819267892781896986393626208932539055856676059959121997133469812120173510984139506541248764436637312350307237905396199373828379717705480194079402635602643724515741396828225933246910769146575999581591237658233644649801526711718644806399131131024619905148343556524781742049946163446072451755285836028261113416347993708688995191495239397686185344398496696441314793697525349933906716860693213208115516474017968546547813248107652210371761977182402421461112176577404439495417667091420075186219050522555032439684295264291455228051908723459222026586896645498670677306473585689847027586120853919466475637090412785935172578513066521149826509994139258631344372694938579120844572017033741012695090093553555416434365829992866289129371591294891548203843695973172071233592976647429433338397479523298704537078461430121366194654938874255220019008401310013008548895497306173487628162505481843268153073150580440179572012014895647808413744479829633742114725996638810936727811236557436417157347215238673751146220494561988902208021096607321637281906211273031043456475036991011722304117316749319884670281294705078816269692670885356286821020929231320503018901922246242985314856912818559153888387006107517192990369586578542220061056412650762403558207177298743593725537666138914898708657163735082489948900883424884948577827964416497554219940794329207754048468826082349903014077909066776371267234492465940089553282322396168056171122267733569496617805813099661872385399235195760556879149848365122316207017717702901488004410662291049327966677451764740443590704446972165867069460401214184020577665131359873233561529585803248090417115304427817281485037851952611558977756439250415565471176665454958084481362965538172971896049065047940248781067028884052598404508288450947792082625932843473560382174897089161075075922461590963982321392512173160541050567265288597528133079776927718021179019702607601798418467363208757933940728767832582068684033166983899793531846335643660787096455253458150138757117054894639839635107392841751650664995381865006992316336878828529796260555910687867360172564601756428815631493734825278101685033956135649905784839762997485661865116876858301067322793319261944726327258323282516977400771293841437733379749952970066576843956528662417344350238011138766678994438342144028508526446468172150559049134148340247741667636989257164833922065948098648043990125764356728977549508802130881462058297120641224337778505359208058519608383028262292465233082223367991952361426633574875282439316481808220465324891588545384316806463518955802946369643836065083175129003797816671101493243518506601506984213852270655576678517893984446114276746716893035536840057880072119116688435166902986411463212974944277991150657251733344793460008047152463713963630032585426545432962748528480113381904309471955536170845251205186767557038375090799755896127014930632824505007596004954834098787276319045230369040294040720955612729016573392470128902736739539808267690367276463049555932728855708805114735710269482076527245990236629638449350092321893002850296535498656767939068619861712936436408065484146024868499701024329939935571062408435637434203674601048335711637179045306981271844686727580113960834255213862862609085426854797065502512872409677323970896433446909695256090443019157202338133065965106478970795492209546714656568883445126811549151458543286644860563174616516156408078811383910064337622377991946588753890179405898927767310245151407371915725386592132371425909044813777570123884224277281258633580187770135703845085961913902128190977368391515859613449674554111194446990983201605760831486620093819656662917624943627948754315797461071907072488513120601367625912729415353237897354406405366001342380342889694672819756188724534632701681928606867132145356102717794273233326769635119570435382819212635776346612835478492383038700810877140831087256846458414827672686723087667275252742267377826164944459799360716854725094960871819266451980838760257717644255746316310675515716135342370773951245196044922613996770839037166751618694519898213986555380405255568430922232075226414430143408335099574239207970408136441502872389296847096497508826778566523227457641462759411322375327990457468664044719886602084952393719093188288389694676655223263101194585675681150773418095551317333767109187114312546455499220032783023969423813207150101258461554199059135431158625414710580114722805630667734212906987077619295548612302402192952590650397776061828825867913562459023596318535820391954654733853025694591827057803725261381160872288686117325644476733507333852630305705448292346419580020026646287788823627116894958933516435935393647554940822273028749678478411595075769334504871394119748651887163309005786142375809254277276179538151416753856756220769690577999229788358218297189405141850379909376866583826433782444146266399596593734216494734614044598244789763513874970999327352432490460815712472320384007588645448285049412475122402695282167492103228415313837020703113823402542638804472265279013175400216918887326105325684861046970419701257795904573686832649465034695710706156019937327006052625514436648331355587335029896360407395999587959294128386167862950695607020625243737386004135396903553349863487998845746619538455986178306535790308361112786186851928504647009160033693599750360201291883767146638260365401274685454472455659247239472017764632825481223110822350382065469609057474799713443337665803759735452507901907858828879531938539204814564750087276775462014210621223246776440467439565290416971341619401667306436884385471846926206031060099360886990691984418286301175940451717761638112206166360429084829604430333371952276861896363069313195864741584590791974386042345027017003072621599503231965309002002003517655623324963295330407396478996727655631104941846896361377518534397102084202494747631884636648947437603809973090000523977390456872173445831865156057254826250767893429544337334913135620526244059870832071785143528211636293808842549091778088212078484789657318504869086440276258051796782650101279310132827605243829303040662328947360698681375623315701099755864136663538037654053229123201109525912673847374514187368402367019385959989865395374865599844647700582125143063088382221612655114696469522973330016793613087053643404216365204032553652489443963666565933429569026712080018134329999983513950301218125643964344678269900282350242673488941190736295625741101779282752133587980466378920157661582819309906768516856488083238004501542477268105309392456134203755894897657246225872995565507895525605476071381948080327415836113812834938079381634261144027122843476981374381598562407020053795585769630106118302256146464333712943119287820853717003354473602640482184144394805648371970992514545779504758627453239195915421787413939762154796859242378384028500693440751517533059919795676986577768836006126249144515886874874620333245425932683113077718831297266513643152153278533967444128134444975974376790978829027249777528390306945860728818786016473871504919417702492825650762313260724678823859018036608930622835792902177794193527054389319611026061824408743862912473240695359261522510358466518494559277786756107977317302557082598068782814518541816303486292877691667168067433872957700035084044963665623943727888417155098690279950266806374641459825511953375198796959248478946495649386161972310675732402174026934520363574349835536729155100357339979766936156852311357735692272119245104490521540883806668207646863837955307132170083710518377739068835942580654767560745180212087434478618246530089195021451782733001650391415759011241111951151243068366700777887815835223131798926301928452881854518773722034056000651995568420283922987638166034820986872727295709079152479791207414546887148641629508015182147104585880234633810635250195645421154831148094814280234159071121509582152954638340858229345344331479669644657752559796634838268516016352737139721234799226230864769476713442557447898585155124997299374825440363713529175227951445228744090026992876894137746676259409138574807446544590392684262340550214325939913485832045860748646143639588542256279723301513706265188376605672298130665216444001600167160506942375815645802641400870464842902526689287687016645327131239795316363106227821407308678309214454729677625985317673405820139112102393406884940822843859225390961546687383418501640632412677635432276107045972440056617957228810844233573537468269203945941568646794089252096235262343220247667530822158098302224784310413962336909449088701106001756296400143313577753956539629545173447591576801646928187241674170527137826502120961007044056646970854477471043864904162167455956377502656534052203390596163526730344067101831927601799484315189144625162436929990630573883197619969557104943205536817500893131454969985266917189688642659636778561768141534879099873262618200573541195776296748945602318497553981104385177513345550105026735440367446659648412642333747959806488850481429166678450606527837590380810860421270629520617397467213501768147873779418806715416950517883477574749994126768759171246355533997020128311552779284655316482769730401799730490242157132168643470509887678635591061075979859167208929794242759106101994785600856303698505814272859833748834549497686221485000983419562979689865599594797855018539993262116412692514019760965935511242896221848623872618274513915277858227095445449375101056594112500661848597203426674931858357371829725948848623478566761672533454588700765255725967677863983411536891261710332387308396516788479244675096674808616318983085653527705065123127169981891140077510247318666978361157514049509707082237794474937189660678734230504623736578163703259517614846579254609670855155341777759888717588088555611370441224891166467370901859038230009722766617200335569541049996642318628608471979374103288060295101242285102999214234306449913455567828777118129988359237033395485995794664925106166037995679890131147860953305611126920075708354641136155336563672331207805003988046560273708383380300365344315088706352554686664595175094700082397928797088983616391734968949544818331624231542413964074503298993545176590328144730825210112250257502766626920406404754838088990470206367047611008488502638460884905647146564153787780400597903193613293728912516793383113012748933888314480238458615508348694934016045185936720271284929440127977473088571852484502708455141798441384869745954215342259009489060789381841429824795164316376555306294185438229174290669143192144741095947443602196667559962500345309876919479638010481274268353376852806107231367329744782116393685755734931352594937115827816042403404385029386975491087178602273432081121954322864975555682878877066393435743919451085158045783246354937844486233242016889981431232245329332086555698845320124119955389890116194645908527174418550806517340166637884978180349133416141182422406578369612170857903120663742840588112639015950161555703742089966309346495330941611020354296997749162695485244544864960339069901533931871315944000006459076934926538365576093802120279320999280599908097258154742159186220240926584519596933468726019175295159076917954652596534440733737256270251370861627057149387238040284383257005038482754555398498304127517257958296290556792566597896954648121484941537416427238891977482462374542992701135098598602336138692408945455412675121225968600183685326798987474092992198191498557613604341410311857588578311200792466919736507528111903947065937896755310218325017668118484828815451429022753346314096002153310041701009874733227195603577536031424329600929437529319333126975877103674512545205589076271840906187850591192204871139476857355302580745942709569072657565563703482314025267063131646657373697465065032432067580551638501779636073827425626419263827173563568760957978377769048854781691510132657546309040080984874275498769909698873025503246322729822367201687875503315304865698304124412737059776749454860865975810930934434417867941256155416274553894088570253468026837219621852878273279863694017687820698390741448535598045199610454655550414004897302942730042441161782390211107854698879742788919934327053104986134729059543922310271329790476825166183273970852633186770562455344507946505192062173482015338961777877523839244389500180410267722973199113493735930409180847822129179801027689028420623400973623649716892326834952702520316267905690882118444390373136429581534184710739879323471468508883174184695873210998191142735678132286802173224794090281333771208996510354516439069126489181132002667252332645692805201455729660103788278233096474911202448274349497010663508661029845647824675699944848942022899500028852710142492631481524070204549418091877899294524360419831097263378967205806384348518391510516765775808039003217817077779440600371107288659219305022963695978077894736597577355931860665491299123721490455960958067302599074049360339103834803750340875821942022936953952516998728090327941162392675715298131326068199992610356760182915174477453355432294687436742956353925870877142498695696423496970311371047711919296698457348415042927645060391180383188683696962813489257177437434532165225045689556135422910599472597262625002547185507047842903325464334523870434817822314452538905150102338962840477654109319083512767132070202855653689351709007625479635753459697365458855782192065497421769741170653181254874008010692264283909731451089667728290674864916455810335853534214499149651501351447146994261570443445156220419981765549511812034790792565293331802092562767388122287685980626342105344168007498914582301800830964058165384167678348007766265039545500743852396052638541993868210851123032232560008899288098481477462641359298920720995603131742744191437142045197702716659596899212469198320571408831884278707913967180877538867242438470647604761557807389815053994285885916177488955168594678807209033039697478066220032137823039793291877412091367820219593945201529311200774576190128014798283686145961133276568449018745371661574176914694551174737932068288805009825234771150430139384898983652841102082857018011025425480493268153292440119556748177351349282104192864021041280913397132546459843803416199763984360361423867358101258916914274792351422637720023095073729955668601835994543563036880348695483341996122349386089075290628010888856070120604743683545662620869553194803016028890113495662831285221585853627193158392116672223843389033165972084022240462523201811406351073721853534521820908677944290047688915415298781633772271151312909985253628691546092796104453834924633178494867705642272103728820635283743751539035474383685117009305431699356282647058180411633867317254589876559708557001514086835264334445198615421240070636967927794624312147999671971565643914654613665679456685546471210563256105973211458561956639686541304510067712134789024511377550993516745629564564158988626282650192751010404009636641055616019380704094038955492397503053169876030597406672257943447044215874852509060887187878233362916151586939918877583958685857351869284912392953280843155442918198488411070389260517198374338819647791798593498418010618189099859494368093216561794486642079394766330192676817454858551219337319183339030932390224605931230141028255513601526826801494634869318570627099037620012536976917913796280025648685669636859092135642548405206936459474941334378464293992869254198249777937109799669679127480450635757016654840395625263285134646096413205679155851281724066326931141549228627632093582845112401234986658312847329017121447760207628840752499787246059510540644163294554306471716465826006937917024649856333476993900692673003185730331801723370310405990887112761219423701380165667655744617599954091239606719401193261235526555754757453900039786309490883540736631726373434765925344977788557877540334579816009109004258483878462337568988106893655136625739432242669366488681596014631348424795276295334926860373756824427461820945179426088808200763650004454019424657185580473104644609770714760174556716408391271232693857110894806992586438440526021263333873347591520432864691802791002724368924628485139421890983247953107991980051242537490079427085917967038204883820806250809910776735199577443192369064995080863174933973759755581243688984471841044183267850877544622126853845794583415612804013827067096088533683522504526951112882830215598650511462609471271595147315407475312713228031547234161751349136903026778168669947781164881353817426966997848463921438840315099695562097764487713989767909285668390176560756570960229485853746479121017274638558660083558381921870650839821906046045612864217165038772967610656443387894223914959941938739304279917697868551113278536504797501160448644953166481043348724337580165356642939560002272108952686302104369838294104950010638934788897633021373300992029138486882819395067971843131332815964747026381611412506375318681878545301203901579848866750818781098649919822030022881797957693088603186940534322911237817697521059471432007718262501344618303543336568033382564735004181484871266218360806501896131874447693144134397661378768520351221829871017868415631349625598373520475352363263187169171478837874715876079381852892903694586621593531555074546704684394118823924036355388746675932427275903067002785774174425403202082674281215623568608464331814172032878911780552229985190020369499957973027362508828518465032220823423119679720749755209939601347874240845730157273329589968209065842987694437204945068455808862607391652947486017109580985882410275036018807812761479592209544131989054360459571828574195592155739689559911679363575794042166818187588228217139790726021187034392773016812122512358515500408442439159913224245636676542592271746922870940141731415274574228113563492901588992800060127795497974081512854248680900505705215515304437393566418525502754811299067279257388880211895743767317695404853373082884334549874563996787601026633215473295084845800612521227251773706210157080239441887922683724231316000347826330349551518894554487700600372925907025662387249243827405585607393775038399275883738846389174411941955862524036335606174828103027557748544433453473067935152243988800930020313862509003635711252449697165721100534429335390134148952034538146831680174272205150377554448403282330941389268200114309826279453663217448625068814442031132777373479946329580399795470680822177820341900006300143036334174753852028018851055845369570779359236662333405322592634270686526977808588488331333543250663982768124458608443882956699615074497781964075941070114325913533664259181613757352252126936037022802529725940863383859070293120238801654761172286061935603526536636971687992349744815159138602685614050981532351510992532485785144086045634410366254534189983980962383934684822873199060011813086611542494468737167518281013969538543586413651345170672887782481074784887719299345276025000281840409597030206606010501521112635058321405893439541966130062972098710050902514995948811945095421531664161834468883427291220334827650559006876212355365516366387929542572680108224829050530036196776649469158596183511854504431258676959220179812041194649510782038862220145407488852402348727845615826475189466894813595176869317379365921496774876806883343132948332883764538448674954216238232798940641939903861119356368836509538986187010217101812396465605658747353996026224456840309902032418884353285461792280543107882559910031297395935631867935796421118875532672205801771214638674163139844712238184684591692213363554217612191834100579234066211437999022897323160401823869554673494402680289281124714478923529151303082971081643375957785611108210381091467025752391746129664688859246417569375109114762057628019966946872151635911657950802022011532322055482355277399028548603228100470126146491460805063392498608463169549531141418069829875142616934936992033301446848337681983908322509093464224653844266287962611228781383919860856937990066316525199268190818863113803239407983663210337316208011578624367948867162772913845389789931459164552617462816012245544304144179504955126476095856763504149374942584083413598093693253527262060812289005582484117612967581019830750120163342379743672740637971131246403408852155472379157189012645229186775208165408473368040257941023500068232152674459430595017833018371339107745039777533589727925170783278626347777007980463877136404835429489396119099116108538939123599584796041100812387648534406464570564296990358099669363702410345341090831849737071699873101660124070677454100492038644944609863217248428351220846541928227553848236163095335970122902150179851900838988569380166264733887975633114176224400928156430989830125114355988833297825769435317457623434114087277801523518692891824771988819196474893657579182908503098285173050583540732091871649930668262759813905319611029765138517772522908958806128073502403529527577322977173210070849507976616577088907904595400126223957276258355269304255106357770618000722292506939513064409512458833854371895493096379124899379670751682444028474669734677985276449692848600787856038395075462717875843067219305686634300291415642585489989452537492367151603817374266867120841194974126819540624383961286208414514952992979125577967234834179096659295094245267903053476208272620335437605519404584549920713232628157562640013663418975667735119901606585466817720114496561070195488580070355733622082478086973728138617918009189200643992424648785281381263240469255627661752474169278713786400348129259170480389703537962060842218188718400929986963084935563231263089854722753704994285201752056033745487563340211104940157907978909812636563275069165159389077859283689765629781093012134584847962346390610079761240972429115825550634434744830138733935251407540612567696281388838652730974453473541383644477614731047827684189287976928611097392247015570111039631800701928365806655265564452189298117763040541634827792467526409226255466705613501825185979385483624019061146892381587353083074154438067842100692297965520024301617196965686468740460602962225799744037508417720974284133710759428752528046353781449735470284087196006028797106207359365496161550843717311970506223691305401501352136756896630068841587870169015654659810853119552570612246833194117025200635401636113847250285569709256720755136634183499682734185185985775339916850727036909927422306815696783246849808010649505847133944307738370862555908424337804984223301013114802016687198170294890239620258714713002475653369531169650034912226193035923347301686211793242252234566866619124531726481638234745852392653220319533103607454484065785579663521367692997359341436217820540954465603370948824401159842236845856922082702931213276754801116061224607577744750946447432828293945491697550997634846345886979325570483640086548842519874413781059682801093700379073099352787913676112006057422808241920975456312482975814356659828282727922125305948712037946218257633030591031632995094839336785043317860417427122324068050959618822776560414974638816032330363648222943446191152697817583326615446827659535710460405106387440641345499658076777250679961597353482393529143554489754924638933383123880074412086528898783703374264976084021343260153215914604837942299317321481148717168850392502138493660160103762518250146491616237598622169706196031286924474483004739246025413336147764490553723651782403747231339157226284074746073565312302145036409768690356174789526602203773476971036341495408859233745120021156248507790779162324112605380703300826342608612493706235056627362202193483923656774937954345954967361338320812347831852016827082893498281275889987503505079038588632523365544332036172487567978563889020899405141246093534862370556531155436658958836603660663883190374086344258714467549223073911183829527985439923699162421507218328629269496223125973692689981659851387113005212687924548092485394807614957634622246084728947182158821246129662193861451758045383179887651355337560819420440377313674821931132346254385812077774915618233613282278579594824239594097988626281346615849606429769587567681908262672882068720629905969601209364685922299584693197851471724315125470351264629073001467061087649030166835335474655347368668851462462534293567392788506026172337590751468882872116710126740745273003846729653006756157928430469032119662619285733048306047850148679592657517440063349890786236953067564517090341384546641362839947603802267292983889286104025369041708206492879891259944423104378060959149041844430746934555680317350691915835522985845172315510922966021242772486911711091170056409082603326500816437158003065146453093327395952511623923210679638571014138151053626568221541132692305814821503829878050373310627664077409098435274067163858921781716627162067328155650917326034791320097830290599014515238546610735806636547674424505408370000641952631630727543502582250173088511900447578009856629341610691216937509773417754384034560432481635749707013104279958235512645712384316680983966328341947394520713643097413361698443217202522976700080001486067139627972428677896978496174870583625460986278889519489774034884221868544370213601275866972488981406435299732589855516056703803562207622165112325697158179100667178169658586800553888597491484009018740417021975850410364944661088608531670323409060836034566895649860555349324542702559770954838989522599399942815627372299439258666983079692775693150819102512456837840600823211236594566014163829873911505487803049172020792104455327722815431184104951673835343801504571345796570502945585554521161463204895917684162069734889156795382335894685027729416431702872025510099433856290667562182176241905743271372497846253769993272426049743821481100394428775803421822005227063270151520730903814058741019072224316744461368723317663026202308998060559103793361290606601912558126861996493572342990068855051869009885440243849583335458323624002376972394721317410410024629417778599741247345655173016930306126404403382744339247255092863160964086277898995233526003192840992278477550090707831365246896895657007743089645455003485933578201817336083608339294076022077328496749598936274459524106500490653681669185082384538032369790190186908415519745136332818249577393478491175719813838441950582942207560435624818824329435049229868415181974642640402416588141821125113810270710873275336786043545397114779034300162670455893495207876352479556610764901036450452201854809214983236911609591921084105959717670590253308837191148048612758167523835533727141386983633393604468889730330185087767065553057794010745102367635215001279872685788109845889214809065528616711639179922034742389777119408032687532862835405686679098560594195075285320856493882395371721562390224450170035572963958270167233941422278141674551663603270049779558656145799862999229781136543450174446795839467130764604670419415076287772434963913136680394830783469470399136431633270212231737748798945862268937505427774240964410786108342479221271441062321924982426243917324869421573295302570245916574005743147245654024489261217089253457175505065599786796727003327441031441118013701945155854246428886410856497735075941715754339364459508279571398002548164693574614903291269455391872161432583301319240565149451267258068019821348974838386399631231723626021944445384487719538682732334632711699797521527549917118943753348256176849911690893114575267427832780581134057872237204103514913686776344141835396496493602598268948266227624078033753171132297181553462335905521314634270845408629503018097970591984792667343331570341761152793573005120573589050187167292378690662119776907260295421731277197302494314881458321889665804998069783696477273780457347753492819381355969743097138261263113517854868266504413912157643870685684238897853064794134093503810886527331202886231609327261861531992377995972642051791642198069670932928757037334784359561869534020109243948209925426912311465484985153861037138422843829666791801067807524711322230470589015892222819376664555139024513961183562312821634487249208301738281816010877772071187335286048933659803987283434496925876771180257398723947890930767881411516787876791970076492023732558316206085789182522280790452939074127941244487587715444298992442620768534571591935709890590534540470429023471926778280966285127142090941182884385072869237298324000651630459447273206165852484281067823300405724523415661752845056112904480631222634895547584196838548535941428471849364573869013042808582055858111404628995179818182992401208525744893694684385596290838776239730292196117144119352312629417069427907619407495537393809967806461239021672562785629401877683785635155635639229359106370487982236528875484166215014550010671127681637637788465236249318068686802355819975996215763136171336616057609266675870907838788126910245249702161447885650456486803053848464530602315453462690148812270053901895002525113652919174004348579974249254111153653411152703724827587804807631310889578717132670167842613899773199096471399368573481507185223774865127870353119501777661904779013013393893176679093902607903161779184122507727073604001556842483889160513041981386122241767010371002135551442286499547860838390579925973139462345036981096357559112824706745851585968105547852497338376762016139757610169054524534508522549304816770554801989856182632250764720332398458168897383050011492608451044300459841486422744325203932080696729595558325908567636343841409737940184475950545450155457461095247546547029846549270836194211506592639695256985099995134597031757878460882039228944431357578954800991570556400869482914401210139808975830905038068214191520493243744172733541925290515218529049013596567842619766254517620824325531996769758629068485985440381345579734950469596278642565989243594184925947500592398653697594748980448545384639038685174886944982097636936713159573112820663210913842525459095330460569504613228054453395689635677108876652893807112407085981886686774180531160227883585711150303391599800065082471990185919018870459751790104928145931123441694971557019143481008559603550639874287050788085903558668925832112875237174431979980485104667248262324943971118603532147502805789327326583281918142632628252759474981827461272378194452699991192031661847052255042702473854166174061284380703619352827453726002151095951892049955182428897533591731827143802972993933361212640903705891838485746432830683615076587754866357045671450351592051429243595454897359815670241908183131972844075576663855543216541954141522894383542678949899775966799092207491451957160814693884589484470435922414092417195142484621794213189723522371580521655603082255059285237010894424086138409395151846315823479446990953604551051235366329562107015837157625339797622653307537889206916014721474571427072469777371817317120527455033525614306619209744220607927552506341089950367063753285414928260200939088416056369124287097935278035622722566687896669690938150200274648954548417785379407670467103412237341457188195076324304103445239757436390076247898468487583767733799024489902275186367511015616545143127681363021984850189631330430034685689677444782869603256565962635686712599123570801698902118494003513406665456175695514640784768055522216357804268027080881772328420226120746208519215114998672440567219404566218651626759992876786936570545951303906235871466162156740943809395762671559828925852330412406705633291626353993091332718864784985724418532166680613118364039492770280432606023034592073350021230471490081872157305230628816121598982168920353419177639427653421600776306944815186623998602223687871465862681943135604372153850319480900172137913126590689569523299223300480068297102752848045764608687599379383608225050385493223453529029302190939394221899763804437574454909599346796105308804303138842983595674220497379793389173870629648568364020315653663002506677063165308606726539891780622726235241708035360539302221104878792892217948235452177996367795157994752886997352396615847539077712095032594093299340034017487015839832299480335520371379299678788862682691154942230721302396258537816508610205700711411778132885722471314936468364406583689424747247260004500335484466708287925654715666353659597984925148055878776802128840101808913480849383011158155640233877269989080132037783518549671421074531003771694558186178811735421209737117416291877259260651140460763264428306043559659480931405361493955906077084456637453948309483931087821836247321160467608594242112444636193581060716054297597401011904601365039655702178877057122497929778134766827814909446680640289742725847853859972729672897709673394373374241021618088498629332979587075617309212834010475538505479280423997501961575436690288438079201630648147985675350627822982133945979816285111026883720343751041452515909030352065427087546822369629146640262559228599792641772902202529071102039585193805446171938451055945489463539605469841431740010032235284164901765709447111436488801547358464307981709303720497824369977987114557337530507528572550428318323960560681789279772280780050573558587229452251928843186626747523563473382980070946185634627845935342456792869735594780559690286937128521238110533703636947345351646132682665875130863501330026028910799975411172396423286819375990546027480033896894297218969735193162000251532693629362872964842600347829056849086283321807885703964826797426165190084371733228991817158575672040477004010119488781648506884083568147862880125293070361427651999689068181701746685549217807793756781643802948963932113546278477916416007705263192306924345428011023355519271610358352519631367741950356635867687363697221336472362073509684492984816866740927531529878610967919374371838722538378396685313909674642440133093258461993482271756037754725850846572514071590594165011456450352322267874762382898095724816450479871317399836166122578949151739418227800264709971123751829725773759852106135568146563458509492082552227859799422181245642870207982523398356270191622074967460542170777215742508475909008624674252141048063695099908149625382668588382484831728642060645336362755746657122396828565491947514687325543438093783874493703971132691557327900955902907845939649378308720139620467668857730251958708824143182739403406875155039218754130667645114964656906927849581525299081857847607525687583192677185815562224508042648939189464130032503703843677671849267929539076435391216537448783756671731870210835508238356725108093882700373086439960689060960109053290901943019280916337650605341258168483844318851423636448468808667775440399856466636887896887236777077850841198274687707368846158943924913478914949131317344260008898300231097551805861829450701493825793363048023581948363974418953066250865705856950488747573891682635583044500426863852382889080017384114728526782839249772398248251758527330443330150429381820438924455540475252838685925676988389308235329317837984330188512794467934558199349602567936719511468667940802154816605743899844928062330737222230124179303535471842614631122416921615099234173778812103419868433139029510454008210195394433161842180552642683680854120963828719911444773228279411411200922367048098481955744484481330973190375388842882305886265326410652326776410689491465974044989044422236600590505732622339171636473379751517001077389267610882919565115257526528129985457025287873476439149185528834769813088551239102162647444942848550456797956071696273417165173949303238576711821179374860483362377129926611732532842360499587397669514540761326677895092498078720634746389209183397113158675470256029652791382414200051066594677567082175581893812105028893478545947589940334653782628340541503699927574812610996033143111777653425512676995326233224044055166162634575982137765456864254322218674725716647784248415404600202940450206549430591528743023766395597075889311374876394244807177489759369536221029363844351397722801496563040519643149981661695273428440503237916320682432897012762098959087067638728611673846719606096577875184402104894578511725183181126291197424831645681498574352595517720330304121222240945567794590170964123670472189810974582764072177538856015061286218765032874231483910040361965689097806711229440403417283433437122010948301737113229052276441600947913896658194187602687222491358700322141689657161106857496539589902487992206005828669254662409945518384108794744536233989607993389815998453604114964648164820442810670034743155216382214939884661149586647928433560190105357940395373972674698876348785953298403430040317819846347239862744843381569399231576379835310583109977581813548886693230868715711650740422911271564503274222822714215295955164461946592639817866726389581220600807094416960833215263131512482420681483760120193289886756843694515135012808849352086925333401687871016597972987878526179428120857185577490381351333782173729036340273487415879071384365520296243674774578765343892510744242273660565300878223900476955479432940488549862009072807980753598656128589508129811072164167816051149917322319801121225588591424622552324521964551539705165449182234754351304021117056949945059897994549182658082087350910334055287904273684019317497184004861368096265265301344463182990025526745890566851595558651842480054107948251711690705898486372916654527072702991343707795429837323154689699966090343956572649610163904935547470957539786359136721528153478114631890405200891922333297653627465234515400805450406933221229347111557531809164734053305873129939980354965170651318745172685071529971028511135778464079278025264792175902821818502530749448077119777436147021254941058850010177492923047932031471725373064758774284478296652452748065290294011268057600501722272625463317286610215968184889799200780033345756577360937331248730314103956191932532103433168013748789965502966358500939161244256492343766850982780470569870317599074543518333178461672985705549793808245662386742710044702803570141132194635452506790187739491960645481218812244858249445301237206716733024404653783677176475419932542709672563129211556647278570123957293134640974188908120385437968622038242569174648468928916609257163419391681338119299474358742411508117704324208498773181401931966157862020318858565621464279874930410540841485813123056793101009518866106395081265348255743737901096244736136439771205553928041704054939541463656869613872961027459959674021650817157482291420231440047635334665426858359094067352779812974409621007567928595647508639987585839613122418088672509740935033163687747702889449936020469572613364700866378521592215054649036285027193730149832119167132466845415783072243610939506569298831347259689828948219130923720576758547982713405715454024270352399157691455368986247606300741629046577761381853868065652153159637463396040873231021550971591482266496914173082364548514322200910790485231238103805549850396375164590237726063980180918769885116207457692617823154174938188378721645787616796572887001570130703156865112708351741426995075127771457467181526189574425513363527065434607627964117851590471919868781605941725368063507861983566269161726280973840341688021835479784397429430152691378956187885945653914845851197305032370778145910510218116176376145333536461371834966896432778775224358694123849492082437859082810599151706914562832213209984240753305183990027861811522895631489715176881470052571578693801861249764535835140536106091932851437695059510922756994638803050688442392222544465505095417451511697201912160156386447209236514077978567898944182223073286274039105506710335770294075449712211604092710295619665817479714562604321367585600485216146779641356052447787139083840788502032337544934289279188503862414533560900417593188989557222660020561210693200410868289794779935974940946722663463883827979620540411887576750657126668545641589101700744217422796428039473074623812239504501495443117645895460961195062417593253964687597179949140654459343251028330224429438738653043541727984143903336434356289012458314982736989698767293276855040635463719290871934975118823778285311182943631157032792111211787584212171670457421414690834100881456732039787849733841507354123513371251740083225386510134765969100162364712668091436368862542478992040361383189967324488024633548372746105960669396278085071904164005299618511652311778947074993379387008675042652166127802262250174424819026113328625371359738397772506981386760781129691888442894748404943473658206074534179296703317562330683967821134228925291433893623563868050921032284980666115370116728185672687186357877103216402226301530443339109780602123793082540666882478090807524904244093929664231089552258429809260816838185275005093893595192780854898380666369566492047997399024742879528800791273612455952129130754272246899013085737962418231258579106068267143612091194503576758333763634033395156904084142643676458943096680482589259398765884323629215806400220910987414292578664897807998341483037237138812185424129179973427540680939806228942603574741555979271109636244494276981370382824150583101622176447986102091160032650770190961920027077402916847822195444474684434395426649654354711717684893899673080986560284137000651273727456153094940887168865085220686901420281892288277838787268692438320325805310869809818009142193622876215118885727595280950928011815357523067836480421430158940434065302922762986323531125347928769172589162610210283721973376918791011518122920223778016905942574585852167462260135121968825415512142018603526684496554621547034382613762199602913406852605427900979682300273184848348349188869572813740980093333002986337524780958688978976877436364444222783679377319429384701818346109706821417752551700655328700874201723030447146382934936032116745858597718639716174686797036644732672517207343632135299941382618921166489995810735595088863356001982355044523317575102361782840012664883677670511371462216619980759839438530259609125439228029268227193062607632110303029874210675470702936849520397899157982652914430997205099245858177352890371909059719857240795087180187475795030172067818083444448098588855413369158023919596716906721198447144174562343099533355513931031288612086761863553480625080223525234025571126852348872763996738727993741536128527404500322711183394994736111904818005652800596015990339884661900462346974900318258588098630128216152702071168283480819297482964097471318812981331457718082733823176849498190525501937225435000178281260362287409539844775918236172559294264679204472272809691357871508519702904045230204238659633311346963834480936807396149631196866648379555525177625574013368229982329488507185203221583713368124478784988281800602883408763623893171798670965133595703081328148176182558323917232733651837812295590799013751712661902559062819277236810360268220219427937653369080419694925955981539469427437904317272658576584054092388582089450126613512835641011766195304475067416784782267970765786454525120164662085652350293853444636518052992285495111172810405072780482764595097333888808798000141118211204781754862634609588370515905526124836465829870318919293727191544176452682547870749943028671287577096607710217083523188208456471068465220743339156924856801978568458693425469623688123947376417902858434246506938560707021534918339168516788754527553638423281266428895014777166563065030822389199174056990414877738262414709551527353193405207400766762034268166698903707394364472456964103758072195108800555609535295821096961994069298176692870098483514464888694152237465449330551454837713124817578798440848668626768986081183828738948162977026130580826885087676778988896688008650884408450954515567021176433205883720219612596084609820572944010760732078094063915117300959688591279684745024978332151978114672034400807531539289598929555281028004760318452200110560368918373107443189280050212282870289523741816891811660858837355671159284045757944922591308209865289795989575246331983122530140310870760308769914371948453859563168899470272483488170648047539662700980241096114503944195654613738270523662983589452713246102286340112252966468083757788838759667313437687785001190469064959152722428602370900658731887331559225522453558333168148228564359184281495972015585936549330955764166879646028186939832633048830948846505862767837403529471581990274804511558364648118668874653289856378967579612411788709573506912689899403018714648623525804153038937766732142443278761658029840579971322044990103892381445987695911114581437483167152465312213236927981589058936457411833297326688858833708842512079643514290054600381870280429526006771745509038800698531047539444288149538884906864794471062308869878079276240590875066182052879799753125188834572706315223414480090970907158306388644250609355533968820473383640426290074485088181772438490580001680869267960943889923250091738481494116905977352100500701291473884099383501600150388713361649150625701516777976141423594120364206160744311105686491791175525700512197259355178746566992149588134421701653375926880738521877635942870671751118888041886894902103593096737544816385534309180255116721736625952334005394371077877211702481347190549173215950527037125306877141851871999504562392588274467316950110200418251537891275840746340882793515320081917710620544900339986388488893819954634631446392910046840303513126940380055331084321717095650297643441833343726432286133690442686864588635005905688216740907984622980278721211704692220724288384023719185339956814728679737654695600010540622417344447531138137806379039296518174025021003082114274958409133937777802315026364367318177790372309914644475600225762471023639474818911528850499157778594988217704614662684428349374882977102334017635133711681801493508451528943377093409060475310279624692152793421338624267001039302433330800575294452612753664338965735975970158048962943548927403206391527860137915794324965727904676961572639833529745145553621135610808252623170257383963792046072590749088789347202021595984129499348343326140332520117368814943938960717488395937603296861529959607063409469667553814721080112548947199389138710335095129261599912392637129107565234423898843237565829100798872233198573195255533655264495464055962780102746766680314117438344275977723007770427500219497716598281536975567235548577764508602691864009268960607115240601209525983339278945908660896481481460123242008570259377452676652182511003633454752766460244314373323406888335479008295993319703342781185491388725982125382369933213581216094020869460354093099333946982844726707108386459681090632416849000327447095374226875255394739966966491615330427337151789756613231037660657211893643573388110655076160438416620884934731550500634263345519334138057415216907254742866187363957278142595101875576305636563008277486294891387465385920602642164903622537667260277802175729436061463645211653866515434729574758617203323511129168255258719574748880084846622476516111165580337297216172144256877788844130651320752347268677900575039090495090385744797825828930900715697989670567501222333841058152483685147637766013435864941246439812839000299231974497593643958407721136769890936644992347419991454758234825143362739841266247751847740604711195899530107575444657634189340886880215514986427274142756389285782904961143761664744269848382340405358168107872739334131518952517057520660027776388815951080381087788572457277257490138028984619491896949361602744181915956460192645222504889930675586660566623632038785369637928603318507895995450787905144375894304576091577763078720254960589660244515129688349194755879099940053678919413620126068595944057376201962338265436794466632308096707057605269365707133866040935984179974302078157932047595959623372101317359145733937317272658227647163291638126725018032876225416271498513253454271208808665822610249593826329581211674101539089139171188123687520343255770026864388821142313021238281506335364693359797665884482855585006856991113603389378267808152048226334898764361948624787111464840635651464372513253309547041036978294709779754837181018506966152247474661653245256999452570260414842039953274572144093646324548469339614081646575070156283942259909718279019323266357680072712094502153420779457314955770050089794312913008546462513605157402008291094866672424676581670985653022872225917812880900914089933884441168845143427580238670015966446611474634953162444153862258126166325153234760691178404919277103750379979416316785850979513802475718759135278463529150472918403080196081673991775741528743041831082131125160674925047296489558945003601370998074855261540467611216705518965488204093006033144196475931446461445139482164207671237370205558255446518295069627687894980921848249916764747210318832593681061423230403422954965452299991163387773285269661332521288709655120389954518331489629420236525318924893541000161887914558364685498517633313657304941044024358055652208300683135846860158034474067549255846165843157036136719636106511294381671289801524074529861076858288138332726854137289903759914641025026741980706874853556900541832904388538343421228004789302378890351065451788838050176077662901209289751423794596454516587933723310145097150196420307748220931579170631334771223578127208407156884264364768056027179350526225539964859316967728569646396045484180800281605954032465231632444010517545576077939775949016631045698083851936706519407553573278926940130605427204309172781117222095010377176940538836089745549024746377100326521892018440742408736077914044199648406906235772209980796752475177193236329346196200229146156103175732823805512760359334985862308346664497498600155077578309759695117979315123953820448849668735417826139071175800667839265572469542568308855379866934941521982213300652848231294455330679880688096591530090622901110580859032593928286435083918064791151622595257571482177332979502757974134094819645104719153163101197357312013656286169133107476426195446394985018504291349634493557223419225921441745257714716591514207934854203844012894583539672850948883862468035794988972015209647069037090922537302069378882787629967132003377077047943576884865009024029739102723818444955978111620363052356130592280734310153217638174210091177527079838139721551469040232605421115386894605597686035880609444363523523804860807581144825117975652709137682645722597118055811144400838028306833648655192669061040960990492702468085014859983956330188630911815036441551495932309504748648262542496052639236433246670479909358122673863548311751728040092503053324389261661333702111604839387668171064224484739361230118401546602073281608052620395869283934139285610193150363018485637947679120005816662883210454177738676311339226150621458154524615055858091346792499760802611926024520372372675033014490730555843466096967854900313509362723746353447280295312739649232312255163831831169440668054796164590516548601297224525859048867585133495344611533995883626017306072520982084640182898714609779010848884778234883601524274313998144504614388803610233347543052999244189066444432772311130500410229865052688043890544084439097127081931655506676848207375498335125211052386376258117770919730570697026155194033952834815848128489796849828564297262722502665847853711427276254982327848019686443853728459740618822442560879285687504213866744232201806804375248189192219521485050245407546755598332411253867956314959609230889269092865041821148862263182750983068035530387300848930377423734885287085515602276967986349158154172225111634251727743513076027798059936792239563071026630075313428026275681708306278815264056243913368113490726621838510331078189000462121830157435015749494728137151682553257590190634833785456445674976242782803111614727069111926800766778951532176706793850357314066890378503705522778929742468278517671224477091221469523047605697382965874677642281780436555283364564962021298802312120855835081686035271191678145098210921760703504748350413390193853670769650905555062004566529997191354022152254550670687573907757812597996949606166536852343938360335987828094487696023766575175133905275579293372167441189774138189379381546748145330892140027409270630981219361588854925412676467814962524907170572745296784187315446940563041612037226167009944238381084051197640937474569172744222203376093252221163051880710867185867648674482897970141722202948087545255976367170368491779305383064186262308559924743194306170024992849030977957772087799014297222165879044251129629545466593634615365392380629645271556642196541864050116414512366757942861629402966237794310852113652230741631689809218111714728063786564094688461761446887603950721037265261477671525342786534685532884377066447010224427802287536240152521822389848964734474517019355771007675046330190660858379131835698899947245655601298733022874631525845986915195547395078478631194999226849090211897037676036577790026942240518385902335144203696827491229635729440213071381164982963993403467370342877248811793507897185330873325027064677738049716069579779076580788058427158576670602230386156979682227287862704607334623508241242720570015026744564612375550948193415255137933983141555867643110597651738038471117449989153040649638760176313289123245798208752090644587129806256427424486453876239388402450321809039456553396238778411113465621841918242172712185864154465735346581128844922851323124559422215286825076112456519475539926739992727684129959707275613432193875349463138675677786374760514434783883907741928231005902081762221318277753803793149107478916593376967148259559900604653136370648356595219335410561314949170857735135633884484343176565401456114617364369084299009062977541594516253970461655699733745523243557549606929617759453792656361955839283284402334923876989634099664129614496022292040719330416615350882934304251194195249199729320613101982771010349644490384414471986358915211867991491970748610577687310549008415972327787479438774091043805655983741243095448563781838951879853292752560650161218988180138603555248168699523258058161346760670418236584118874748567129023266395530753440898770300407792195942766310038860183099411398526286787379576546685767121536139860273954021848241087619565081666479318547873112335005920196849989766605770538486478317018830734572661269116869668328140495332343267932188860720498068386522884617478660437288912888337209283568615294994640873518697464108955382195568846787431389278951217779865614723522622164447724240014283532332887980235796851983094023303606162614449426807563135409493848300057383215532513423814327847592868518501937514522756062142882715002193487187830999122842748489285527313563793359851875695040897114540199508755563876735403480329023651044276270778168805358687510027160228419195164319663756516841017762441044918715497843342373520597638663106158081537210329425047243251288379408963605165150136385066226489265146170530767549263121762920004518300016288420672974684074042818169274290646848462624777961259846583089248946357664801942341853767963319911543381450999635670659061543329965408186233598976330144197214243071144569725426870368060252914934595073637755114466587108241253329554610033464584005902072857007250480141944887354302788531114140917561630705995653267297403543732942414636995547396096127110880221719792803001090078602019656286762958478713532179498047454218547988673601303252223466001101672998945179902187201372717748889334867271149463722428258659193018791833012717576417462158741772310292961101940211538410098786592325051343468695445324828656580289971235264592324475519096765414621992848172472622668241692482146528925810460617002427784153163677184675225565275804997659941569478670807955492241358021037245676604747186362687372757132410745174507422961672974388950239156325726799737637897091801100944540436532996618945635140492951155685830516708299894678212645860999622072621963228618591771217204367609479508872484903361355015515218481418674411487918391076146819028533963658433126894581393268867155736622259604264934697583963535053054545721030537141671140841992337922431670417653697820635940677942244450360484457633514331232851690995757523057815535119200150627041417597610760365476008251640733051409818823186532837180620222659918337430036489582525067409926534268866459139141692690494629958554320030611674117894188052639748299334339105209897296544135758098123153983723964031423455008928172174361743197952215097546367407480344309319371870916055447055060164620575719422323369497766885652179324034366619618142860414976946143016477341737953162070595468671696454335866458802078016018186970085554260846712603209882109635076551023405160930809570756247416433437071159292677458677378441494756198255148465615813021507666262909354804242948842549228824189424586272055850269553755001776052127824580040500658304690146715919102361713035433641308307210711221473336149045543712048377507874372742826133768597512899975681800533460869618720122999935924724157805315591213369683986333489092694170294592681753104119574707400765168998518558581852442983709014430316708003534769592700684421945974412123446456281124152636486672127035750689430587371303871744609395547453807710090797318707254426070676721366245043180843512146920767765291128571902844214615165244339992678573740208468270225560279302233706036441585047065052593873378210602462082497317585166288278202068845742745967160317678415423306492602495881313209684678074166876274977719185980495244681508893188636537824298774136909896111135142750870978730297171386245167623358032441032722577128623789826211727585591575066946387159438942100094551642082358249191258317976264041821322912827669877614733851840218441075851705282306077962789786226814534520550769366162452941544266111191739470436959631870253947035300620729808775721290518127370639574109065725435556155537308745713964950644360371386787038646016575549513124222120011597636471613902075909758832276413295320385750634377552317233223019494478500780316085237911529187447362859063096639141734314148372482037785584240004474949454734166456515984128736998699264357724271136255652204621081579895251475153690130933809993265281755583534229025707901650421484722230116738319004568785940841479574514090554620704647032548296950829800438698687688141013448187042373380127724639205163910841085744755435227603023735231372677079280158921674704353168489743448764031959294295995592967641225765042999104584168900173337552785411000104608165071244415110571913732253541222251587852962312367758204626585417425035160414988775657164587971270756541293213455134410578015541571873705974271259952501403550534592719327050578904516977482266770891122422152170073487861262093677162176797200018939245890113085976821732086407055656923226874015058142694729304600570511452790559919564822546227151876627986787316794759557955711667587745696330629105627540505042849712377596987294991089381435279640123636134705160053873427704055308351414179711282395321796649245322305537659028227487322548870007107868692233350950559453791801517355978298187340195200616257291305770321364870811385975999812050589223076399027517257931317769394505870945913830247747256178229627751180377666167491213393186716893917673247427834329663249659866296356691505189677389535243063805564670666850355221274822039998329634251664950071149912223605005242025429710349106306855695500082770414232273970384301896846646145558453807089663172228953372319609877776381316810906319681924638030428407610682478551003700789829357577318027764218918441858355849476518500212077457565690263714091080625183887262673342144287296852365370824949335376865094194289735733814135437278530265243186171034144626445186010119445530606127666459500910376380330487816223574200675378104261897604854242287857054822808292120131335872530226198180928248043638889764490561422101751980597162830577513625132163042438698721646147713601592207506690006157501377512907560644043175858828411895889002571871521832296744514021841764351507813557028644831393894354020124149828310542557141385750538539513933948289643136356865310550310829287395979844482130939925323471268953243149644477368719317190274152702054807382308000309124901411870198894007201555276813258391183659624212912822137152407842659165018763638323840289156094787777505194279341288634145546503451540848318627731515124799167327210229177188739590054868902426725172009581525930094478949603023139868455869070377577861430901028811932179484358485276226673331977126944456197834129857065642288890044245426042896785477542968145309834717340921527242644391103357298603235746428861253375508329229679517509430381907449145808126179644806399805037252190124895875404922548181675767229654146531692866112614034669189717056592408414107454389761383805426919309511970357533696375397279128117051224317447957037872306612185857653831907583175019537449689796559104317490805786833445104000656387223909288364263329189942767377184255331147026338603577798440622205436008054711747514669233503124986754466231698401677605283610708473573768654671060427527779947972447251592648936024053934353703731804267339291738927848032606382827183664341189648400662606245355337445513110333089318015136414758324245375486580163205127614179579474490782693800145972107558171539918747686422490977897465772137804478310841998179974721558841405038831406644415451181052437581642331127048411855841753129919732487210097614041702359060236565084401164376470847284500940226828425539428600136160049467691371360509631563485452153632114448565812448417489422053264084772024271673090076587466036943895780146583186511066374822827371234908225121992614468898318150360583940747637363386332247131756193104884979872363184817235034769130638344874969066510067879803721347985608066807091310590361165001572875843311405189542718999359659645037003111444253080554417719726481625243283899919356982113466309296459594662091379451151862421160953065567703455680742721914538748186289794586286534603784746014065714065333846447258679838384827012710609428749155711545870651915910208451082176982324356458177740613695235513926939516072299073004882409527897743070613574034519504718053719437379435176513783932301990355964280275564309016202223110345993804714220725519425027246726787390363562684441676120166994210873437288309627178260393570251821762818012875481968943631637787911243322108865488521664760310007708541940923501945714034096530402700364034200351073994451327598278064165994084820075428079705794793911839121483382228098259314555308635664849232525567623253206774211909302701710517593802817510411672942543834691464278464713871523899490064510213794093738679590167527688265458023325743404458574826834760241894299150946630586923143950102676953703428565409453174480613523985934224658602525726592592098006121312955604696100793298526261029448421412455946958766990259697859568295815908424064046634174327382360059594522488573614384811708129890438867941270297207194703458909782328980559541186671215185841128567614296037463754064922022822947346566012076597534053826315184346128545563637509794553982379084949245663915982860410381074910028437180122696827752969485892453229884013093816646509488278932067160819272588271937374200036798459807621904843042415772106209629360749323573853603990814951753011542893178904466322048561579550371264446153036957815509655223351449497394833646692138589432726819714606528913745843351614451363751814087275610236941631748604388588750452202125960915872186554299647186310715225458080280824828389535512462192072075051455361973596332682913674179391215429274550367748651546295782035103810220476497974465440429838054439756992855893731154261370276788660332968628093090219499142124661689906606978421592594317260991968882043680403837086997081877196902377142120851657229418825252702507175578142218712397323910421228535574209470521719541592845067656053663304610754912577020101503347043846692682283339275733662628854529842986766213564883413458771148208152698603991005821937551640891950313755430588046388724249038123519271194349509937586092593171646845606521975902736532011723575235112250073250356503443418648551238870557621792304755129522236414020850823644424736178882227001631155589993039923551709081226099744464303669802970044123269923061112010256663067417732828760190240865171537632182195052249114124119034193558895376547183227042604175991799343802457332750191284901680603767461807255553515405251090772736512578862201749847759981640025995732597057955264808395144598395125152962899629671085243295537036638772897314083993264951592086476323415845139341722884237487098424496779864386401317942139597087430989448593156447505833673617054419249358519533235054553123345162752677684820615106840623264836646195507039120775808196985880447377877204267969904033558976521877352735546192648685072614497169414489679745518350178481762085999340801139177812702204137754609524432089330962526093165920641281377037674336246085749241279027061396185813680613583869877258676997931067482271136583743689356742039402320226056334008460758481487359560888223403528717282687193062613593628532325483830020137065190864419449288955001952149283544508876629979540692511724164080375642608854061511507081253975753257446298425666055053074204081327930122872954162702883169630247927834205265794103569601974303783189092279557111685862222073885773679586324821475534699282498861750373139723321684975101891697948817692288004069351943715671618811386386814665454611898069162169124888215306150382570209462068302675868218846375346463175670675526915424691194765570058299682548614662989489648615774603379591393707686843721142127270181625048424968538004714575189253642891550380978573834218160733671599060818813475037059444318515478586002457844101964555809180090063991905424525658909268164703274978447848821665731127513859686304498895350161968691036401075913235303082768913884570384467933776577347121086125885226450213807158555030396623544172135338826172323577425299415394567542568748136966522123466518631960799654292066567957147375519263416141258006556068036108819052371331059638442747816800684662282494942784186453238799101329550813809329153085514297100808288080336086865647800548827144206254799530646514891733726966215195447391767141763179373787235421634534187981790648486624256680912691230718947048221628914259449039857779883088317723235205508666004696331671598987799617054045688476852674390797746387873640898026697443873338150056239030644536437205176459166349645695837697052665141688671336491421059699725449985350130858603635808845908279107743341677933104480472965472607767697436738747636590765287222076639424392129692949548621306224279449387076781898547935609561494848707371334290838908757484349240839440331342918688322750884052452525988191250380376926839218925133049488223225288211876080401089922144369147943738953907206583816143399846910860460002919671316364087654005099829702692092495671772638906394285317701348157856173031597702254861664630574375025698599254271173369557447298313239457307947521796034274226947369271494340561034896273981094332126154736091117588092932409582706822389318954435869928404483439313290414444846965203797312135125596992581289965128885250221624961655326789201765724301750326164824160030015305101533574813429550459351209594796890140726524284868195739240536042362596930113334087311162668247583082060067815586013017480394334698141216490903861119573951037189540350598058399043238070465721096962737210006799849836957443215048480679336846764204301045562372313506399138714202841482200450991687740471313726768386927330460863141972831467253458535905304333717635344386354406438240311725321526680027677630566724682310620405871221162119428585031735377413925896372327157070613505534603091837312950339936657708671353279047128624616669475814167204883210177180090552499331010269973035130721429985680054247816872146215491449776880662826872045858164100197468816372334625426039581749988916543085217387186126044833289330899030077748692294756626899448136840171723193670121500832813972399823324443502199954067800630557426362379827254963512890116936637558966403310360094046734648501419335583904380522832924589647646435057466993791355908309385818576782333553584084731222116712748326294057988026649458085716307300567011477569115877992511502595374774708974611590355004854601021785275067084723068795052867744301073577889064690705215476685848803808344002226838429987209012809955690068929955959738153599738807532860998125551594041330768288649725690745869743734064809854839524179893965168156370043194874101554711846740917480773884619228741516226156441088179838232467880310446227081214577030468033230380957823357024554525610598426138831008743178422863196623031047577492934100283255616769478673632770856579023499864092897772641525746207514814849184410306408999144669835788420032387985690181012655681155742694724675570511721997576238526574622636081486856653308387203181799660655646742318603404166781440165912235563684848671501980215318617536277386829034915480367816570469644648807583729770804109776045775091939005220719843472608058707085396391764793288530192505960958822709458836031525964202835849959185960645681725921592705361662858628164011847934192414987673726240131917258920507912299669466390197279843694715700394057775850922622955035349681786129135161190704205998557416326843945601163374126449394652482030602839808746497391339092333491819488571910193830694539533229388465437349163969284846874034271760754906308988224623041820021668953038587725197382141286684626094372670578948098478865318852683105104230715191635151164626938089074188983228055559294574812232045168845820383983755318767707466525207290638402478892251085436267843456674112040903928607806280635263732679749957334271231492480534479996525471938081238392934412224345992940436025356397132866701667020121223362339306095982474216764439159828350723920891978346484273374819743946068416819597307191939271353613660470030384489167826317652255769972119494659390448121486071487720419068285548966002599099060407839410836850190988190293116244370257197043942874817122557667927786623420540316791061457785875757377529458072630034273825278292689716261368883760134707553075388314448587948903749819898284246108419748997139739224455686874621218337187607324153767221232362086753892613923619485230389778074481654949578424644282254721753506617415749808726205064949189240538170299547005440249949520995488822389173504855407935975960200239538455130136317717095018885155237645795226977875954209994901629952870930906740978208537439623686169288883455444157303500623729095683522217274590111626881185081415914175803970406458097589146494304073219269987315956023421977459868558138921746559154934426376386972800607832707635870892310800648847733206561394609685781787529085837624765869936703755742471514372945341366382659317973008975234965479345855545760907200959041391651229119699409726920886526611385471746479253359406332655946141872375199215855524089152175831805234295696689951501880072989660294377305072336861762234437420665284903039711350189697736486495710932408373284719553132854243423174412368874006016204335536706275433603863607116091663250794320805008800327361661021019866660815766391425578453853236695242243853267079366809928750642284871908964678550821384783457142766177837046773622474029722333215875843305248806825220018442078457437873497449632622079193647327819404201836403374649610817154962756295314504580905895284453125669319612280592975695791494191325098828925453779126220430280124964616527018695500774301898867109967162684176237307011041438047214526826032169025987532519245148404822162697132117319368726035549597452931749649773429498126324675603957221318776978184244508184936855687963898696278291008670986203420902442414993600690734088298850501550691166689574812278445963981405687923438992976213039007220908182166377856525757141945584822681409138826485434502212653254239298246092719070391705269882326199591667002399355279185003975893293518696411660795218308840848893970682095350878359997567888804600170998090305640264452148432617147449315956153572315967951356141411659477011161300756895773057429590906246094679172492248862551777711858081340823793986666808556284979819281884078212182245016570871292965855759489500961195456197025442279294516922975083017233341880156596662710506201029960538371588595662929559589999972232362419248199849887913143724848176588493639790816980172325919579392331039693666765669768992202982531223234156170173961463975480746768400423430124267122850829852950534762612336590687247031136736624702858194166639225662718818559466437165977319644154524863399631682609224510021176214803850311257334006278445113438214375761234898317140120821140848234106849536276399883518715285118077225329842922847342594995516453410328473892439274573646289023605285915700577486936680682971650741614365656782685746787334663441437039203315212316434541247786410135920833920204296855264522540460152270044769011084695041157823491397557400393987140350143006044632205001376237078173342555764057620022931878784099087272661641876071864592739773297479638156678674703024183355805801743968193445012879863571402506711480360950704959034747455313670954705434877063378614018345126609216158983854800326114287645927454533477205970005138992113132517482460244117948818204438442848386164376717096725589445484733948020365740418551978088710780410582728449936524409552344378596024468973963373924638727022579786105623771934312786950775823596413584805193481235333687220388909888120945563055485297786205965318082429119066186405422122627445445355469729484984593210139370693350589338925619581225740491178355422227236147038018314647868588240998335257979587065062681771778508576362188676320608350105610625898707741536419077394884730239744389835176424582486988866874603732072727220158287956500862726061798478406639169748360024322481405586914173128890148050178452603998659093730256810179813763387972034302563125006633656009264818128780299626280856228756970101465016095993506157792752079512059626041797968165877775901161607811230216885518853423225346524398475871970011323450347143520479937667688175964865493330244018690890629999526699135497542086585995311363361073882104308478479299940212762112157162105577030877364502375201482903538427388475208030230275750974183813275171413303405761500270707044185687270322936463535786555185032293478334042507735445167741543616596079510207171085017371095829075748829446013125669685248138511435963131926751040106033345133706457031001921688064058137725628360738149358513952968508773083234622440238152983634142488018183739945303636516278104904374301220375321555443120588156790196227275500865814378042185813840462900672690840221760444457036027802366803112334037132066944901918724114193893619846911148864982407919776830082765350265370984870611468011755148288001590199705406577521022398673049858448864338021463460772113822614767155593468823932556708172380489791493437636777177216342702430041440844623061670035302668267477926483636200156533910106356092726884721190425823453685519434490513932943162807451952038424934207660242253515066591951186592100122223108443541846337637499393030299052572186262459067422342955019908302323496936839506969066585422956394884126315036689329479570488257364208314088293977663283794036548886961002777393713980736656284868245637463587695857791503459820185929562381364192782196488967938865882856609331326922334583066058253122890091840890304000099686044857277816119988492572122728643007937259011830496627931611750829892910598173731858940211035493583336706879479113498627951577259357923082369148059659135010824287502507262109656313160888329784999517192893075939641373898006137726471174153062919558190304544064536635127273594211547856198018610355737777084785992013887786362720810783719658126962003394097943048013880634167739459461562554704032849176987738876670318119834330028157639344993412851566508177102361965675498600652001233308433744465269851579686214050987927971435252647197174272344410883412725354026099250837702399931361822251123761314257514065529459243097355352795302143623190939313536707529789072021388988362818020826441035484397014419232018304582433912519038202623157075879383195935791223340852692143609385034671629004407870666946098036470006377106364374483084267975079478958722260785937965347178241690480810249250600033556840986885670478135133025738242874193691287874438891619187256048230611954579717696876985746273146150958251648168460213949988986935083117084335609414286812084331282795312944997298779807989238285360349456579086696754211325616765895759015248587020622734110845086446975535619433171676728169768079360611377734164914890977145587767009470453152471842056803245201570738327056845617001998148019465604491069646161603736543267076051262581993140846207011810569228881477978811771086778823426172077661010983927245346171284552400944424450074530266950026667033209077282648040796926605434675842344437285419159441752780761653469358633659850844948978777730589048362439464069538093025304049698772212794037232860568733534376510801463802517577103190301709588309693840485987400140116397234875387740983246798292732442863810081135223189912662990175251271629224536818206212786717654542960052140865316990987132014909885422696490417767487542988897870199245828607237018919157452371140948986660513385789309200551485516742630119474592732068767939442287634718028768676053650319064346902327310703619120324493971361237610192584427927106684621377734100479498135641689403762272073559909323917482922601242236211067855563937493076686810211831345340789296187723245719951860209441349178792782978361347771867411967383301580525812704625401185957672243487247189235233616425109017726045264114009314526707218020835108435286764493151842576707945277383247985591399793358013539861667013802163731278474415362426585117476885725935136687888146234306467055115513528622940328302566472570758761390247810971172470724421703741786737940226517344929460819947055703479794652952263579962229961207221497478786402541929834022685209606447192004280203156979399596990299462810796091563461699630870817116700321158574720261316219196273377397461700073108365984241970500652440599415483854051481992322520092448945806216801438808095704349059766990988172684101040380835797740937784209474104281617286806622837908312005662287941443951454873826283648771956320379286157004128159689332459409330718944300465658143316287160887784033602720541290786092345021433078093151565812332741026490458693975117667602787881346771705650363307785230390769253101429802690012620922048665177757951331638905097756988110807253331103355926890547556701561488657869896928560801041235132234451795274071432200041392489391180013886131057556377521937030359044077524597120436770774408151630122018163195772176534896168640258806047268217748785613977801181698831333275692991324012114038392544062374019533000880779315344928277982877186366021416306742981065272869290763607602038127107797903915017850419276352169993763466241285118389227228828463574385706645770005472611283136730913579094108469237943366991822148897682123799278029850409999291236081028237984405872672206078156720513297144650871102589836668006360760567459110409578339480556363001298997024460085115369113380979530469668524976953200361916770121938868316215136551783601504385266690670623929557545325075336136377516610086459188807630706593457666607557035058348372483951843037935886446842387572831661593585896021043389947511802239634231498740563792593174850180794402695280135905296326953236199695451507230095652285869446873899858626199425930338383625237567786735595244768523870753984019535729352642756316132864961940363518565795146541047680448433904385165321201822410326328647441653472313319733020420035183537905772392619525671574198487498915992257013016085789407909309899117154245834349413149352727780594549533203413824197570683190963557446686441135163749838512672689073155499430893206608297582594653191762755926488582246550885699770708117251847914645455322809931619118581698476530058425978791661592946869797004701522622916619871937409384552994774176877406467532490705813345800296974286834401905633747505769373914234220394387819523305637522451749588380672313332076977292988049298027879878369821377282367762382213223650907686672781811009893477077879413836788379923203121930938766352711445022389606050651026665031775765453097357283766372458796586937514676116981059082664007462668897414202136640828956686340087321234466724867777425931023692731773115088262753513493866031198174879033766436294706545845858342963302314047491085266352914158516624148679954975327468732165908712540356048143044416750294799328906495829019403626010919317620330939542918274186485838009971593213035354254994960994651669547604052976750014047449589611004136857748929746760977638192580526795065534568838562649898399277441808738350339180980385742034350109491802389400368508287678528515197580533918974723899667855674981906816664931441969481065400204388184003831794630962657728423450769608286730482587263739736778416971612887305749708868342796522339264524692567082300892455886001477368469834682518167162803061475253699153093705217923655935572109858675632331788184028974752715587683712231749570649188905617012671308753651696670371946025076261071559731047244492572969541030753355853228375001433184002425631246977819377365483450270193532430253953607370804089750625907220421977128840848850860826169188903503101408742305287612867261297268663119235533939094814007977855575534558815857474249221313530518968599163941971523186787258406460783036867342898505620463278068968436911844112761126177464538473076947553401082546475143182686401192612521471211470613951844460372840028598723183584911810891718488868166284345607460075408581962588222591245789276795725327521047191347320245920881909849007830740509413792656833357552275797125420828191921742596332130288183815444635726874626208218883882924571511433993276358651159054789238510940127606141862498697963269651425996698526623256835390226368096777239622290619847035885970160148645845378596180180794804956716303147686554428527001153668260555515512552398354583484060598086501879649082459017973017630862586068469581798936649744257318026439792448006948980743312157943031057798481031532282388069070102894968527318374410640822543275227483099110144379903003200539038881550323517971987797865104790195890262252020183678620239609313393328684867043191660792749946441456811794563411084608272779897785095786705304978170536474733456957892045489946223037063278636304036916023205108549781513828542108708690350403171732905289478582900812137224037410559511214707484910291024808484208434342301090097500921499691563099523944460391997444774390634076443151292995667091148095222177607779372503617385403739191185422004397649438726525997703397099450175921971161227205100379277131346394391461218960372740283791099897122639357505229445048169119734231821399216512108675709568037505135800312183927710148400370402165823010837666067462234912771505912682608525295775918265524306349435194008258009508477642062333698106813194312404723295116397883236346109009835114115757479555558949505020957148387024348706913375261929713122396801155238202570485211428793019519706718223679319804992637923328210330564718262549004970104403472352357086233693790172132891607051509508162144471061407498436210819917624076287224900654423452370881009180004391352830784831271512912454629552272837008747331912408841321712607044919460863289778196826922212492553750328240899879471495722217763052630296658110491440057098091357338594140821922732359715309264769069892607556514886540636934864869719466789438129172393208716361207430622905442164982548419836306330745526473582414024776468893638763601499634544258885821013825667661605236475875426344063305181126653745559862156503749921508728028615094299584365024240420706530071286547805267212889675404629600462661016779512321792412162785152825510297910141161765000970845207023936549562674609819182517864562595247868776594796556944414767670384475905892655519936530495549542466135590337976708608926575191467093691559399789811933744956394613291479199768900352073349447673045421890540279753866456876117589964591435695945385266945980340878366908634152315290148781002637277520454496726086705379958818464069887731876270238074952507444308165433197278004624536735071567720325210128915451597546372482528990171961497178011470028303439206734577681731408457743699792666084343046614862181077195963404921685352035447054961658337526229447041529388478561453148334262073863992125410010489939567648662723565453650308445923285006228959472701248909432783538961012509494718926181093420141464838839258332529117351236364195135066402099254778553619188776209365924545713227133580269640205522209906582235913855850522576479272698522181079806141022141096123977358197285384651349893182615493490415465207208251244287241870632331596709002526535305450790583251261226608646823217845262668711763251334934963662636517516958319369135083448393755090015308944409670780616183508933829082264364331182226410745933202783583658193445887704373422589408908105817925003159177759715570635772343050573099496746807136794807221985425065222078392078874111926574513154920975071141865700132573720391012330561342800474416423591184759934557974871289913486811614250930658537832844103612099702016681847925821754036278306432678808545639844760748344036524696400386061904070491027031160592440767975724910353832701468862752178497695073339229555781830222420833324209172880955490462972540136571005569329898651246722224908427006919939032179975410219247660158406263458313235051074633325610895141504101789007417496584563059602388344627577324522647242740894261600282731289970874796687510653034265046812838641416128389903221585935165496443400544374831103363822610798209516029450793447661436179240889500734529356504970941681131917429628158908280714014837748682809597345221982202991933134402156498726608684235816737071480937857134670353019028162936405387644333003283118772321324527173022621204433493418848287876874290952791497455026573000463560169806633464872799254420386363312744010277758940880171952146756673996510531081345540183593485899960345660636491524644463846140141778492916150669280811333280506874407812782509873149606929307407272691338177237165824235230166290059427698612120058422467069850631116174794784704743729734064404610145819726328760492311087970433005953260824396090548741353801632381554899549720833716232893410046286055308158978574614427562692197001545711540766318458872971481526189117469261296489522443009955957444071043496868544575470081227527449186858861939635027837668242964731594374344688777326258081934753754283650888964007441360348391112085436272076716492890207440327696283038719117888177145203056304878279394729046663784695650953741998338261973295397639074766835065500938243624262042577683075313328060442502148581054342152014722161386614408348459399267571820747305984911695540126220236953596316288630147099523181359444169932775903304018526527918394224774738432730098210054680913491151155292500551118675192709266662927186780123116157683694787634791508480493548281450110646020662915346621026963487073812694354466027375060649656610838647756016951195291453299873825947047869460523902118021209925901214781970967348492803670245676242136683800504020002207279742626498286256542883735165991170807143306790098102963855024297331628131050847241554898156461143368124880084292544872982792018844579748773017070104794646223159068735791331760873346458928976280997264253145713847368357049277538481122406709698866683816469940993531672659733484541930634618724689759709380197915685796378202035841614491361049133952419670292010400724911619637504817175293427379328725048530173317000975650529770115752592878488549390721937383658661498878076982326941152347733693271839053405590735897841658679943989798753690278602382057825902308851713200302673242460364979081530342885893033859464115629493153000276993058318047135492058440055895365229376512137398518332022294515407134261075372963654035428653010040096247067375246346808633088063089569115207138282831862265962410262658710260678774723893074889906433182915192787347833073229298212424629585196733789426166293549392709627020562783171078002005796698125792821555558080097047823059333011546165958203762431361665748043237335483419621872335974515351636768835133765306079129069239405649208666690539832156866865163368392834210871648545982366377542661632881142390157199786254042006914139636032019998702201805528990100225573729867508037870179773244574036734453346555349544991742252542973069414667450859533431281963761304784097417711948019657929382163457664499001063995505469829499782745172427060313636610952794124801794182126533939796511255444614594558806375330734652924802811393718539257470922734783709110786106575201170685871700943060212864705705785457538965181625951367180015032721259912385853345432725566497780833227310826453013420027343172779483092705264675565767183183066401370636905951993500151652003273531835314867401901094889869419878382125431351501935148867549843621014153823938640145228051919035637115565992280438130641907163426804311487932231313981278333563560643557909341377659893511814377859658860249190460601190840917368404407672892390334145013443311933324402394041033268486501291418281324894040590048109346841335386067885715491078100789549315937134208373896183289847519016880246518611035287950616964200864253238887700820508663061858594880783733515831926104515955109361801184467312295127663732082836791504303604944972385810323802175875936441077014997626164339140203313278783788318884083716288474681670840768629466349505391083429419220814477985153645743250836325837514331653941965977927643257300453450184692633338148594222444497775983852179647305178539809839986177162380207547928595949066941719315225838514409652462463577678720041118227091279672360231884106509937331773502986173649342906818985341517782307493961886017215277514540544384827848598352052217077228409254642856919516676112055271059067902622826335234963982068761284449431268205573790247451671819715295603804103513633540823167534077045864890076879940353396504113203531582762493480415326730270696334662309409097903806792541714050388398974151153474250304167109480230176148024239617821886221421530617786435476186741541294885665618159848568038604529572474617874284270885494151901263966067219543821559301923382625701024822126313650447412597959028372743537908002985588355406450015466103044013307515916502520508388533389446963624243086290140112273498298666649319016732208112807657458365887327737218904148182393969580853311610985638714100952436547702622301653722577212714747674249599105954217647081514731969323468272485839668461755057953635620490100736937810389170243326334273580353161254251500334190772293495916071575667029073769475973108649766821062997540119962513090524528508203068658633684106706680934055825579741996343387428192866598259003429911972023644529805026842518287101224337619266782046200471385838716941026169371963403092033830281328482905881529468382205945106019216096712568374596531529661984722150287330638741545876086636880763435332431235931371547165657566761734813588885578791949370929408411633313498474722315344150122485286946021210416775302898020889212087833074585521804021067934280590764475744940550186071968142728606030115204213057794584957601278061095984474122121281181541843702920435481285982308585995370419153880309883813890711618291327297160592381021958460355879267241617880471346531354862877813468273289763864585569710689913353238411216662574396746385039372647731269699925507673884951601104314356643103116639217136411209241585173662273124147238510226043832842204143549174476739795501444646386350055308197472712224113125924081857151134487313937573098112485575275700255421851188471349031138928699195920563479527156449758012401043571124386516863862625889916043324614616528651936606430886564916496771686184065901299968429485729671364040364577639828991122134483412510913889568345041196678316947474581436439704048006717630205579012073819112871051829605975946775126761363503641680195765209442796683485569249049192367451840693014517931151441725908748799737553071113561610518463897898462146435238466986982956916184372929835544750444443890464620197522548940473522097222792982171701913734209064381847668186936729585300356950922194012381057055255067708252625849713006606778246878946438285010546565599564079126836465847495753831097751353219904200478031064994307902992612710709569502438749542443611901569639613025701920790263193359555403737977079710363731581332199156448720035962361662087483171669691866680126436066955686793562148931115638114189364293943461501868337314645143863778834213353083949255862587950509487904050028443265712230333817688226911836702152984555910384453796542024854946224810618566112270474593961237033058998738358308743793519445503152371043673077192493000270602175149582988481844374071002286170512190654087920245377855541007280453803131978817734066807029308211587164066737619958117163585754869224990379597800640787980252514257166441259779539028697009910189221053813123230958443315038183851202434946037010688251474980206578426821184831941576205755851431339387706448273884166556917183961939332632320874387472860233399041370887139271935773954936729019229431017721418599212377680454932382224854937270198970900783716876977036387596294430547348266904399634013877519794872660298614149632475762032559480558591911107451938209637983522604018567197686175921080981141002941917732613522458331705501925477544039669408713639615543250672710460998608554917802793132209663039145517410620446721778797559212476433522822856244246804640376089625487360148483132907689111932090580040802364125753548395750965851911148036606143342951040234033746181990820676421057770565386324528355329484611130120557474031391333245104629088270122178312732405130622955122315902394166486540363000765676380184430470185147728565839151179294432244904625794035360455711635924495495770462664540422028962645351007521072674441928665542668987921464545038130916696932945745353949482441483331724029192929354578127474781038048789588040864017015324507711136423135556817256323721914596442312790469476439534989516755119349538837714868072670070667149468508997096372090144490099462932727180812398927236647316245653464620074866836724102022853574466108237932030341773820152814840691424599008389454031103950773160297088775433985148588808932297673599427930301746334114091702944533250329917694858015850708200548502385547570714059542676300524666269820579263938795020215982534207854296496168118328775231512294240845363072265018354033149896575120674091649151384465894901738649567203380706332915828559373137605977211733154974775692428708113860387335594601834218658343336595139384643108569375240660530856087298174912204966060983462546728521943096623152071340005778023673544794605460250814215094832415294549326056518382356938411189789341484160656057522657822847324235377624854252969147781820779923915335470522517854619152711473222018177699528251313633976051026616930832444288201351561824332277482953442660650433453500100148007989633006412769919022628963364728737781661557494809637013511649692835883949847334835794725951222677736035355075367123538969162751237788034167999292387341292763976240632720264866239138125132531899919677072125647901871484362367082683808577450135144405194188515683598549078711475891757604355901024424864202660765356567717148077886340491523490492917042264269334559647667152363768173450792021982061188069638259211930189121098685776391008670090256351573093478172297635196204282053117566469522510548861895031444920610905352223145684113179930190122982306408278078676184687905798854476178664837568142543554312938782103962884479696222653587835285605329489175229741558762585903087155757357386611692218380552289125394100841893885836607820844301200569448759806902979481952881939397300625638712897641782679289576726769792888656201417205485824135824313679035858822584107034451984040467933516684489052990635110273044492345812632272571806979568185214201292695957129235792280592012736856576929154687225231918001349157640514035737288581126862699166187301419738890726920328074255598152177789907129471518348336832155468884539933097590684842805162091993369124095966592279296068313201153916378375360984045036586767151735775117476383115649959446821061068117503359430059258886373824625040927308536834069809963778502613323816048572861350072176700175855937651406964426110247714260155460636407962028231282289590502308360427822049855874209686152841465568367559822183911881172114434782086019443735227603778025947844655425090341256151078771414107677821195148742699476967378224056774354644056522435026522443975378450720958446831499735172456635797168827427177202998733514633949505798553416166400416413642835041210204360860585941098722480501180804990593536457643763285419404801948127459721233163246567413602439690135790780047124197000442178242423451268176378054108619960625140643139804692403106074971840834169676539526261911243057561555726897334249419823005265581501018844767040433479763377153180443424301739072205904200636156155932503137711315566762877169640318668546948606153841066123191694849544823666758710059955642941727734246465773840207392997414977079892042883411112023257421111765708619292373428769869047872474766684318554008988484533294971516519373208862419565398962457066532197886552887208171364222609035407080742983828393689752094229290079333622906453821949148269257465460658706053543076935790011203793749397882822429786800564511805548556166575309698461994676550687399937688760018219846457670330512766063219805340325303939109577573606468072018837409472571200622518180762387310496318317645827009778984632992659885220653843185420449248277860423438071957911424583790095147782820119459512251522016656705110511061404117205639250423589002408505168307360022578586331403737527514917545287035051763022645561641797390183380754262108089018595611394010108745812599584634098282054505886349607989171048192449191304660316766473785180697990858593546103176171242406814130347701217142559754914468849598782526988748080590104478771289012817686056798499612573042707361545987957433010669248975565151876524465899426255159750782945640810015881002451663138811251916645271169108465495187538294847028818711023392452287620451194979312202860106279088206836975245342071603985959742459031420943161064578567365494764925063257448307554451031306484399582053750380985436401177283982999542936291492118969623507609296073336187132471055057269287276069033695998410303537109412267029011570693926947140451727419123371659468588811688191860355365337628403260647414123640644560977758152300750747095011805570874685657077896659230286933451836198810719842477521835657776310558891123961987959641876795382572608645519203425068865121103229301115814261724668646375259329703155835807756119864130732368513026409978313257482221349831262212443356899457458581589027041318015973875396904566075419814638594079316061974354136131572999713477154100817069721095312768992097693617234286480902101451750590156200150217238042578845532611385193300338799094679719857628658793620698926920041242610490207738362205772783661707420113733412109173226352122022879324743680692836654888225891435536532631781078808325430694427941882646265252987278565508736269239409022638352907725006113758343484676504817064704258986478211908647037735998301493492523864080911032402544039693382851651361080084541547630038450329849630955310998547189258739951521166255912226184565904526490407082009861452628748570918230850644320663957338028459037069057683070078294080150769541379107439523816160581506841133966030444826725424058802551971739450610365756872272598830547254784133494243130193341608657581122782793250535134700546935445814425234577688863078939364315978639663297606810456426241166166480116099714853680077796361330489217089702530270860515655450477841110611619839520005378987791921488630582827598953303541499055332251619800889146843414454719604355117622211928032343342807932458142702775661120203160725720661403864296490672560894659233726386226791481848597353012273389602030830165664325435553455962327016737740734012311897658990853930347209325202218809770853622114133805842814947414486530187750389523415912357182964483152094796565530441380737326473095365450741754327433202469513109219004051962712741192242101244736039215755622223870964296168844678732419652517910112837902132085094113253666375100001035609342528168919477577297827651159259760409728010254077804986500668859497659718316515295136352047050287470977038708968379848161089497807691954974793325207907006964332886721424136843911430621649787214979078527731293586623863018421980133703658509623362199766300746484664195128353617666480011026803711578347707790538458113494968576385436029799064567033493447533044523021149964618200252666761004739225170403471025591184593975205435499732485746366405897985260791435387462572206003929760066522599983280790838623153764522418804972957948478607082337485938912835988448501073009709758776141644246202957044270292215722490434146570484289110229763169107881886289740220788738758658324656930978730123323083967320042428759095494947275214167032154195238737064540577940679479812185615875317245167512532768048125367364475436693941736746085834174151127593601805850902868244858698199502902685925087817593707549650063727978724048193861114660875271788161465665358172789594361399553785039785619255641496043358721643626636838786242696783425576804069541527339816578058910637962859720532023362045449321401574358253892398294723532580206733512180382652813860749037219787617624954807287657397993315161012861027700862709436593634208916826320833546567389262752230783066571064597678309101260435216525353568113542491899910985099857007494337253498888209863067893843747853650200347940861696429009057515125786407598538184031640371386264168517053527423179003673685734686743929647099615883323783850827600802244845238532133169887646485857640159411975058496777584476458911169391942909281786058554370454645311755429645914704353805460574481082099980461180391889415524162843901369752319348714941402700488240028516846578258489580740760426646824359806544960724463380573898903126357976088545899800014586943165754092342921992647998489142518810973825074348065282427761170994216193556185066653361185203375750658859009618005779498022623488505911842886932337987716846437776190021407265975717825892839433658689232812546032578571037789971056142702333792736270443994073889779752501713357821249046427794579137548748516610958155049090009194830500690791867156099584068766138650272394833970829676300866204729908884985866067899498780607412765246455419591225836368909486882983036324865828850946715310642000782456555596959670567863877589258841154619007443804546059400328527986947863014312298864020313805823675000996370579030115485382413552242738166362003149448202610937106207835206349187841645512122074814268506056590423062205360074763457357223485049329574329626807303563912880255537129532111924692508113185978173464893140632384343567320937580442965829485658433470837334223696766667743668682356165063533407883461850546633305689236142358640674688733004430621692790995401173136818799159041585643627990971380800840091262357239942267317584183030128375448654519359113881357135857417707609711563301763088013769364540562483473513514033112109827978896784175730264017067070446412653677995815953652088525272577137236408446719068611066744458345891181271263322666083725308857367787809943872999390466097626162008822898365553252172630942944185913930175529492293554992408263442896212287257341915190169311997958991099591725270337311596999142077333131890725270731652957895587897112430935559352618423730496812777508701942970024887142655563232115967186382007367152451475917704062658328128259293807681892000773459859033719985131925290171761182741439636651883567494834863417484757184913614945327543187885260978724413978073728846029089860714560844853644841542191556873413366274893032268088938727613517202952798145892590095640182735802037117635179100360777200249731534323303679710772467795302090691017608245200478448864611277670971847833943206954827871028369859547200851179274738876118059301949507658558810734759404952164522755103705945632946115467853639409140964563974116426994550007682249333020831569687515832580164981289455558401407224435488915752305827054771637563200294625064612895892085770696926015763007567247167022599198698992627183303355209702755189383689764511700252791539186448287131662343801392272895693786597099994490887634456484576384358137718367975282748711221972184766048501951427403673901950649400127757501897993852397696199489664456524178273978455670719414652817720283520636807593275627429311918522268405864937566902549007155827141905004828950008388029850268710399964843316401812958357911215753661586142995281259800238639934266335791829853767891507156856808426211954753887020452478115783887615439430433843327263583120404787347561101871615972293930338590629034019767494996930557304567169571537588900842417088750658078313156942333995148981569901010578784486639155356088465671603832005527196355827630708892505298241331083079599735921479592648203643760199655005120234980974201895759154800971389468914007600483640232647399641552657742340870169339749199298008846161746189958260536427146803491623712909098952215803441820781055048626049301829534556436557479802883601785792134658383186079050156173462337504611954060960478662576939453187852776475003488026641509927589110056966352439971001182018452588478354688711295135963412439469698079672846696447439693391291403910617683001282534079645895190609677716998396635463767620794370827486574869714848950724703661066185849659311259960227486599111251739928974664173140441241180270271926685429420637687009974916095762085356606152649812673757126958995360606556419776998443653020800278125921300806482939803694659807199316409662082252602390134567818161917858896649007166481823850378747824059720314269536291017321324925112444833084499945056056933045395963255009454406012716863769484920428471790766096265955275726400123127197932774890807781674307612053579900772341764862233276961119612521164708038661467828891221184509810134509839487119829236821529742135658976942835154057057635097597859926491839936078552918596975123652582192337592075445497656553518092323770169014601141762226309154518462237397030398167765010019223783908894903669820710712840828862416594007945277224287282788434069988604032992638145251776091771641455118261724637414647232499975664221789064236745026508026275001644612990910315654249138587179771823683021897459731424211060569015890212778147099135025001725746335718408413809955406520888501415769022919273306024074363617590524075717178521629208864050969078124556485882816193981297834881440055842952340556106403628918277144529133851937213336193940211754264274900977059489626801540840667373338589432187505870809254113876364353603004121250516168242139468877325994003292350105785999450999157716618691235508330424968181212883893890365605598384857739651688594933189255502073835800040634665255350419101037728932054237129514457459183522564469865169103851169264387602756413171164545196385541013793265573006990966523440991121573813991656238725771103089691931023920451814764122020854305086690138066568080254101283002177603254823742166726221363180745313104591763591385180295982130039092096223874860426786459989581099233631392013699936648232113134559359056149904699206619262812026947164431336589858495678247381066241985499675133581931749626646821333592117313768303821837245679844307070539995260416991208119293263409981446557868125011056311295935718860478589552792568710945085077856001229438306171148724766889394360825702426326245121268687806731880824406718757219178387458346837745292966794780514971548291624488168897471186536521270914260408626726203469575637287594428137001494784456059868612786166618300691681877345650153307662132062965182503192665683554919239786356942046813622993214459135485092787339307206378705231438533210772559942073586510915982959799276010458359403547128007976036096748186173517723527179953781205998487922490337326523227005314135562522896534788635642465707775060148579700830140479417896508984765273774334027696950395188829059455910544150234878078945981265919990732195344174352377398012614346883865922543512855396593941472716016281792043537021594763340359372956122649406745172009961860229284785665194272558626488440551944470799422933409117748517110724590292841337718428965559720114652128491369677238055101121855353611883314907660458424322305724734035169317680340179867767439097464831567762637048021117931399077172794084589590276603141930562411460006629714267261192151585611841558330910877455259686351375812609211005889912463507984267102743567282883764055922505924383167614675635767922361831634912385958429231147360703846416405329490096476907341462572874862599105515146539062813373518462741648579631686900788559826518390371617915514291890492228336396311445869552891586007080826598472507220694805343675697754763452256642956331036987056041578171003065842609178151946120901127048822406576334092574699757902429088538370970723937409898714027502800022972682722056722642447141630537721644032089687832198434863594868144142666466763889077677309755500343224006247430333107904276098578655312447723337946707006810434698028930989331277318233739843182597532757597079482448414619436175776283636998452352943597113630576872203621629597798696690148854447458580670130594517643409100301350625167283744100011125474565451154689759525232729484561232492136993930180035115190573714376016626000395928808063052901768153444737600153992952348330227543321849771868137527559686442607260426531934407563065245466781512015219957873497878710974930138629759934367610535526846878271525963703560922051406316057932266486277231475641809152697349602979944141788665750473084581311882421542336508354915413384254745293818371426106799753569024684007779812815346166170271635487918573026335413215551544636781016735171886095918651398413246194827901183639805258910829710803145487745911596387379394762005583579067655192487814284199469937753820277141312672358951943904044496499838872024681009297195798578923697165292678544331546884137408367150275289927595507610393629888589140250699535802035790879971894371803845989685057280222776044677053128011369136574462428718900959238214235768705263020532979472444493979911116921673507056719815112703709229094597522444932304261624676820113167410374155320918433731510995842613034550029748748843199359824984568669838581868845541753187074868545803518709595055810039761138746989704358168706379245169481557923959349399388437532392366111957208062449190994777361057409142998266553327281116062142725582312566354661195200656922927587485665647873258037423875714372662490862216522558929590804100156104831579275416725182984085123221137916785422374197829775950326234975665960197489361432472625412880106514293414160775443184977036276853862462608166824861601791816275281952072238168998485053694663037106412388786913741594421749157475835705257751763349808345285868471457156685108529279640154604390353690245021325631353518863969373459670072462196621371355792321105375357125098591663466410278736644654063636814991444797605705267386584427520513787025585143989306299324287819626748933395680368488253592717100214061814736831282990898843500230269154992484070844094317429335007140603449824036469013564873289089799186307583882253396533139486076047159228333411269059085855247298710653952497686904666287912538434946150784183267213687639457777227491601110528969567536287836219969412311489890286979030451465366477036586848852360283535977299911134632450458972796177327865904433621283728960116313958690737822770021162455410438526016063962304888464787803299098240296790710745136056378649559251377220413019119384185058380521609280792421250910473173457009960898612659785195463007370120624626215326068774261552394149219735280617303500274370897998582227821842965799428326965173861642163954762945505326109577455789704534973218283383267807724454427214994164864483646091853516937834557854958043706565321114170652861757785335318806482145383350680640062931524653933251690747891790630205632171510783474930410932343539695022374287246348929386854740687372434540188105187467435824126131782118673638307814353315678396960022204464870667230284178261602546894440158617115853166989012937666991684859759548126773108607600468542397468902939791011604637997370570400540296936102728073594214496050690776698880880604243982502300957234668472882713503324844350253728904620389949375858506644288347154539120704791144347935122848531530681163188681715241686401208540519495302330764826879374048963357463670475556119452764694073876271747655396306468713207550172779156864331019817887677625713216068162976099683203198196260721540110303075893538255618318616667740633916210226488353375878758991774840189533055087279515076609133096565898586342218558236953127822251306373446054536141813110024675898483998443983456742150005153731550329965183922923819024144105305078600267349856971474850780018223896351046994379054994527632957718470188770893493226586707416380230644476235289966254669054888669930631402431633603896799594864882461065935374648208163604688211153512980016048949432694856935095704613161703444058241472277562285860182330955672872941717106909051347155376248037363278906088587426038242351427277835080482660627272944072197223180639670194034615291075138193824581384872989674403679848770475972879005338907638685135826735700433032873858560688890621209035672919411223655014826206173672185785516608171093270789741616669933990429216934451074952050727188699471439174417023374534383150167990049264896070850553063448850438947538077171331611147206160286271052202577190410816432124189236759628468754002555015331176298452704265358189892346555821867099771293148249897902393291497781599092367729825161059277212328469008667882777739131751340533534830779545670645578824570754116117643503465654200793433161519346988064601777779663318774942072983464049563226558861380139867599530310381604014914562388802887790628945892657662374771776943744499800596852518048314253909689583728239239189209276633681481698086539371330657648400434262304360218230506128586693068408220789096010246573937476120623703554608286578190488125633035274497905862193552645669119790006190204806891919002067828095515041115850744644579630621375967932047915540104344850090863938761284799743638343066639037464002792397804160219791648626694979307810047191062078039482606238283097798116504506560884365273991801147790649248587102188056306250073909575490672576151139972208458288593474732039672966247140503089391818120042067398704126064594934342751218917936011088251784577478024314318448354119165701915843023491772592317615097884271383910561693477829307769466781822877581166361462972626464638806658231159861247094043466791743992819768317050800994982285992557927786827587583150025114962407754619129658760274677017807765817396186641930339608206114882020591108128424139323898576764014367828676018930560384431510966907481579549654159594447628562844299170616000601669664184162075713181799456406325378591093376006043824177543658311311327617309821772131222527549264970884468728962052220628797625646012365065540989167446412402404019726347084899347814986292067615202238398352638359942524155125490435354617429914083068520658094738261820162512497480207909646173716475471419922215896899565621740564185931977257884812451539150813332556973059004219863839064048989502248952807577029322364385880245709944785263924276494810748667183442727111597062143925433078892928611716986673089843527393748432467283564328934696771693579390132514433185944452890784086822306288097712647924844664115765958014521243360553161669896180394481435985655841158602433847500110549101179602478976605849279382970828186306130559458916460034513224127389489435979520185409060522093546443989690890517395965451551187941878025474070590188488486546919465324165157726547361540437330929546491563522033484510299897617004545332623443165551033083226202061558852546176473294213492186246353788624205660557046018665939603178156409646429911783729062448764249993973960240416541375687598244755404287381825351893496792671587022205202057765063789878171105768346022458690456897480519145269761620454067231970910025597558254583370179179829718899385231587682223292989939371842473544072463923899076429738479207354517213163916754627960921040122320663756755917758453493881569370117296776899305325639356647468272537633031657434516904987589974282538225481142449915455043730149768634352128943267514795179002052240261505805698832632836769721139305641411107386326805267394290397840488833813474827922021771134359972950269617862763805462779485016523948698112295519176154232638816736693552562898025918604300263221022251580166566490466681890570650189760922934797336671652479309069101231362579540389987438235271569196002773934640705167945123778337490070426488710631829790303175930705555477596898462657237686217257604852857395670388078362648551722775357006262007823444439261064929384567149201239146083696175062545509510296739428794089442393166932885692141255213266942667634202260798029183555785398942866799783196919901654071727913314780092617031246661119110382265684879290440114755098144594920713219150819250465465465844459960615493491034994585936983471459752507525380196421900133230679418241124216722573255061214858089839389560202159186638279952631973567404396931789860596311495355086345074354776108334671146979265047771255717803461664854013792062957770869650713459327368244662070425799833260289040257580163750352099158573161763885717516445197772765928313494698926458297930254968363287434242578925940666151842347715691257483058894043030626381353897926565163372726672395024382525073726720310959560510579518223944179599812459088352006531768032549969385329632997493444768728654306640483533687749973288802929795571738340642055077918929165018078404551975131454741871030029994987055175139674769520741125455277731837170064642373440520111672600360260558518155850957473972712158485369590677892170933735966413837895348282408369015956074365387705503582246379669715693026523184699211500762771378792731003566514933219384158118759212583117813934728796436211792994698658531759643486928420522377258007442177352383035783428134047224405005933700922883474581131301233225588000263925935928952027675742474452381437405590551608995015643687767899054817457501575523555232566083557463664494464725112502625937511784875595076043287246431697369179246264100978459273080326471914060598506642559584196369519016916782751222022209948678164503087918002389010847370947965369631701758273734249020535004615560104790297290779866501237027737103346209353346001531608910833948579132983244071256197412365384930481667351194832961490216761851859191264855794798056979427257915442745993258333452475081009670574099523864107089582321280701983535438633440347240908528568377693998463231617342014631954850764309214337037689133723281549810185889051173611042383644034662071493203510007635505736992460520246996706530500490080997207571326008360879303046938423092539226545054220911771934818388238960883031798324836155548579195992185582525704521340012870246155960221042519644739138661128629813693164039784483300549585818375410718631058989098703959886184586810337311783422341634805315721030661488091951398615471243292247769518031676368154422361240491215214233777143236623324967007840224588825741337901806024114356216927484714641734278654828179792373056696630578195026904400171961452520928607864710058686340083306846366701721424720993695508342724090102465644584948584328494405222594897022931263613391136304779352933913633096545612735886657894632150366889153301998101763222277025935652240640720081323181036388455250424143674795310931472876292941681337361931942046078881602379137536075456578430547259927448031630699577885269708090705174765072369524259932646792003829206343434943051077013777108824452727338319402017205226708097519761562107200283625209010408161619753592087507786691666921794652936113682515471232823236178117768290292143286336860738711646116981818957533073567543674619813799431674234164233263064006497238706500855783539818288211548982804710823643070196516880800230047922288507627682146673006131008350980186578975843658110214683074467455516860751346347906744933712700676419854296950170751759337380351531682522898107907246853327148610389462234606997602956722597756587364555288826149707294372583848769790939110288138897955620345962457521614130055268109056851635956289636865980982609402763103053471716451719357543727669129918399087949682240583338867870692709268963563901638889371728663952247543407945508989990054086301072756909570671841145358392236917658029251235193966171737569203653290387856008877747553038264236022032925629352696610555318864599680409839359268030071709874246024321956130966946431535315715320452873958010926597074353568028660277051199209997643643222193702977465129371296729127793392221838942981195764097155105123544082579283691312021244607763397671734675139165862388967994709693735809217640639373768082635805691989781159465024239028885428159488619312210601138820578545834972803659405108831730311534201252402567698126284895536059463861819380089666098307268238069045407765844629371232251576966353105414839256978759778524243260684926010197205962918599669330349515772027364280492685729096939242278097645354601999518914505222093619215965538985824179878582351078001919476606891442245916643826188544744773806151977632511797176627973956112256710766056279788203142159437571475465466967066754549854816411510604811450529744733691724718529243553322550337888970628435040730341495167624707075467580578648964702382803570387749841399139203423792687327557675059913528334721855006808396717756882884504452167581426757676536808321838894607872408196042113535681364693540879484328612099670868437410196705969467682316661551556607200129934487264220490818649729226565841532190272610940466998380558795774341265883042705990648782703181898055805407713626280089317376579866545476658104013678449299828952208471889389008578934970543637025459452942640246993758148676730913083941669513872395706061029987893004414622503674179465079188033594298791512827074309897579298907076121468552747483407186397105637493750905561132940409305073413172525355041206523663529910474332774869053060347398559959851754407159117289129345728107832530784897602410057811699705804920241326235343155127988935848739843851338225710406638410798077702720405769986916033111472830356855596202943309486451154757066024167609541920427687876096151726926833064690155035223281881483896219445325224812381275047818148117266691193902683772501459244060067711293049403265955653714075853934148686227251826629108040791299566364885784250427754086576613398539031535882116942085524783110944737704946595203874316949763015750772893799407407105967400211740320978520230092922334932119508632695988851862239526726112297707276504152117636676003881535583457465672563340466571245983559610151572253161290148665350001172772449163441576264479143790575367201837792712699443750685208720136701439182741735881070264084421254237182143616036233770758836774779819410228118809583662228269449076996643719106979065329917739468875817817972668977457937976865933096110688073402860389259026298024355879202086508670588757040726503459147261094594331900793407019693751811663473897385512354316454589547725254935041488248641315317031619863263663220519037573536210342651592474584108014827914301606020508666010860896430754109994581063132177199504957736437310916379635325765504492594906398792372379055076846178999343660918307023932473585586638603513737783975681946292358130541404301671047654350499654589001995201009857207514738652257252633137044134116928500739887594826042868643273551894737405455824507074324887989177133584573619361308679617391327108558615328212722411886919523309218795134391389276315419335049717029677280230134544668724988064471844392858312073128065605758157320226718486999761088116912971823512504489101659012131331191421212949701035256607196685672187700869085610793526063052189445852206568910041378857701116101740206766486112492841931070638322776256535632497694422374431611356938969898252399260744655863900086210589503748559970633601211653656551836294146761496133053588783092779584794647103315855189606118603561781726690826741468119781438830801374399024886305052662116216481342250677351016585180124619049674825109357742949430221345007181783745402098866282702985665824144874750498477077365345239626057045381689150037876399662901915023139242015390749260801163338252398663618025640119229066163500790897994011647250700316773765802018312578393183018338802723197060040379416836771600374963467445219049493172452192883124658615579992891400657004354740189278246901743574325626717873989399725758727165666254734500722740703772084934930110131483193025074704608406486056022463569951936536664369530421128449245919575007710598413114927189998120334257763095715172102946632570882379823507339292834587849139142177541465981639784506339673794107726638322910760466637438631874620934218493614372452102744385782290416760756228325709541912966784448151125762218499073964194299557062352489935222719467974931897541161005241248702513894719810911143743769854210806790574465942012693126998101029121982982335667827211615598968292145838721075405857608011393671655052561690917376103056948897266120650391308947665011244523080278480622594923049596533407854635344418214474542006415240769150198756003523295473898501241206841511071524770397433532860798039621281858694525112485565053258675955448204057200954610443231866173482154783461548862491698946388079849997701007008599520587838137319243888784366955882149417157060219737642255907512330772984564343622648857860726346449904017208224306603198555109614504548160975917112489879582246442528622451252936972469502735417239740267516739035894263479363738002069557499063163810209053606379491568057928973315464994772306675078937592521687933390499498413730212452817450318898242574411656373835629670476293073731099531670726591924198580658729295372365020886689119953444601264392041798234283209726546960166235469784760660081932812205034906687313198616396734451013423556259331900897918449184425820194617650784119961485431330117265503450980320510144031658926790617290759179147283490788396801720212088627723993056144161184390338238469143336375080931765887808138164154773921735065183277685160608931240856966382613875085045509301411918056033641543836946040165659671398925699035499962410814813609102328631975955801263571465611030379529644781222654895919279425134371766689812801613633254619684222382934906444561974956284270576545889942566160530618619586921017907518349334404351854972774992152074742997200868035683075119675584825372515154503443922615538461154890520536860697260932707578441475461281310671268237596199086914121392073538412441764327821297673469720520227155342872489645016161181010240393933987396516462110591851928126788539422864054898903834787514987229940847639600643218967294257896558729977689721935403894861970741990273863657038784393359580159264262940849948564121996801735881089446042913961250515972350305341838528096274643260972909308598870484354152949328999234245610048418757592119676982917600294178748691216748658957214108621375859710393509913359574082519266877279385931369944827776896479166541250157050234010342241368136552396800122825391531804958929134154488544605652694686047171517315358781968578849233871617366116382766401222998682713560026563483761876031427172303781576258209137033335706931457786775597366928128806427240446230575545095088289965677427846604388563499194369791216606201113311780079128200224040921586482317333348407744099350622189623441997854970366905182448451748360587304879639441015576699155447749566675980853026914458975970371093837759753102656909446941158955891445495935281703684335450051715397422843384474096375754007687389016025774350350893113341124596471141233792856095913262274129818766554574779638873627242582980863414773703684966280682735952790889224260036042147036211029816604903900773305168392332961719213006705556969051721983688739544514666390576084142842686624351218242787615300413827424917126213946542375122646946940994317328845259877039979689936170512129742693848166874283039487158288483855257111516642609063153066903442183009352754885140959047819429638095925419887669127245499755444062050082946196285048993793713980647411954645246131275154100185085792746837819717013735433512580168852377063313759564875362396256218802489683613891147579776140066412017648113362089331577063064384684471034813415174455307335186406068396682651920456508849566484125951487591786181737655095750922213502064467929779404477641197286270598083043742680647925669894209553693443843121404876952754159438474654296808789606463842086633737128000245312101282919373778565687888562017830515358886195490296242880619421218346586551493214913226728562142231749747169803260077146424599289071057709942160089661780560417385001922727750305845931435010867256067266054676950162630143806702313899775031866826095989150799507760417168620911179726710580359988221206333740080537352807864653205244986322417117675377288719275933490177852850338928720914219192195397975965687489407470496461222820349377731092798563315296950169589188158755013174002625422360171662791913223093634610808707165458075856416851080388612494721509044802014925962110384357928493814276479413087395004693278644467918391067484005857996234689231777484493270904960466520990250974491892963602232707262951828830533402062024669678828729628164046134995793286669781428780207762599844647088296903492091855558125279631256735318352080114854655111419534251785536396371854728072950500711131632847846539986567807296989475070481599013596728925048199493141319692214126549476432514734885104383276797964417407774450805407208613344505984083971174728521759179858649797170572355531236790707736121641129736257162294898583566751251853215221028403126601544813280710489778712976398617347300857425749207483488330840110541748054020222183017790763071622698981301064770298603024020956146638435791669518634724394030537357328891196300682238289906965165382760567490675745380836277849035096013775838797882940553799033640821367006719031108337644340317192193293040244251980922886523327665753243045886717171407230395893766237762827830785924018779731849004322625241416529849088590927344465606622399570990353151899435872905472468883914191814830922524532101111229371124259641291562828306488576668995459809304360984565217409950662871275857039022581777221938035658166752416492407541900245830773616192485151203916003443160162037214180443636836875619471819275314031526297674028464234825695073053639665951349948351005695602881704580721246537906041849274492552143263030991245754240844238837147834459675640152192302002976654194446052876101360138256270914112957134442907917606602900750070994478358762220687266253632877821024417154410639882990327976681040488967164842707201193603455689663485081151316524671759107298976459135108200143372884899834730136996758944363213054550370719180586408872469846485830786691469989733411585252175630087961213703129289952491009187981536928485738363806419185286238682559743343623485541099169787523512336471685078168437539771386766064443334114951976050114295363226110291581313270239236711193711648587959766169702991972123615117294064722592148035839068328599900314136795206849874423409485268405465281968081087187645038379189390726833568926389842511392432975787914045437712135617140270244423464815336514374080407887874588996232809968821972548291009620560626776029499497937017906117303507658780151054524241746573425953505698208060757661443806754745022200435568242832303834430853578619596588915628425974363481567070367992827826986949608195308378467407353593917256533626142429182107363564982560940097535334906859501094346561001779947167160246404332683550480543599486929123764604843477340740893818129277239293297247141176183576739196167908892302516218358653795462145361173006244158948369482518431446385497224343026947922605435322943493454789881351872465125341633873295734311373205809187992829853728908566853291844436195450163945154672271269094763668687433238786692855032398837496703725237743797962560239445584228516971484879158929371215004284760663021088149283485930074757019061801861346531351021547187557189967641212472023229722339567872078371104203404921462038215576716652905381112260939085091132080459869407170888935609926992472797527474198153259388282123415982736668095126706240427968384515532522178253151524626676121415739549197896452406789671847863762388533557131881208818870663195457335509589393050014146817265711076036831214339470933535970762854507774040518977985507806962131926611383995250943925547371705519757026469720627578029987897860472308481560230846544277426933081094264632883561141035476692343139333967294845778002057277974264748316776232036904554795301422862585842300986415987465522096009009741261585928886814478347189957973809185477270449832862019842500356424423769809987944091865663674332170256508557382183672380118435090599170368499152906016148489117610126038888816914076937943634172799619872959763037734738777208257010330981282182977867530322894875336225569183479861010385672900446948704157368509248422012991774893658903345672689419237013379351124339525749508722330276306352508964074641273084366109083230416658785394803838858543480037775002112168866967990649923808079386371002049425395548096166231615233313694570752532790358115483053635425511249878063225426061213020162175006221694936893586576640383111321231741007799517241886676242458101937261427377829865968143327087859964755027704637309848739905228231979275411428621866505850835282197233419267059577518916335161850896702675823980374300163641954996853599089640770649286746179476088227038135655335233690572270102599433498516677493183527406371363918940969871103002817341084198634612913082908144077566455025605229899858805084587735752257584849085384129073173894332483689776701989412818481635321824834343749866099875222098057512455008950890263717259815285720690254343302476088072295824970177326859954574491450502508526714882926271276672773502490814201153740895176320014626354845331236969089507488972627836738875491277960993494582146200734700865924312144256949604613374694828698316727328701857189201999355637715924498988987732261776487174996244033010791984362703070553114027279117327150149881094029734674414028482513907664799379342133316632170746336665546820832271698353793188489295927821739683483326157290079325664951325542888920916165802557742766452418879085893607238920380020020088835400066851534821875207165302101847290415435558760680232872327912458047940833102734479120888124004585344761802896805050997769363256777481361243899911827272886818793001767190930067695966628721549778865417737986093103907059005902767093600509660656333473473783766427764573187541093526630486578539084432728118534051987266102053601575843528354759197308432833015517421756994443202275322294214390426820599525980692216842766504943170798173694862686282731385375319027750933920423739817833299397820719545348201380460780402344178550379264975163093576669316372894768716513618745072836137446345754487078609952813071052851234471370829455290567326335141666522073927284005243434067099122915824722991103214974707982680415698658797687330678610179724793178591268255349283409235567397504518867166631938337504151537166346338732388611830112051758993287497440342868452181016973477763822839554188387071022829032358866618743929360191557557528150205016997694852203146331795465226034136511307138716076615608783740318160755604751342555063262348266732259839275565548628580942930653812552547916158757357126286949217582408961152911980642655622667419488964652955168646722633808224906577112328901823055261555315145549191577139319932114694738800183680715458652929133576246954222741467200726821855922465801054997660430758534512203350936309548901254185881278438199322367929720001667619929907335465951296822021097069367999863526085666071954402267792035259118034071075754989313960865709988599061456352612622631797904485110618243282793434571248087181071355725562695622085885204465069563180993998344353349240856024366971600261956379944646899045592882216965937152008146594723597141597814192912766057804190700147025905649602231790697326736258810901484260560140886385454723951215592557561924254163338195705988417675153516827119480315499535047712503872480550345670003387634042542783258668954016229305880156283903445314588186029926274966474035920051553721282788719008082625692307761852171204452809464156235937614133962845541574203418628689623564508096551731145451937485613412432321709896554060620856307389678675887754181193377803877170449033367235449666628042490341833181489696599092312461169567269966238575858908530052302055056631490155174785220727248874049429518984432847291484225284196363959275673607517984884316961568415732575077068710870678588011709004025991599623090784793330619807128997179230061424243803446003436710749020617623877995658141826729790412451896522026081926528234884179119902998972351901579188762388605636866398761531587502645121610502395034359738422738106645478661900717970416341774335646203049212992650045899666506315484093903347796259124048037985708528107138426902968031215934909579992939170239795102191261483053061555718456339592620589030292258103574130785968708341319916677746654772767258672020546866981838584397440986279325381765803633645220332127455864684275949114504927859815198742604862062391342791409198302304336058707100328184141619191071602109956759536774028826758451688095265486245027942337745591425717753964463131219505925541820218131833561965385673835835606060739530158745675472510940235947932373225486609735239754984855378713574592826402180042308497429729320349173438006960899822654588032738265240965524707797656998844885570083195806216670991182671716069846064701614134417234717069196941051982523858003854011381319790097455789030246667909192738627893197727808539564084254014984753752739605110531179831766876932336914899227096481903553535214037589887155926853754644463447296584880178547622389570299857787426773884630471230995847203671620526038874945640763507543444307526859203514617443134105152937397606447584738588464805467808787214551182759841178781796684563166603863510866189657105018703982234590737782817751567903330582108319825955279493526647520672253595336477487380313486689468788633609713224367040673652888705361159866409784298212313437751341668154603624391164414493581834782181505904958373782691318187330426964879854376544944728762772872675235083415235953486350428595339520038793625734549933898176426496371180234211452426568530391076334272230438780503487867795206727431154043820822533006094343605189403121410770377678110019557446936875298459749991276383290631163984599866594536028852363414696674190349758869592442836055217562080090922953867297899251728126758987174644801612495048413248890122101933556301197359320674451166679129388153927649569746877689324328176093422149304139387217397489205915328508990561948517670496169192282571034543676109607062054836092644745136920585383852972657894860988177731880217168950110092422746974957990742762148560338879860613975502379771429747042014015622928895315846238145351493162757794750269486362325670852563750802672001357885772697706601101405325865594084115721509030369747162358807618838579862837782429538724414095471572354177020222536196777719893123740134703490169559456310735179416402467668537006236586674310388729777932200648751627363734280672811568279182805441431909472679648125737577657694974948501214821113983760289287358498261336397887887136195364837276398756121109298430556818077119472904626948297699085631102438022017687454861396339865377366304441718483985252208671553373941466762028964214672888321174631233656171945002060062428548592625992954744482976817629250052244675520392947528810681323854913995549181470731271949138638084957648367104065754742883880912860007381965176912694689349843222850818526243897336662915811178539421116791763838544726599238113264533461740615772282892739933131871418788393591913727995236093008745524414113172639436500178291504691679795388763734468865051409672612742892035428608299876833315481115104594874070545866498134908519335568956610431777704930985854988073555719254142043859899262404141953171637021563191053667314692510718113743839270863724188563374592615755494203811564037480511710422645387025746603777654839908876288469285349341612382033218860647828326961337229443859576459132936502695101422521444928658615633986257463080079443818005009687304935067481124395166648358108954309205434290762749962415998490113742749893483451183229827010841509529955303698909698566832552208801796899783222153629853896579442525123666398262713049950086187867920994402469227994793691366127986434945694379256742216820260215155206459881446065664561142960995178198452747038279810235789901254854028327799797299187352829578068756196690309172533915075064496442890296031000170021678233774678507609303412728174806230319155061287097676066389129326311575820297851813158879319644498924914672034884139830811120583183375840876618384037432595852854887589303062071479830408859670532885899708036674105736498317178861015445686853216481657519545018186345870712315896733311348311445201538326312520851022343618003735413497282647358415776475995271119046143391708604172910678586587992956757801369537896547412299482983620165889953504392370478813109973531522808599369960744745828752922837915392570106314008178174190564897617627456880916858062122661062835172221915869256949426181154037622986835853464355948489487319827402418329107837402968453628164083691782182793335332972536337427785397815833217153434238139075271315569248541521389749536539835899786132658628101539376955665620343961827730827479448437448415873727180701016050704202628004041871800262686017952329331076645752267058332427161606350859518078028714518670815332379416841750361813532303423971231774320739901436333364702233360672243008568861568002551114339490181388833809266672462369171814532564926566081701502090135428633222890898856195083340857342483261143778757582868784712747657198513798235874660894582907666888299648022462784284779151468162014404481114827884767085299258010738494524574247055693010802554851085138128905435860631636495570172272133617077806651482914990254327272154676165994772339433268623140929132667341140519060819436206156172411341247887155031070743432547182569496539218050776363250319293863492511677598141742165992402663694262853136813538839436129247967602072009757762048202352079179958394871350012258316725845202168575118753573445861245225842497481164239027986648234814829030241967244439091726977644637791430996893009776481894042701248734531841986770141641446666720412046555052958516299422060126189533933309305061706277621683972266928325248128773020180261575905240208315861660238326200061545336774535444679310144610127126906441575705218057392145713960227081598220346016226796033029884589204106226515086755906880095979001965242107362077994759231371487250590116994717570429753248733506998905261757901527958041461225026653613183328229826419106024398846134218805160433362788054040033082290919066497527909324092613700160503182701370216639376905927448402451701542196615898211001878356450554384108715423647933712856971497381036003783833249045501175394203342795756561023746340917842568436676760529120031539420195779722123703145735956091207316669955390531692740558823329059131203140750229822810006205131564237243389492717622507488716775436416353695571304853320747407851648246492137676900660322862302079913777680222637101070333744187125729081681767851045535112559883954999205507099931604124455747579782298824806751720139525793842964353785664282763709714016573614831928125336152393142571202516376969267779324547585733054895847364541572243922048202409446581563946118192930458904305565828849705387317909918547544329256542125130175261194966577305230991753382861715091400689154828199010186557118600417677924448536027870895763335900229361055278381568546571124717723173035509825810281078239682409434035843299606724681513645883935342645256753800598317383685965992095255309899555470757715923432667316205018996308433633697526232760362919026513134086305746886685456062403197398275922090051708935558676058531728757538225311986126445465432019316877525899948941894710985283052934456827073955785650574396047211848969919240870977084963910844038043173133762912578098058523445487541273464535402956396083971153941150811705084820889878510000000317073656160630457066432346625847039206568146452297323386281969552812246311407615640340675643465244845988530371861236013169399338365615468616574753608057502465816555678895186448942152371262272076252473893352944600537295053897472176240619405511821276211692193474389746673842830407790954078188238813803170758265913098383029244626884007828589816140950812944197288755245385514120069446186760230033479158558631271295835870454135915662503483256788868744901224364845177853187813304036733414389956780219682564889089497967656718336038161250041212434172512561621386029768551659912064335184420443132190029318053826411680369832759156049676219099923374813942092444482854922337454208579115205123666596005202696105343924990893958281959482842304668142143428646871539622042743317121000043796168179476347069235531330840342307849631017111156300861466309662369487951820849298230768062655289226212447434686474025262121299656029511303148522767634854078090934608960369271883171212834926321821180705117875323942849174136976664858660090439785442330929487934511382830029508112878500318373476616919185178522206854975034607586165532261066002946587623867790910208783049826583955136515024864592455806521420357710855439680891683359521542045972536981113315758469299429477365954503816556546713085368883020049283622224035951135406915047911992178206398192901806149528586394309802077129813285376611204138419205929023083630608618970353799401447527031905193722519748725790552491865366342616407391174191444273176483059142850390489201693369683871386597308401415064832530337501542827232447244550797478750917194610652236228081669491682697273732671819661614156825296879298718517364825825550537662067949611152501383340523800536645301100661254489108502306645610913050978537916585578107031078622402444348417533829738939903352395134680911743303174630913912639803244209319163782408287858025169080571069444114761720871141845849657755187939091610083190294017616317985340709236729822776448417585808610001661370307171679176764205367320623717542267897116465075973620412014615908997143963622193602031869301966648095492714098320295384710410242142075835848567137717775410095006096163301567134070030626235046329269671143239608242381359971479818870050544212040689066558400773385720360661955220193106339944589759424109730556982762785404119135013209615619217556125008633194137621276187209742165352308532034960225508182770402546619578725037378708983861110228823405381981915513620746777752386984676438927119796352375689423114894062474664640534035530709879250799157744167560384111935919211248261935640133258578096795495981544893466524037682608461953700171484293394239951454737785726800879152016746198234104551073596398823291095457381698201347780935802747419961846212015773425851889452299425932274610710688730291689808091275774413663862745954385227816387689396695312096225716498419005355104954813737951864040673250768684113603891320457726857614904548105516833482421975635133311159336544628554501373047455916486823081692835960768817269502443456513273463713363342188541685174166413929735663024117278220270682658659914735329929374705282568052975703899308863718421960963419304657454952452122775066595578422163442320628025935824243874865309501983192698741783502372629508677027056501934974282311139512391809344257182483939607099274665981960251110711187437409978224978306069793039794116655608168302368267367681893103510671871813928629015893629268190793557540018290180045086386848483608818331538562082492097608317658435353308214497368903564447892346826752053892370992904789362059967446172333907106216402271841905269577835184203896962045417473125984800786068720434257879111635258756892656910157990642021734588087259965052886091882041649954330615040255688429968664588676521597137679009080984887251877441284069048945240702188356471298038047673272650210536534500285483198754976650002915488242149510942533519652213920655486818787118505030134703337713163069616867122140510552789773859789651861587209796541593943070088209178725377741944853011899635418202588759906806032110605999104583994480237305050702614881050740476913436730163462282919868602301589309658629631212546983286827869471668432809436585697019380813368893922608903378912299008134080816046896671164570825577860374446941853517423479528832500334461640856260770310866773593689781952402062939375157355751990300264706893068132814589281118690504888262536024421150469528331796908099777564403900265101214457970526662579857910496006656974041230280900269509564659194552423175024406794371636048578535822771795072121436319496261785252494367450116272483030390888509212882240998549106469230153902879121345678280836049683564191419584464119424157197287465877623560734461549186235107291508272046831909385217411375527981661107224973546671429224271039436023595468230762404377832488648409733162933908619114639242871146438592183056979376198424923264385107519010670259796216365661850540043853109851553088208177346438506275125595526469265740801310589300309905121308094396531887004444696365797233843943462853681165903843933027337996572419000505064138358964345958654855313490744232247631189334406490859612532807778613209887213718464709534355519414603362356563086183368205923529271113165360040472341556721587552926531507676103504577457152936665876830953272525270343895977795359356305121727193143708676114445530615658014551017713657702882210520512071279378405921159122141388451887024261948224422982559185689880338873505907331380597498161250993585021022958745218615732787007978646590726287215950592864972364892204041277177982645574958598254253000679214945541535506050548595361332825047894921086676910332980063958246269241262489021388663026468001479034259494417613745916848095710782152692283082474079430361264178871464220785207930464682684704097779237015878521278943836250900963544784634366041836856807091725511827008840286513999114535312451281373528505153281910348627691819231947844536701055658947147266332708441602925651863638783645838509954641310740155268902183245835265096504295159799320043820148850194601438159595571462546754308708817761309663370400768958922420949119564611436097601835273471613635209073681143650477046316535468677222829252775877175147470294701281498230294338082967017825614941937728012421363373318530139798587471690470676635872302115897881590883216988207228905450966833283168136395821549170750766084195048441881194937462848469807220539750336096568492373056244833694398988241214426687341229232202639943362497684199047771939281430158273571826787014643542180347367951130531846278851289734632174281286409789493815498712037354521643409513629248100343579481889102016520220289412408007336510045443968037574863551318301748850557351175566813668776277057506750287972805466303571159189655253051055767146678517178929792634069034281180106452640345922343777696452255385292216946235233055321932120506658042575324961433334260312012005383731612661139439489216889695162273769238815801013972244021274627153223739712173690335029711599452662755391293330139967315085326036547683152741494248610054047780601900709560754115369945535726287203690899708805357184350443057026248160938351652874793789265192506423106539315939803844167337585107655617779996253177177044096293455255717564240905929356908099390579973264028293906058419095009287399245746363549901602814117276056053964854294885713982812860681266999396113667747354472655676808385231002108249236521000459045933568032850081638900217921857067683823550524944079053367188207151258971136710416549292121889728120909570994663766730100714908907751952429914744806498347777860854898907635209657955933283679521957680831615504344335751560549356298457002615624145453581810465147007018928096280297992306451924708127977659447479273333483609825228837158467112878056596739968033267898474372111438723033807513984611812277392190435478919016574012047720864666463646214134376911352937635806872470515287615213902626864960820232423352151481466599783307110638865169004775741840976644832510349446776092133048565688567821893203541865855529765784158297869724746040839115780095465582562399839497322272654751819539905917802376774706488246389682503437231002592388796171196357337801343444265989094730270659618674374686804652143997153055824444972590140102887135128014206105344829617896405701280139210683613488702205078509778659230187340099486838229843525368813643817573513750623536077144130541676494369851535675749448383023041190250752748549437203072576539395392471207115505143179080175783886931057118219061708020486271546905977404045155017028972624807701034072442130128477061739694800363500396180381957030489634536851928825213180363383557518728732408455919571503593161818780831445752125266681309108915095011379270797892699017740301294245877628659445302219096079130228670074682781481239655875840736426691642979078092518408715052414829482535264739395969577544535423199362730348982549650562064873179163583892194117351391566792011012185258454044131813513583212665962342961428963710969941106633819638307832853773758742354228070448564532701001999016878656425380943822369287817978980320902192320031799146634887320224477292302192972801578322494333258756562036634720980225826848341889560941155496227172669664516906374103842677195298701411064423461723229039800682918123155110455679983366665594352633474225836814803019032854145032630064296307941962151782447080097501559946942850308036940946352847506058298947377658620797918952560929981571858071075775579210592378778130679689602887933471858904094072978359466600609793145806659094921483717940268555202263208777242300020659823301102928356152614836032230977281332086408362805603275084739382402033448460266057985058209879328172153806611285820807568075087224054951367597371039882765831284173453950090087512584843535688682284584045297620480379074242049430323056658800362011579656432378756899886820979140314418672118541251057128574283681507009944245931628293040288288939841316953627890253259369958870768403329990947326312959338600438729853003414244021566511190106696956079936118876342822231725251931830650217353965046622986771145421164440778306834163918360806034916179975976492642724538939424933679686538228342127840594959621864079668917659853004973214852646981483883934469960581168845306193715323068394677462892985953361204967423967053681686369956691327383290087120263812785022688997873305729352639398670696600470320601574528114425018893884533146056573569300993530481840431815201583300381944515461922612655658028711728078365114153698976073204167071890214287687039449894495750250564339259128540673257083855239053352343332418310147321429205984472764094407183070732816215398481230894809512146330348277657643957553559788986976262939310319565061036630485028051119971197757984464407859054676325358047057113965787011304063784268289139602305908491694150923773769352376707753808405606738148781940809489256269052884718091950476763240906103915344435231128312568897594441706736728659010547099909007633351963170229781237641317289695061314478467793181846913234098112166966200425611718830258259301182817053334102171756249056913784568677665012153447409362448218985356356544669735398631089651876076468054189059666649564436211268318208954361157193746356408579668922248009213288889975531313343083863816477067820728412512585900695980479073898707932541697872437434467572563207222672352238413242047044889573760910020054456681403153504951598277923787241040851314896237361704767699724959305460294082412721943494046042014100327020857078492408122183949375310619930692033364710319089153797527865873934484942738381492199642081878140236602597485405056078891471301834126508830415865339698099390967490715429311428660204231085295461998110988434261794663104929345585905151887283161548352179415704473884882074329821395889620548712806644967543233444153006720408338308140790019351843910632205553640935735559441108255454539604114117133409373827492725396494351367806391799445098875190120810724160095128285438884870266759896862306539788772219384110547813605184779834658225379602501106281438203925685107845436865135258539824658832963277363823161610209127164161058691295760251645346395108789327513244315332421879449597032057333523857935419567452801096307492569126456187992470074583975375383409343652561677161085331686735299602438562530154323016337252329821980194640110060463316993630630703656275470408547840851455475191389217050755036709895189863347275796956769353658994300402753960757812498729632302579677093055145181632962576257991830182562440892861620251132927830014872139655797573062748844889480280899085060651208538620272772329188452921940352326164839081724015713933147898417649590779778957240247469161839551296744277780629303836520895564083747314317212585555746965740838803691883092697097438342751504952904783531284112623888174455674300542935255892092292776406596421065674757919429172252370100807711216224911641922658325809646744207174439325416799396731317724372725253920688180040761819887204102584639812500931674346299159931350203026066520306319263719269615107841993882205330941944121647131176013172398998693716409512608039685963643596652232312920817676584424960074032805366936843353812450888003361086552263703304157412254415724738566004817351549999548298157263901354752865344047266954664004809858790083110639381785255308069099545936969668355586533793175111798745181393604668155627984092095310936193330749771976285732194446740918665747574694626281960006255868452724324126503673322613754552042529914711867930576714640110586891801629020226408738458683691605999700516315950207732591224303056873092155513583343588738980194648230488623531296107322956922275186145553552803411039199681261389110868779343147909526195411443176258620850278985703029248482611148211959857155269076271267824916463110466095530004093772207224408446184368775680000033255722390414995464778106068677603476217168338319406078389412380553053007254906252507019528843260489566046632189052347833591186126621250010433078402921003357647159830462988338669262067265026495194635770381402640563737716879990555636421011103668661463282106112205664287031440782561389362063269976174073747372314078174334740100854688345265915426007627244916784159801167981264231454977644723925598287143143209303394274934483184674735520243174942520560833909988557398607108333378436022764770469773387918752157091613624584500151798630602614777951841054414327167195352269260545474477660349438562873575259101800652909399554769588428043037325968173685654996843487623896696735218050542287206411492168260554722329068696479280611448345780307010021679653044006023808047898560454956288880269439535416904097447951006264409636726623453089202280472157558873048240889013102319998179261785260698866844949503043294167448274427770321184360271324792646543888073657663771804868338970029090135878576479510882348839705068077980859358788727534026801712474863256431897275696702206730011016656922688169470332298224462648002852792458626900293060348790316154886421279371332499419846358434313118524033002601382106747224867239755321703371437310514436941301473050784261487579242472260143097093919914848795947183997829652773413402291646965833774167127544564875318127647380754142010397037284988294868091483830966414259924778615463176400026670786036263766358537812378193012882996268053070327748976142004134685864042177845146652455906775517325654117054498263803180230666121218396207943749266476924711654778903670490576562385822100098648787345402609140890293864475301996417947091499232216167811640949227192267487503342244710450148186902645887378866643278319504905113029389759351654130598888657547070225081005341152589646714605985091859362376549639289951772568119423400908793282765344661547839977071619413535751218493831286884909832508140125220282192656479629592135735550682498641318172929663070313617067283930741313373838986838584443820876108877353836948665838984532525824181677181101331826178772393225384452502617494805864751555524753049884795415313486914249433551896857895973856767332062189632866635839958070073023011926597102743907527317841828428791082665482924385148265403080535879538823543128623747901985459917291899228626291275278724558980683060761723404020658530076781023891651044519648803918086206132520914508730829438232871896999297779941425531811202407527450820512146825604218834662864623056555869648049186620708513485000527563289908862482256863678810590653593837420970880120548171657185851348096998086878243907662080022545981576574525640188960009280779375770629741599656856318916456936212743722968757969138008290149940131616777792366506283474375467449115988021230588250949839219463154525169494622067526553598549652718548029747335229358622500801895321704429181745279278823590502166614234813506575367696029263272350114661886252345125726055905103170555016387735961117096734160032419653948068432038215310251986269279677690142800146068573550550204032322699751191658440070862427008242564747004897790057201479358142610333122508859977900079964685613380698287338078336460319495074595605517875754376247179973250531022579854494846427802881304328666478213932410939208949214991531798538265022728705648173577785609802025441892188909557310372024959238115786669127140360303799515072350348209598825275687351276592287418803563784223632959392431117021542694596737913044446860526057653656289193681473567202515291223398050744789314810060577380463438707325950408589059870321946110242830493827405691562846737032604178623203135035524466796565945541591959895339371870910955525645789032015202651423835964516336014014470526171422354621239686885180602901827368627767375550323158845262876672413246536985403807120359718885289068253013986032497861735777517714683173247317003161191503598067852006006953609562243738704733337354526320160892223879448722804727070148679493684246364569268497341351689752892975143290710140388235012227432735397686159231256149055052292940821489183796721023260257470016449568863121273545764108794899118997340501771359378773655979507303456094342417759149294989889122069580193897498681843097845005754182179940801840588371126648455153894889339284270676549779589590403089041611808505695916884030426298948735221109521838270910547286968814856722542352782272474955153722123252519191225557135049406461806947636906948354923975706007212919121510796184179565541257794529523726041629537100806001996169994130091146587888696477122619684809196597709685279570229885251535118354927140274352930581168821219264693383323505162388637661317682438876257514827087528522924861751972560960041992082151064867261836799268105342728960580119559617402858878431988644430611388273629129351322184539281148140328293800862591211947901680099932019343682813346804470607397144606790300913543152298260668683175086614823434205882647893616103302645867993753156447220675135007192698411083214216826938078252772014790187184328755830900875122932424461529140920563204849335620972443691374909979776198540409696753342512050600717879910489597003813830452454213232522906775407478483892861382024910527474940117834622660642347581103485648777573893041646368033761683108064438886740213129299758027049782253050693760766434357111341301489154935348894077716719566260019070617903907937408612632493728145928435955322860392079394113506559182887801901885452693862567553990571870248114369121528378411192365479267854033551619519136921584804867027111780705987039468352308232123997570049826107519695601111882732235142473948717899649289040447191203236309174508240504900459615589836057745999728453556496328979078110139793277248767900867116621099492575140428253638614164645696426458847270724368067951898497016403770100648157518937316755033645503957510806185546173957399865587627933020502743869125822207740121411330813344957501071188168679403662765403056581952719387054966177902836600911258619797129919244065397808453980371616958421948348920310066175626526807564557581826161235024574164787986452577513362492402070268133572640567483349371735423899879949932019098493853502975061569233637375617228956412911055622366512298254382208230272492522233310216386344930749865964711289979634810262460793271241284664617710964481013185048052206475842455041656844899722704445567760764398356560763497201811285812041797003960535925286693421287414370045139066497152503793485573012874392780583504780806402819707250650773186769304753754345146905441572802565616539003504631218687988210673429468568111689924494766322850930886181672781324396015762182645276508581800393622544487352759860388490435370487346711628317522205055492006311223947915769241975079770001289423187160962379921258256424264626527395582679020913840321587553177639312827179693087328032126506150866091446121703792497000740244261279606444827981301783460682796084153472837028747013557784427690421440299324427727271291241998905996962985648847703734907551219409834212720297291022049359544838098333811069440461566436467569497242526274283327325422820838291038579131568904805435997207958669185919224196529997622691717619981486834546743958477130307903609565737611546042639328543950576854619260078121676963981735497194168687514027171652036681060278233032219705976622287405134898131470301267778713010538932263861363110612896136642867024563385172366223841411520502006586591268772125012559917802045398794693221857747136851626276708794360542024145940503064065462762076712019935259821678822931872769428090416434054204818233538506179914937692326776913569570453885223753368867564561842296973245991663611580313801841938502904156728186853502319348826286084106274974915805090580708043295551097684820402235146751407831406690877846929942395693826952170196680204125087645858094294095532293352300622610110632613375340690002591072604383075627680617544072444865929110250336520735847986474095104316220296833187105613074806019723514757091124852657300533240916911101437541793410787555138436439023981835392598590049248945876420082575119840742232242315066771408023395577146564157046728245052719270129843789152714722513414462020550360995714096643022914888110903380184731341261945985598912821669652589705556251040643140564252390511506222117463034560430515237202904896172915090215788074612528309519513350147711760583809694575958947045868926250777814172180162865947914316287323834926828394728192214283355205191816465616074877993695392653015773028672159922520071824285605850894105454925945714083863506807031736403581128452141252374845801063397145920576782241660183861635282187847587773726058733405488536426686359008262258637787582693219188855353432281533368573999756539818567969424407109257038155444733931033634064797749142141558407225414983441713267082461450164821355805898740581581179252284101463160101405465795595030326782868201681535083448489185327385881057019859177807766635125852521966951701895410715595187993438256702732962113700297296455094038858911447964684481972835701102049734949735632730043321550804719349395225576093950547384623002159238898212055906715609088370786967239952298764582820581429140756178218547792113642043554021431037230575719632513517464104951055836171939266012453350667432917568597047003832275372403958231453701172799386673985649057699528173517446466261970620265760034290299554324909940016172133516544729771193364672888277842412001307100068509605782068768048693854008240851015307095757980300336138036505430898395466075291620544447983060061836131131947092827657579539086076158125510668222412385721454685300192429474558415901857809256665374954386664917284455926492212261008988877152604488772633280886298070355239388268125474945840994593727145330864080028934929034694031592593934220623061192867014926509149817086620694190311326685024631858009897291899597621124651937176701560001287580193664620645708890945645570399056903002379512839371284052016780428763017786746545349130456991747201808685764255490480424631189161612557046628395725627403864064417914482485732229422354181948354561180714357668961934604618579585650594296925968676621184722986182683807862685906258188834236588198617068044825289633231404060744608624055431895938741336612184196109182377848615677238897788752895737455678889545143099410288463617565839540839937600834941871648656946730028186352988385752712676059070351300789069609070659115048154086123458528727162597143759341157460879427881244249015818432227370109596770063305911137896970611247339343274207449663403335914792089617749701100537470281506029571625211255767072392799214538156836359608745283043657206286475723977987703705576972710986105141028807874124606269999391674759636818029987594596035265362836620093074451041665885593227207278019199358506431559038815975695214551544007692731616150608977135838346719244405515081075422006509094323955441409495833796841556294017125240619718618774506634138740954593366858494446445292083651212829891798116296136846004782728164366198564941273661947784420502113395661438027477420338808293458679718045441014218681163646882915850676685448511855329949944975895265828760282245608749713868535457516628968192729209170057021892452014210352690079807188533074066216674127186183408307659390298574856119238333118068025376673369792726692241528746115557906339686861941171361461926041695624956669127717156074811224340922736899014755876040865926006581633555638868488617108123816255654066202428234489748579345824791641195580171519974535305353071150903682095822715027217305189118437904577760036625256204045759868641839908759482047972746277821999566616499116054295918428462271541585190612746905202916438103088045899170349931251078845476848821121387363449911872813997921014411583382482805218231924293512559055038820378750152395985746290054842700135870315860571516768458138685271664735987747434320670484454723699612063318104038242243177002216390721136918756995589262005055218583919017136939895513271656634308494653976259520138111455563517252846146008047879913324596258026501559681785829471024928816780465171483518204866745626820829982187954267827545360836265595402842863608688551806199956828640804110427854299719710008186827345782894818782116962234124933482483516848723542941577808983869693865077363375146767388938852334352647055000843422607854430861913695165285131538784002432581116198311398653392047467562878004438578014133622719761475945427701312493280591146100679644998021114506062215444565197892775466420103844435018923605739693708562827575256602832213450122406216129312864127443533426304082958137248330499289993852485887351179176102153875679010021225602379553261441571968193619233411835867905629984311743988097439451180260173312604966952814848725865732778468728010460861326566201945740457759946000028068170942770259506083128239174388252102265291648395934566038912790766673850993656376018276586427129524878921166565033026130598262706534385002975029653976899085867741648706968700668376051145454616676018409568779074890432363719676469303293338066655184151164718238867415240792829173810103277338160609386495768622524669961897767496557750056367223005340074761277672898352062595115118619382355613734259852161864946546682299895099890709736953447534814307993461326142088528130632389333992250523634001779796001133494660689974630202147480611542172953639240282319374165840511404014708061694016079544548930909460376336951601263426702746996013803175712750781238590118865809412852192988105715203584107685320573251691684281145157079533279481721259302363197646488057319697215852027226730859646095138997067302407492067646896241986539093050064158003920417690940020516115471407899613687616785712858855207410341543894563262016962662893544669252404671576982907358396353048112155363237885333396244275633232755301692261941185094054989188383225199156692627731088248846066780092912750153367385612348929768316900925709640114518207353542762035137383027786193784852768332289364864976015347042330391156489371863153934550864580695080463260505876141958155394168540845272963470465059657772683765625623149328433250363375714527535438993767599251726275577791717442205891740934082258537112969524411041643997501973419337753088679341546386549813521515844922087525948434208128014058149816588606536011180466320694428359713083679040887295585767074498181439142169166690743600374875092854530911268568242491374173036222659359479793682488766910661005624231648089287518240302239187764475354216615992869123118566212431057023463950375191422542650077789831262182985765833114606244492936409803585358660441469655486693952305753656282487461753626193981512896552402320016577463724496272239041496740426948615947866277215089466579779913381532601395323532311226417301945870231635898716967599718995582966994266791711601672442917734939676769131298575436307302086790987772419059960613109565462290315979981376414262282727606246446176240939630501054698312152825616347591271486653535247444708529586424552679683631917407633579402124105480293496626131406708403491200536848407877650021699870420611119520392751444999710486442496513626316112777778397704517418496994895175761854999942414597774009836236042113511408005308831010912104039838467405368794390524845852527943755256411457670593881913473059768466128606293101020824921516322011537957871080405612138318553436757534184912734638099797690564695478171675847256144193416850924797185897879351479036331546912786232752918455137816474101598952033800683911157467174284371806255100339489493205141750703397437997292696717422293274888074598355458675712025926076061247343303042409820372289702605912495263973171344695181303949242808168691029031397355622890931307554456809541976986142383771566788936358458790078767471239679006040197619136690015411959127104054003888083191503985221237981611419384473819017067291916316100492268765951272890157788450394172796253618111419229440698267746110911488252432820343709569908360115501461286142304628839437583259215047280176010116034449917806644866253224871933038432834523602081204666243677061792580836377024078396312488589148064657703540495635416552942082018467327523347154611900854577832089714245040522257241794206844877143333802095955490706749132256616239231611024254497607145625341489263404766332167804083051669358554002995701146521726159318661750433888769683848122534397924293797854173927869052113801413285835092275172940457133397581668391018178481059004552984624197845280964687195691877371593654215650469465793997899000883131536869737053406351647549858536569949813131565992953083285771173600659042123291056069137464593605948998667096476999888574809287796117824981305249613788041370513057004897728964341831502136204851950160920764224102470081303100646901224859327974717717233508871911825080309939354371646472933243226444101695829998878215953958646355149329770572670011471592767679970926340953849365203822745930891602434369449063702287133454331382892275095765205281399105807603096852721371763707716018188595069124253564723663867996950751512260380777270600891173383146489718268615930083887491548924077065581704116176016376232937591136397646170140850206467257691918078860902235314720933211392525668369408869013910714889786153045439369483268061359996690294931731723734903185300183750089179072701896360645896934639977228007833802198289743651180652471782385078149660182720381540482226894966831410905576818908730935657168057020733744595658485977264540213174048524933221186878511184954275180388285449141734253588204985486926157650679645916617310162133614965804664963063379732099128837970831487108986333473683113708751625345059290171461525623210826077682256539282440191025054705201021176932156831299015385749653451801708123449265180807035385553916424936370026793075513542999796644275796208892208047330499274487994795138996971962446954476052576074354765783868605459614036114294763460709055175223816847834127442305276138507959965918885828763446250000662347469446349150089775605209212761445893112988822394081912234243698351048311305025626490312356778882253870504407289222130148484494071917319259975997079759337309894794188613187530259280585817412602970721120640166600518148784680475267275003016806336327213037528900971256803642375988813277752334843904042889215583404792529861600211543491213264010353875165494851014571111321725193569789263300325172696554043294112800224204549863127583367224009902602497709200402503960539427450923823411994102336833050210684359604529427886065118374684052507084756763471726950022757168445017578179374588144100726281376526107821379986025639855788523560232913897547020661711796008545019099997602489536167228959185546816053609555145052794044865967066331204364252016234572722806111139954939335198289153009042800381300539584778479037193030990514399751162489931339084810960571417763605094563560013110137519016909325771285961760873476816766780003069092864310641792252636182604451146277594601533597593997736151603814360345703844119645104691563045228718022661811292719799334064855872201190041006025521925386430333879842294906304044373661604201130914245251168599751855812934505685980490686769702683578622153822076086225494943630308620712872584334363556304841482290404285408829078455806713769617187662039536261593732465708626107462303013300701415389986344008192856882846320809073260204087096178074728988776926954267258994099175294030895395115905399766354372930042762660624326411108448125101511558970359096649383657661233715319935326999975907108489231774729703273531053385445452067702261573936588501526201455391457929862871051969655183576799005911798865133542376412532929768697018387013654156049885185189509680064475252355998591927618871640635349201663948705210186659399335335714927662033113298547962686018161751593928160920876650415315507589770076964603172555876726615220176167350881548965041141220007252448604759973478594425080053517565685496048852545750233545540623884768968853344517129823204958439282165561465482577982326137232062172764022283768019563854210608694071199023339813693850150900196451121386612405530571940727506280971943924564512686490778879933223535904765325804934371404604420423639073630696249776077582802958591996348610921704396632335418901138359807380317279824620459172909047906267004648228927621139732911979867533041580285804537220121373140485881395417613038738597789412670847377839189254900268084444322776320833893756863649872554288413002404226751110256803644899977938131604137225280976539372853995298566239253356817359984652301933304975609731533673566477014215533427071802208776651788057019735965113976486844808244723301868466091049330011251049150054039265525934573085501017980635511391638863478552921136500873689580598117427277386967709166497257430570837428261588889856237774770450583553931074825582481255080637688293266829372930744264847627409466758125629289274627560507868239164713061117243406654516963753076785896707576034863180847568042149407159563039107829874072185902895981380906164636407843952964259610434661207379575831231283448295849999123047849679721757095504479853255868479400500619501658973743024384437147451383840263436867039304348439525954321566605355780476954308339941808775578777824411239054073656338697875574613595592808828866760368938136363313859740669540076753805187334526504130390785188324617294832681223523944215084282330276513601238918087919184163328210913998952372532982684013586568191437524618248125179938874060234713374158193390556927957472149440571455564808744119941338594423261971109872586419793190773362717986732043105201374589455937970902089938554517860126052667475211817531730132857921162526047685189857273754894535446495164966439901870421283098359549521523651853216855305711220570339123239511190048042974655127408029907994170366356073867619144218892172129773941583978754991653075212294019314601452216071385677384800941599655000694042666573810223452999165131162121616328393449963731047340061426467002405679532105110182051192527259558095547606315143220047424111965568373020780185616159235979526685197054771174910198644136975234864494974149706677159565260832661759023212931648534083548457150615420945085992345094896874628365699759848849418080721078308703097848203555188310454748049399439769731753303006230395140543995097691537297718065772358917258848041820130458429980898806665715482882550493745873688035639307974843588212534467993654066866027073888428789845777197459291742086700130503386023330061122546351836849991905189453601394520449644968373496153880160453057118617532178874508216533922751645716272358815356984204492293984318425836748251894361835397232331890253142720758853031430488449415579593122434788204259991668087339585399439222685583075431725082483403286827834719702215223780634596648122623007919265725060179109469848255710394028685797356768778470752328279894509314145819475593317118493466905501266764470095363388307014059896235914447553614107035808056827139167623890034492027074401649573444507408117221160205379371024494777609525940340363563287170617436655208958857566923587943349637867748296185591003566192926305853126109770380487424991516400965957697862909248983647612253309217525126988619536977463837037068110902287166480594355936073756445379926686985862968583323858073925054879156068239074052293359363810613342197829097067874239666623373629231647468623303486900606043100347971772865271269763071312935378315303913165505491266070059424909179977512879488442085562757538306201320514489230517512273345749864075736709824887456745407559616139860346339574753986773423486384847833203118452290735900841779248156091208933631104349233659415075994595437867006395607262125736600439733221327446781399456615762390676196179063131510276478869542542353662933772624110957962532161615919865191676431869847715956889067107722435259612152798015225976512697850596073487680414151251846965616927762486863364492609629466329320081982349826366873183571800714059518043581053599219942754276371874016738541023707479664317110458644775052437769825326880067138507993067346417206456897794995103161947329527496904894881271181742888653703106779914651060644591527758608777398434116511085282139898837102455081375844510274914578029411635761738455586165105246634633674434101142581334838826362336041435285771007905122170954577200265578339629992991308888274468958558888132443291135871687648014365288149084496534054261689102387190952099593186681212624228599790364422048145413802195351430350046104331714004981744157228754843403981367949412748861572920600588253301371558420583531294415212447608204797371173902525032582878734473683887415633578720467995155054531529830154084523700427801311816375407635978903255377175256094457924519010982927778800817911810020784114494281458204240329602048613250355340038963300411364809998237646575120991748721572862153809887582243401720332781227651544620017095131306942486418867843106856881843807364558129943717300721638453210173162796664222914149388114835401731915822561508505759940937726047104530618807735647967749432336464461236973602688553032665811421151275328723633672233795753607658893670512195596915107106105328528897683778293046239037262625806700109064207214260622336204935929628127124612096779417154331865451086768536627461494307111138178810291294633884934361049377212846559171323482618026216524375557517341563079724127092344145423161194559599055589467340985500571005695937272784168402261914495728310398713259492437414403094806738992951304373626593121721377941056866742830787740799852717165324390542551618762935616964316608220490800715115936090739150810995863580584167286935402013915324368847327674375449509758281575753742232242460655278494347619197555405757256513352197015682843095830152123533361506962979617648426739836232652589754315099633305215439275020529961982346755931991915223554526586728008341007885711199717148337329767279853754752659128031319899110830973841489908281817042711602966810835199993680949258923933038314275792190593152640872807984809620461364961609159529792457802713732935616414709688681369392976843466444362947263944104460439657866324599192722636804308242131336524394690754999094084683915108011150284679729441871405136728998628372802791453171646905167841286827800662268516327482637357680392702359235510338487378048232981682026816354022332438126272383146825590067599535983979327268716911904258293582519882383957735215196608094607971642159506803263417629791735153024207663422187274801507936031859150297212730325259121643798736716043651785307884650029678327960141044164485920826420833870176167018331970432128457802720420519337101121073874402314972478357939844035026448493717517564406845185616514249651946908140769845255484571205787141072838613982546142547531283576072337262386383629138263396799292542391259430164671796535170580288259608162760910713752341454561315304355820606451451065369506168499572465234503996610922333047707538326889475164547540964395379906357853421591596888571579362415377227989078150909140670947775054349664026813833166473569369844837162122942727394805547602936349275376882643722046491712673406932437521711613298483986607996562426560968052769448764190867045346154937581433476285999144970427933844540386728737836244676817863627079613521534744029030645344275129238865697977236863785816612139603266481152410580544726425523712645760863872546279659999961087711113276825874277709205219516478193254632267085436714577065797920244312195259531184410397942415435630367015708768404959507039023586170337618937598422073512250673959037880055987888163729765317471561874510370213397421998260076525913272409712073257889850194408390081756420195525338758884730978870800679575322422851653102047672884873730393485599236262360891753148614903202835233061428642548356597986394265849896011241922163030422237866786219684230036571079294858696001289443564182607124035524816467414159548837284861756114690020609037920969240244791296086063141522672175009875933705940609157924243297453027506932064975882007085671959688812522552836962288621992762968155440306422251987870470644255324926480981351874492582890760646207701330417963625589118073621089256795394580359750797275230211118874561565265744553436910307394933548725102775054228937436005321479334723221116039618683954461070787201059305145490040736788270459535911196535306651928818479536644709890677915929812375445615731268790074929560790784709376428250642342477346600656617317658521045712842619943687298434080795239725560559801272459429549605118108442055023635275896297127045575252457352526200345566274599037958406355929490001853077838518897878171295970247074487720886291684608019640776210105120324599540453022576863343651501774957244080585270189163366978398548278447988022983777579848166383819907692706377671662280780736123572363697961868533420310134450331076871719785522840588983239902317104110533276575010411431537253006746064220462607788957607979135031673328983554755961634325899956300230668131689105339071103536733910446724409620485136572946200741238354120453215712885575662462649045164356058162129395247993233114247969908531125338098851275355770183607071242348821648710284755189005670180500995514915926593570952072210590939192016102934537867627269312484608366776045368032477513751738837929159246886352639622285310754552073668961555342988663437597303043867524384799174647672229395561084527328387270197134693352867706269247269668323738518457631389572252738826733431417741341000284922543142459994061823408605303796641855525840159124649725403909543232042888542531808277197687329885466479118749139453571763260915236178768059728915912719915691756481675192712082214029828835467322234413904003329338366674078706018312380183124764188071075085735397920127029706760022797458469173743581524086180350472300778302270111160409930164851406075050593577690139629224395780828849084598129733514507231160784968858372962407044459682949702969370014074406469909979560396117042888247925578139141999955131957518608732703056290720914468866641030053188956032406369866700092792979569662782812612218456935897355366132959494979320235310168266640833379009409034620517481655401443847059996518272665394497443825095606204398139208949756795254586776996523950882631526661762877228560240328248232564934070415354438299603504752909616979437235679208059447382156002404967617778366335965311759940211037458829576043136419720981858870905387244757062630621280306942164914967298921888596952987211100971781232184045326459021398891601567319274483762583533450510630993092698612601319088793994809392553194410323934258347338176680556332718691319952864929754029235596594127760893114803703908937707536799554093908162300427693996451193502890130426099702697146788116993403780708852398261906303267011510366591077406826774825292247687905723295476863711484121355314814751632224266184688855964499923616401740953078278041288547827110031364617654483511412101286388074937233248387613809826779893619315617172280338423256302084892084383679421741577335346753330079718983119413698348159078401979393981457263843788161875458607400841891919442449070308562548526688747425211248930695993370241976465863760953744874191727450154492444120342762905648861480081824152517212345261044760183618143422415917956421992973587491360082982895915409749104838894372014307797690348141874511846670678457472965061737710625756053613839318840414857709998523087948324559785876693195347774222652725063430872445511491348710158247725528057918823836918116656111296591055317048564375256540867601942479055818656238269289201716507311387865491726686635385565351653706285599768820804881985696143085447934077568768179492769180970050799122246850493078276329470257154395167447394298509098963070056453698698622777963281600409878031748228109460132357048777616783721357517592777115992312548235349438778621365665075517857425196806496707377045789386774522338962988828840501824701399107791849241990937143392119821123097571316433039656324620199627067423593732871506613152805842046815859815414514308883275894815355285350357968278477834697684488330172275348249660612551751739939552556374796093562348955477931746970023942067454124474776008471832584101050004332042164171489798756014315023441195368612526298332212120629066017921107978804309355215373358700189653481174750065751127736240297937500553450272622206823856611597366440659133510765793299562672179984901063076714781058512694600216638528334332037407769785070205267663258869952615049862599925159868828490883127855006291172277745434362011296280743948782346700457473145315660553387945198295758005065258516660025783168271993576305888539132015395560588091380057389622445837758452552314595990117185081965677771560284659436925984597740740204842213183171738554774038165169993527340048447918706549505295581009639902885704344942145969500605698493682011610048163081467569463884776409921672714378055762914748525185140393151951673638092796044962243558500051096243413333595756780973463313272678536005416887931429344263234870083916286776957737674635736589219631359477446435825498077897008331601638574561391013644850637938295014598429103369125616223070019241472873319253513349048625322281686356227357768172030794160923985482528428417095067776732884030672677305423627079119789700917342018268921442037030575455180956431627492587522873727017526490516277809826354899972588849683814993213269351228813106500015479499897673629108321927935133912952366748251663946798352810780280481598745739704086927679343623886355669306306260835789316580339638334172606430467323820611848402191830044095460001996282923673952097705651050062178116882016533747091930856915683531731054773735077631721032899579774175789170487215385158770404220562664643471859815457200174922534247858883336833109805946973082176290399289510966993227040970934763309484893680935375594297429023316556582682613996285137879709869850880938089662547580494128308790875861014238391114310869236000098311817875111164995122664261644433150429362709839878581307014125077336672805185345501505888582138219312009623194630965555955387297449007655755802566636662945889983568185888267715909505464146295738381533455427187050601772870366411550165546027453937269496448568072584182323616252175597841206002680372961485402085820815077718118658113172960037018817989680931627648962309200480585198885034662867167108318560148453343115272485372890489059640968883023535232671666509742546342490769834597779057671189404887248457629689540302499258198770376939381603458733957890836941211277972050142974409804637455860458466580751827440744625051098531980616249520718045523194609185239161208287454891632578768435216588757199545127632156521466669069868423450198129764238321184361627148029643407591649550388127921616020703848990903600820540408196495306286492940423477946796558085609868913441709160110467392262464242803400185201626846584744777831099176836748365122130971147786078728332373178890345581624713369130769826220588285979724967731824551416798376822231130947585846982982417228914075511325552504994655285753203712698890424269218266380138047545998432976872548499238066736540896129936563874852715465701819960250379661594993989040684544173859506415731975799275440894851564559192845237197180748089197043664227842519667638279491768569803751502805931892411986080173943573530840620458471747676943764106024282612432778029579548044047939357333994922855333539175217751632944933454802486641277508491599553929835196635767316264576754999263318086033103614300392320381618369765078968656420643202481811766235198435525385920828183353177325722629842125224979592752680496944277307229318518462430760230357536458367774245311071656684354695026507823603441468372103189662013541274039280198810585166709808010916249389591373958310261942523201772987955160302676825966661873112041930792703465139881086978700663310674050792808151328075740207713354519493509782572667130077569516295212529772696253898492935572437838198282510534764644933383335374456313003880800871884916736326384925260719482565132074484802891279320822191243236695939172381222937215704661085736335720286681138017853873263744942799179303056549710609738773502824733534704598129640289526622034236713183300570111861482094468628354978987112289634265557653698314740403298161962145242575644928388285945361171185023256457309572842954662853065167161878818111812860815573952301631146887386838455080698642516514663740886791245419475521169695412642697235016627866947262152840282603460173327963772782872247349305934928618201926949653828926332011785711354106919148053983618327142432225040375897109783108556671113284653555799526469728872255551195516749065801709347746763545693144176274042793571026037817403312963194425807283811254961759663200675282679909300219716286566933786939561031579505761631478710386587381443685537008124366765377341063501038257109638911372286161010470843588531817881855003127641453710070494383326379145836411255566229383095851333203910892948869127132705577746928551347819119154668461434173727325686206279769990839984826192828143560692992999902886861483641847164891069094037559678109743476552152066176566807195851612307547927350582439961764059566301612169757085497477206790391639050624348623021121050215865854687534099770253939349463797520965193761302337889682562244413154697482104393882641774510677506981920681868944738309310840350883466539302539495058542838048561706082394357136223749223061914730931019408125559169857016853249506292488153038799469351498170142605303641988085889273127867327086684336385133378863882428224419218453014545412327262766584570199414603322479459322564820654905841025261028517902274198630155926723530266888180772415961868614687882855213622621037180993042411080087477351329370870355692388867011413709687764913654658183316595603325009602714727755781657192673785764189423632828872403156915752254720486779039485342044498490023518721715149877915825080382547543103944472594045636123984488018991334154485103024991088960609006881012126965981481658020682878421717219304656574477918817804072535541313371205787824136362833394146478035540063397753465156138026517206926575668699712256427128146188224624776802673293238054284715093863956895765715112212086766547790317305136653266753632952396219294845738530886318998793785161716852655253367294521114096531170963066129661707031773807345765247405726524731394477676542968270837955198714494595161927981212529471256304924599889695289248582156967748517685177207350404574791503217665365999699620810977136822570611463477645372330754382841815301503466942396017256430621695707529481384421216963868551218843113070214584909547144649774643119474069536773088263556994652314263643102102046239865539360409618460195964497196197060052436638525036065505443742709695053866773956173457293627792692803670493001014409068408243453580440638626002264528669317220301752974673591196876872426407158395295879959612462256923817198840388489189539253494445881173166947979059827445766634043314997429168917552896999157785849908450774538107113583215741493191803440212911558035686963017806927891466290900058987815170307855300470077554801137480680511361095041312316921566627008769976248519879334538288837968144878118713807603459321811207581179847554823698198547847875802470433279790697217260443155926402658244781394311578972549075899922413570422238990340147999372985758339347639076306373859869204733326827636062262807668210906595006512505619563329357200881538222514114235810539904729199542502501180629282434449986257956803023854192767869298591320973041994595194863330305917000652785603105048873984062224116429705763406975476142352508570234746421237568919489355098771630678267003185608773095896621124166599304354780814627187147171991982256329113804208346636921110245779457465672518076199741695297289662126602134247516333662648035588962286316024084960168448056537724776594262175685696708932700544488441604716261283692713834283974534385334978122893187825322217361983566673930873292881107473544442861708639115419423698598338505580008885300405261063912563578298943716165223980256375808293480070846373805151462238187987590437059271777924528990616985276526826994597049276855414274574374182890944582513215687336279454745469231901544837915379052116853055111960492940697119078448157566507552889988238221147618400948946296700561789378935384487106616043158900605451008151209893227649727889730970804918627640869508814095310370822697327520331363035713447977410040881152720039330426947322939942333562814974147552022365794611902583814896987449400994540203751528171028121543248041923229013043988529349371127387207772440869308975060907080775590033786892839328064182148720736123511774551878519125750008612717250666001376923877895617895475035126137987988231398821662598379930117817332956205197575744186563557267737749913715219185178721155176286387374008401784166511660893326212151449445468440141903417502023818338549357528793904343824496701935223646560676879677240905052804153871236801550113467410669494943133557589890882297574626478994423026835878552458962506172823563802534453139832139285131586643649829160757402365297943196351377375246688742403889429061190599854107221343255926251898661485047021683532153098348975916063506066077116930478860418544516797349752613886414615319041600699085385048535801168644925818867491307422248639909086284968503092241455241208642390367472651214771467683485492491229675043906483289359140868434058420573352859822982554300505411260012377541641537987411253276911058378071530200267891198741410517424882106886837944420549624425896501896730588431606628116244258874330791283973546995815255448995735388603612255933134799662483236916139724912856998449966207633009115010834830016045986643076883516734212941962161432242387741404077793412710011359905658815222955489929532765707762791822405732175017880837323840825443298192268105162268773677044465031683448440263218334023118684128693508784653982572454154544851363124385542224442559493013813734977441881317006163184807773604461615676445105419980397633695092193400464812276806942243679390627098765961185454009508237363471453031465920980256362073008592430821156990819045496108953040993306249981665587078861301375214180825909628517558926274805992069289574034396788126106553179147335891498375858985089745831019854837878703408939824298295127695847058878900620238752231323199217506069709064588897897358131630958469584838459276488076581802201159171470432905628376607598878303390445371227514403464079644239886117110459404326469189593119845833987136300735158868971391713796607688413046035463522543873674736804056338089620593910296619648648128321592423252452593516618392381961596401557793467647822058041023997975134608977404809413030355730323034410405928517141903199524358942459716942086353284418870643304304934031817771064179412339503587900637472778795076614905916328888515091014178975195854458391017950988265913129006904797395179044250247441240979388726915087887943398414065059046188217058770538215692342931354395159297591457415327446991013265995005966891956596731275806057058597280158930485990204814772697288323336971987706254965974036773812626004838408975334283717129902181384915776716720848068771962267748287826949465457674543405304253546971331909587498540343969391092687509054154596388546799071745157137666312414820104616211495044311997623878748844516342745840142932880645469986453663283428392947314583017776684757662295834764565432410124403276417815615990767613477715888120317244292118606242031063160565793743741137282553830689384475435655868544983903920733027374797196573916714882048816824237893099411422403556153690452839405307322376613598207128961713932007301366539088989363130791176206862740395637697785266990871948744161660346475124943379718513602726097959464746550517228948169895107897614209091051937359182414451249246964378341589555193165465304116979267119812838500165506705185013554307540753117414244085702955363189527556390763136966358125675634084262523257078716299091800936025461670575657782881038394752751350723071241333934876997311302688910402653419173446363525974137291672077229524176092546762312765129591439700417854567505172166676268401400902603622971842309579700522382452699382921648899988500457217074510758471318870180573958784919343647043696618221728289647143028002029865571525844354457085558792646521056865828503867059735900492090831006681719798216964815561771591286115361422807202868900894765941314081989460513903013681268618366811661252326529170903908752698504519058752191824640472409881244875285003421969552699126947561789552239222106332387902354958918333239454647985650816162095988321465284383732064428666674797420989183847240951699444608802570261195540303463224615385459500204069322226943935855757090150433028314548435965928631877770436940266671113449522063035209679051433298047622512732209646688738271561035860298874495308595257891639609922978130441199328966830918525953048845871548800391499419430287168722168316327072442612416649796117243905913225846535597402458646863926818953163153977340107609438171459991898461772650519252358575112121798705186786535716136045856205564373180300658308918639201870070890784374972269326099169174933042057665882518714202707470819943136540271030477538201986482561995378726416333707423983688345374455025698330892068232581909129939050469529023023130416249616888264531793539986604398303933224765550685014677688580265716703683132449459561657259015396009203037043746617038696363783466571967876951861617159770984918211943611724154255787431829432831173703765862042696946607945053394713834274847842602801428230499744411458239117165941173313821788351453830919720573766205486737602875230028329844869561492182877124178599007185438096796569200142824280212609441137607901706958368016691453518366087987863903505722995557793014565890888310991960497491811846317464439174230520608969678560779215640905901570180206016478322266271989155305904087239711438806693966797279373515404453176292784977331393631919489356676113995613159352531692322625737159590768368945033060990870664951473963683500693214149972409986593362971116540294331886215090423927104666334686994149071483889377499406005431733175427537903597257053865068524440584400365525784386823415046244659068587000508320753601193066992043975003654678536243382027445348041416806039255490722209580494696003367982617905835309319973313225854177553927403738359705397262444003637532864003906436775088231901503344211464863888461491532475000845364314777919288882097942720344143054164291004305083819091261246175443624793157789736662063380980202235549998805684822739186048027977295892652931584326077732806882879728722746648738238143870569616786176588435909555945082074112237326167266046114448576404619819121533803640997797883794036043919681766921584996668066386433736134201300990760733735845113117241240035214736141691050537511908896488912318950470812627274388149471192475621393441547672648738920589988974055342524557522452498209783663689466544923696466742282123804911045865420503797343179447201624005337387629057548461541509368374798139010247267071834267846180347110830270317815653254020787775604284115546827452685236778053914867698426268796396254089244286753105188590806022026544151532286452375267198087573341755255038755626287084372170232998161784131343338818589079157821666536443837400340022731639020565705463702345940007153854205671183575037697636099198672432372889631075077214059269251987734164747889650105105340782086199530164056452128768493120925570604642090789707389348811112013607580735127225728733625476835673077049847379072782454519823537976699716467429480145087339355687811729923366744623169556330264312961851388864428347725169279393108167361986095351267216705908032838471414158714082183601307826112083367111017001439215616719475591512872644916759329534738603221740727520779270105663843215003092748002981268044730070679966895626310160196264397359892033457072607457610590261900280086621276572894733252408693745512132623046061606779374971176455391683904054227499828725985241771975212058779437274197538825020895503341529984682807030755929858519319895722172074727158589904328221165108746355477697232378848110491733862272944096787212156912391311453749394882559085637813144415070578230645611622703069330509674862673536073357915461601704601785022349802313697034859958713238310683737641727252003313516953284390196031150715522608717562513012520760514106996269917730155177752481567857791755424805057255037747534306912476132376994376126201812308297361339418090694215262037914198365154847229334258209474879631292142221798754355059807168196146688363364467931165918750122611181140987418379438358444740355615870466513584880518749631319261423855480761990540735289002219844213182379699931549855510326997391297296793437799285913302155785868499958590466109735286658667590248167963877029845507005825231754792680310463484425981800270243128119057198284739911247273969209334871399255663331441619853926532975875764616592519791873032022371321555816622026350553179139814755221329326886351136633364376453738992251107166534551034126608715737813923978661204726528119527850988583187089122030675989064171680084625397060172270939813391276862760815763100639865289250071954322994168347368914741025282405375592406289459249454861590320621758037285013781589360683306998452361330292202835384905992676294775389416293543843335304007507303349512077873491054255051001480400652575774312896594484984392340430949602954780840256191134582228353583199946468243727154189757516924332215914387200700717920492619635263781813970678083468160992059867433553048531030939353184165945653803016410089659753447664568799677735506686485579725619530342132051496523119461444156235463637936688179094549991469534442994409651386771877016323381009240058482656762570194980455296380982808118110539989705784022618989762197633664680709811843305691646613705495835444944783673078796570384446923021157833315647806042185295996142127302593916894445201741911489224149048041243701261442116894462415954291944753468585631468124927004317804072068049630016607355408507319504254783163420424463285787207422499432963773621587757798699086714420985187580816611519784541822579359189330540148353674928915094447690641711355683474153628450152926657260022198967423310450099400575010421799241634337764053644035568645451611876515693929656789598799345125459458303409922655966767021115939247205406506609653022685051582413425758983082452854031151044547266775248805565526661495538935943335298971438363243620490063603938040044111697815291479950918922092825276083139676877521365698594187825393439749595479920723472599202461085036092780839142532106484940427507451143291639182509544269170264088395132234136604109709305668309198333997356319852273925785553324402034779432334520255654831040198601901363018677727296523105997209066164881422933271052805788410889022969156221200506978871502030812113284536247998928652958260944602027625304667926356789324380193692393222747656775438998076157800891726130483402669082157859349076950154644998495771043735348536442950710369051150451058247024557206510792662334722452349695516884663253071500585811452678518261929320201036147061514234413850357971253101887439908688751054669638274680797800283251796382615429476906621664027092633863490128413567166341223948621436699891125364858255782675648831343982891569746308691312703967299224782846683361723003306075098358863667514560181846669751507124314116443876346270107126110412189100146148320210097040171189324301197035545684553489335964327627602669135494419179192665106271728021186578902367181726277894790985261168258819427540407681511980666514538254144306973712817869064704663629685103286459278393167892715891467882087925500140083767696167477013080704204836454165242792333594856953913445878614759142570052199895356658714887949556474771026761162042991874599736612514082881796278029407808857461170895948580262025542259753699191237553807722385135640165629644922895322234712502065851105052795080526376416754192852674688734298922570792036166841155574012136319584271489507843932866014412894170164419728251249561567230242604496481437733415201502797634248982680399287111913468291907940958738660475568947579182083737956587352235749364192494736116383619887611491892298753150643339088303049878529202476250271110868087162455604276155867297129410773139137745450452330869728482871346017068953230119194563485244642203860291572920482051145615535317498019041532720398660983221990021053163461350069503525074109475844811894227569432879453358812421496990198993832812662003575258345692527780790260356763117127991245825752291478267422254186509031863223058067760113264154916041734698761444285533257190145451984891124156857298868385239990712849559751940459379237014745703206788068043543714171699113942623085074860136622074019892305598524198956516146435388993515887120127061722103707741377988313397570440704304248077240500837662140740907266957535095310044932551215475350812506950258367256792453148538053498683286388984842123255952980763667437725416016333833411467081261123920112574038388104680112894863783106411188031207899791259771043861318964283351729465159476836856245228676296336370731404704934592777750827435391834738445016554921554300216182810089019566510282392855524459164174292787779932320217672929891655934564834389385620517263890652962450224362861187304971233023624287001760191489596878144411259939695456313309160352821980919003503436645784118237331943790778537830115752030378364160214813408721452540211014371816011042012367273897303470368255379073328758964236764667843997017754312307600308707347616606710370414545706227826119024003077533754354196391638113938568537494583263781066801763437015883292790039637933149598279854580527296195040272615318121449527911568994357836998375021517942228074644033659188007092613953725468269229038367238315993166415270872867078898346199494447390145894194180609828077971595112046807169359654154709608466876876686706381180200590018300574359075573457962617611874424600528437689207793147709103719138895695604290445000275490928038935801555143430050567555030923129221967966284423547616789289314574940710119520673027196602587261138449433527642412226822608879365039312958707191738202260253552828970819101527350468943080850198333711346435614404202536860459720101534481464093472145020191827369219210592884159231034312738217117881579704665833543311248987891998128195509795244862708487643802698984002933547760446697153561763777923187523046484964931396345315414203382161794403040328399240314751315288317865146078322495565377268003473863613605114686704610736087044546198432413736441100692175806844467028660071568312541873992521688385510950983867321855446960454551418605997695941294299943574085511750075132895859465938278732154482758578728275827287242348420485792722682639710262454902998271362059209646373420267818850573042445821751194294794598994784005805146656922467125477780304343164377112245639564058282124313758674121785003101723745097538244046894339142719933400286887163609936784203274458283741349772731460348107191930842264160900150948434061039582689704668083354726959961138761041666789943918061099450191440148670423203156904965117805251424670597065656217963069585297350374903398722143235664457290107814502924037794702263420384995003841109390584775810966303837784113512743077110926834294017962998481927542484886766556684755057816912280768042377218948456662034362106945029752324014121695296819529906373387657015712629354938129431081542116700097979434099140493061879235425989502802542546088803933560391132456044811805636671209457797721731709700224192755216851225058326027347298580885770562102027964569115181813913856801123510392917179730703752734347630172328094116404584240363047401034189101949530604158651568368667278836584121787260168041648384333242428512430915075168471304381395263525434436702576040085954217281982486084512465635939962012314006193409451879288283869540302801747530468786464861267467340920640393002919908237763772905348750226822354715209304094182142553608134327651567726770950205181505596491656863156969635837181748827427930175723929877661663858216020041458393729979337506292602213461388876441523538746875880781621347389598745605152371073093701661588401759954569909802982101809374977786312830426323058849211628123736943483829772256486153708214017591914041816068392173563591873438901250174788248894104434318244036007184547379613603543287082755631326917906249475272496732925015110989656232645422864749932256160511247895683778695029134310674183912731371871865781370986278588651706826298298366951840248697260630995492847016600484182630891832682477249230694417924606831169693784412646943906324446243438799133688011075928917641650734671850996861968791129812919458525900381973312221573684033201473550641868437004055520411727780982624934655865023911523087845154599566153426969983599379739099260676043285836209460010297069078205319423712645902576196496087292371293186940792795598302696029496531132354817302354527589857484350409159661111925320571596639246033395871383254819544155935998145214763944462422014748250821676429359575567175167170102464570579967618415904713411685680082969698318934568563763493135980147396665322466040698044929156161955113243860572126817810111279455959334544190971427490877180311512086095481185417965818351428085171047905276797360846610748582958099227382489972198214471317937671837250199413303044203379566700973268956331034225428695714566049556055832273976398395621750532484486803088676501095946294003160388202174816106790917322904585301164219818008181791942197106130915097106020972837642219696146144171529588810690937416389375317957192186517873404231732598889387118200627926030305025456216610055684924465351558900092544791278621952039048637149160282367606869231750782549971147488754208487607835468320324257286877321715957307174719369327739407963996816240867690155311870963038166338513582856830390726112184454015183790605597965321113001042057327240722369148151991071200237451888904722817942698049709872960645008152741155460854809951277825065448796168166086572332787191493875044976014581944307054675832531469777047503739625713138180014471284540434711365001949375359836637469918793974064121873377496008922308078884040240319271469083768251343837814565711239593405711157529151378002936204437751049409248209392729514550442129874117782902061313599120461581099776972393953135255781992658365621751647092817052587713120083772151952438595771341557476878516497852576853297373793306310351257069866797266316505995970704783576803321924277387217912483280145793388229853945393561800292336295927776270082540264970691065113450615919095883673658610139566070775699669653048046640437344974146291507163650426727684541926666532111796761481998556775554808274124721340188142699215102365967875423532832701944990064961269185685624981234736263654508667283041522495530377825973472228022420831550378378747164309051362279444923323554276801103923939088164054232092085781867159111385578495497571289533023580978153657133212362628977405729754234146747835871135906917720300870745255884660981205579651273566195138617473300699628140774834296250901064654400765319084695915231622406885226417126918968097061626069768505773577051340238039790326593560362768367473369978163338421084423308537028214596384724670686991189701903199597852199453687373338848672010817016271733528249190481171384097160149942054652036217644888477495901321335581910788516074041797782496344754017704771656911259826840184812592230713387131854913172653222301776549606698657802193871081407689481926683267892561470704361227650210771199179654839656202467932754088634846640430051759326485761090192953165821795247826321472172207823854071804773468367330110761917284023720165157340762781972615744605890819959546676905465518926512350727370397829569369481016784348949941083491492615938126552498149366178139941312733564074783171677364504228176353408884634153319789760996596223373983793557977028413836206006327951904593998347713431974759570267521347971603995622324138210827259755408861739885752183281673366259493083746950595577500783303555281273294869360828364800438111604812571156933315271799332790572244969465337428076704788492709403996763305906465926072840763546299420046400548393227380981621280211159560926644773327815341570788333674970048926823145730511457383102084025083434570959869818105435580415002081395902204753480013119300028144601309042168714412035909225346260355774197233478239529206911304875023281549302920546148895736958941782206200537657368979586717794386582085804612954105113728288990542487012219934425495349242561279688478204451031871076154552487860266898557283741342194988785111818892389419937648312086785161409627428134996506521634838134882051547836960751432089761129466579544232313267255896271430470358234236502430999930236324607711140939545999561183658576554602396538249251588730041467986234863022427736352707908340189293616898130542173061723155322342003138737558827716356556077421223769558255526313053908236992061862183967846583265288206870939604021828322142130750824784144663405508112869344234949243802553486027381421147861051505919926778697640623442730310515032364604865739551112102937966651975145804798479905434736087613303076043238259529121354449239138523189619378319940528961009186488840530220575818963442360734666854965867219217110765891849813329439087611446271341807739448874972064242208998921357476752243004499364026004982719838816078740904460080198532319094939350953068867437470338696168793952001866088306457892291987497240209356058604898947346287028126020605683627445988812979410212611085919637781434229751127110257151985735747967688238257207047766992747596304513468869361586013004200740476174176895835470519437387132737736869358375697250660828324488704952422421195197593066945314926137227500238064280065179850538535570525774233267666016402548957263091397512395121127189940126915062681839542834517261006650822308765178935154263225289750026501734427907444877490354359099791280195407454340019302135945703372762193015823730067634670456084251515412792708532013855623946410448061803988756384813046113402732387781479209566060679574655167218381946333734356654843982052307792773195351393993594778486562495749604923635862880944701034959392977942675592067833616329724873923408117056610770772335879711828504041152309183465362274864798630864183803491319589312086875397715172881115848762026974962310406803378001646440955157078495135703675671345842856317507534856320244695007502060656665626435877545590148177231229571858063608585627440517606751497534038659937884189446454219245355295679983685674568464371301406925033477872543871352503624304077989697926388055223395026131146096642419966675159337176713607092069046699087829416836232870785959664757804968028684335558969840474834137839123124825699546918520344883393871811871139817647588496941896107491712424868539208947658787745318944976256901179698231409789553614915998084565846791049621547028857221029212875388822884701521576949167228529125151225349349243330378889525291634147820079160171583935994406696669382181040933134690601056535392001648019201808802450603407684087190910002585349105495759912473085714717148091822129030647849011857686218366245817845986303837936005150610034402801275967288062378337200352006236224249438555106163479076374265269196518272644934680609591324621640691800758228339128707780652457463708723227126514205794525993740513208169899285588040949829451052679532700371741844430248119931546122997289282774462483128375457565261315972457462082723165706060042696247407086026678450928916508142214624316266848092944333484713029093886407655553431785955760482730463900782353871707403816559343841240446190642756997856867427180563802222721348130558988617578436032691828336156858292698327260649493949133185525113579083980902030801235059845087833541358714235082077575713655222706461071306552116771688605205309656256378752389929528262622578532020872916459086606929004745634193492184088764895417307990572478226944018028472940732611942374306663355871719440035529008038946745395759378278222887667169299236128000099438413617206755435719237493267066535825256168760770513735274797360373415641533190001321830696132553239507794039198612064709550949849488273656826472836802301266853072134651473794749314021152864029145631901429839233526587988828581224178732196407525842926143592629985734732278453708013804206747125642626909915906239589017800626173743742589572452041311151035316063927964343660839933325212314014618186625204839920275707172125196999760724337591140257519235375336716029354765986687886883914052654019715760645043220434259623372055178452528613509807838439818664567114491186915939395603741207846809680635341595509559147199104553176811579155217050937505840354092046512654842544681125885483913666921237705688045302554665266487693755811155095838132504449018940216498636211629699236299021102874038184727177464370921546381941377532753178082495650418859655839565384994309921371296291747584623976307828641447141869512610232628863744775858371729905832878735032985178923421576976990773022687917523369446086280950918301624851175882187536741472521798220193960173755578344145414420473745929263850622029332166504860228614831491368586952282368095646915814364093651798984961172025542780326500436542883297530229090456067544183856340848367821307689894625696810419461803677652285837399687536771556554377014862000996821532303922009922644606740632365366212450804392098879804214914499194572720416519341465234316303539645027728526896157847571354571816607417086644201896281211833134974172694446390990235980856888049038154914845497706563068141030897354482946893571325440360714659635387437021701686738930186540540198379400095715292172614763548265074396645786935738721513237016459879959221065420496215903550339230995945037615693626165715096703632988089784541390105549967505462083131506069642080702330618238106582729508611999230037575907831670242681080891977801718235069287580534109199622310871907375953163928788073061227740370353236238902635716703574568763001836861485271385044950154296336931779751689734156400372897057644645155800536806366117700547629594128059398011237020383955518108619081671093357991700059086278505146355901985614853232170293533660737061850740673132843640880759100888768856819579822340391323749814328545150384517295066355663591140718414369282402422045282316476559028006308193219583349463888750388625641282627869089579376138110349084374346055890594037986544932893087410031661763433515975193273350610359366605193087045918879976833357242401511602981779194872945124211130958372997500159881414072083897633492900736625635134147372062777151338959944855011529680723249552114503338786256792270583333274742841961812231343549991509564156450644145810141262580686331219334857132769801898502388004924509255607558796132483374884306729429876921927965253962487696245177668269285053482038099506774680486347312574636491760409611844307634652022843379230462751160171263188758829749182790253380053022305102679731475612213179176483809615176088152073723001071426295752523611793217497655536616846352114132436786203980457179302675672863915508910585309045640091301095951074907689531259605407180299502091759020133874039723654499782906359787320119432434007679378090480446513657856054836159008940863628423239549761511471662740100832176281591263075108363227696413750120462434472597682090439258295987556107834166878354078899465167108686908303876045806247170321853969564247888373306408894120036081980975573133594168624314941867586095933071050164234224294911964969161495924687376669039074516183600967774195240538769639591766054593433805964211538420673386023754273910111227369671497141988265779223136033252277147015842333858899098373914834365118414618434085245008997143860830487578928004877350989020034691938577809948631261928938059449431604908365261645401565585623584820232226733067035619158469520288500011045897087622738187822287905580399502155858041976036796065709129336765168776427576136906859095308976382472454334737138584382659453511886981097456541588489773152787367521926672428184157454365036649145456393272659349163138132921822053903543003797790096052428085981154316329746771173756115312398137840087074884415102365956492704611417701637142493125041066675882798921409213244043777594548658808026741290810180833366445207952556289205840310182332298054984783949328342896862294188861913330402647250288330970004233264915749120912031401917400811613378696623206905706467000263889940360518481357537348765571337499144645562202665642561135743051265062905374130990963248799346496758067519408776958558775322297724448636752570770190326979621494245269751461377494104988593516794601822774864805389393805367232521009823034635751149009408495980958554304965379171494602433880633826863047780777321417980308198343940944059076021288907977259597642910293987791601170977375773191052826960629880055056172896433621806245704285755878145848886330182666122885424856275417517179729138430762612643875800599503725166377386308667747642846640773739590193120235704433437775435967760792711880898589692394770680311060870402672684614882666602014461214006475191708935379027981096233897417244812524265887915646137358881165483875907068323729506855430697842277886020705968382829513090160398855365739862881027030193694127030194135649084108799603842935733335076128256582725946549931528829577221631722563530890857749652192177203072173057376632361014065016384944658899382897713485046516908555505168988265531899631606814659032237090487723389334992628892720619601814985891333176959725257171493023152179527544398060335846855464321954785057004649775983786985006869482897990674947383825450823002842944436858017040161794819003911130394480974412098402420852104792407635418228590134492740152051242594972976644331163665414930473426743987778015137845196121397504664049411364353198764817201875035751078135945121909452971088735118821635178841904093991172045604382642048338341063941556349356724399333921031738035556983543294593775419083695495834087915961014476584241942153194893127584905824877889441901659735560379111731326037833984047864717361968845772821854763448454238365229999566300563581835006869845059953790708273439977877389774687855100114437595964941781893325836085489650985582203557554987735358898168112679841047214787078937982946718472995881062322598741593081816761007405435029484184156604070752545989230326245261917978239267703389515085081637300620520921149657287797402927716117727425288031494157035204773220282404274771392352608731817205212769629418002005529846184977092989529587920300485842851028227425494861386449745101545706425468935301758077619384488767722019886697599210422084927460601745165591218792391616325058171394612305471026184425200134820492204480168187578250795511233969310320297327124266620146685812698276635947878734206092196429608817181315592726845552064891229407745854785290724214178883270281185159900222297541511634167087807071619455545459138363697855521919657023076403609701663639105159291802812804805265920113120488277111090620709143148489500577577717683192352869852455438304100717546127310045228561229339753933334522202762732895435026665740406548595699689350279575497301934451524502252306583712873571311482559665667727062766526554780796444674228924921991296675904990165997822644928674590795040158271544760910387480120692508969432570751681074219640776093660015275779324249392714710649112994133270327517001729690054743003567429465628908669021792067793704880024472770524619263481650240758378706081274121814773043845416160867360744119829341510892705302174092601362612361177363047215093054364631775388273304517628182005110544638153215304760863762698832912077177616295465555894882552148363464447847031307221839793227577609901345113997214773952899833269191119524085511304513002281426192913298370038523935201671078740062829146793013742429483374407878734627208016598005471640537926096584436711113024167186763867983433982299281783013430303243287917110890433476907941829622274004439380376542182248028103713818498631507653294323268726486293286915780327773575254088240471313525539535322837995581836428811027708072055101381076489840546453857215194744169774686538812901322871924407507939532672038322866753346126703308594672360584294269571591902882933260748990583855446099577616071646760858964525605598959969865108617987609583378164818589699568369446978071054920394848330556769556676433640107935806595101185812240006835137226299891282119029291419078850940433815533044284738357758102677753406724730828359836740285165153005545997119002816687201951025644087674923666237974280006121358010478956445596731823489059914493638631285624982710660271956138765445905656016836042068225536008969692188097930705990476745105471097524965578877347483939244544870358857181769946634723800123162921692137770695336934016509709973916519578430793600414230395014303805343462953658276115842083126034885305271660714434098593963256411295930069536386845671036823273003583650463617443987127842770683279221529239788448422271274811675703882054424316390620716375999200084457356251712138702561399009044576164898074972936664625128529793408765450288805304283162832773395932631346432597065634279554571765931507404212148458097325802371737657508422796419737716069103880155962312149410832687065501534227658758084199752697991171404322625137349402434960414801445917706647061186300194105384044004373651266241384164585514221598387067677717158724436133640854631752094602318226508645011608780141107634267964524391606032149672788680922528472173479085618901610127465089466016737012580681229479469172864932733901708313195521842219269311833119971653845325440253982111055816193856971714113411939425089934363133904396427407381067654132584831150625976748754950250455831741108693988411994856359638049483906994930243352995914529460447762737854651206706436426686563804970896174837216717997447404582973814489031724023740109846697042773298561538145104683974573355224144094277406575937978510198733790589388115945811856356957016447276038533942773000964461272642822537595091493105295125112442032844850749258699035576527968369167900142840912197788275089016197386351826940377402342873148475858865682637525583372036465253378611452600895174864255280276447665791997042819858566475655377498445892937651481423253471048594533342920145460043417068873402755623680392012092792157498099570916011416915978244237358072257960252576200181790152345963359570016114292770357521477084831929602387450250484006181041548224715924072251764407539006836030312450615691412553813619283510935289653132791502903338170664525113931354231632830087661597827459220741255609349881907292620079027414582554425243564120125092916965423182710736608060703279688654934695725498542286524029890536261088977146567441812411481474898917144252608057361855287996138486257379152963818516405721997592405051378795369014367264614175430128416275453337398159111377105693450984565111195394105131957741511995412200919076001918618681043983271578362677990047001329364732756571467646895810340467647956506687059516653675967605585823584754198752409341861323378738187878759907959120845022349187124661702186272163444688051633490969135906211425000039915097427623434895619774662428913026785414868407825581843464023761466237294728788470351394306310286309178643592175408962862801733994309081858284372331619839058548428377017025203981599032874815845255359892542086393627570558675775813347331119715593650677520955162320841353073451233667453480697614554229292138398249018141611233628311976093301526280625872562716709628155162627426697257879302860583023777331979416260253923122098923038639512245831120757236755911537506744999666807393929331359491053978288350883841561301203267808146500943198242116192638121305014248198506313823865739249639164938289852973535775761109537166580355870507175640584458939434048969396550238082184685619809488300041779751272693106075766678744465059163447446100112772162859041744748470402567733005994446272469511981501839068970730474984103623904991846635931073349650434717186766424827955544502639285428272913845113385480755511962508995858612303890287062039784169413756051555898399947158296663103095253576993825213026447869978168998129999770904379118826438557373615648242743546449550845018208393659140467860037159046516333638746111354677065293449511528216972120401435339429113557846255231606262582302059537313602058761498632529387516062605509272612531762349078636502815309385658086011012878810913780880317512515465700588939708630498974483805989782597662179749857435567117796075901847226588200630146141643833067433157066402364704738399338968416581445818499856137920781204940075632658444660196271216519288996724555549224300837267577729994577678602716379837290903643173744266020386379526587508633192707832636544548689666368103012233696879576628655744416756520136293202298199802569003108421561024370852431870135344054531786202697508531791338615871303565917735329246655393102736336220834345395596563526309100981530692605989037209289758424335145905268098608309528089077680126455939526463723947163056034257330000318489685359182200841769254100116690910283107713798762703623778476193498387141148252763087138685187238344654893257885064720647077424786440848553398601594406525932038212311848028774629528214469842984995454659120086313910402911327465610980007750967000270329273101611421697022037606358284554307518325085738596082734532496334887337271832274735502468946460255700359540446144354211252849761284491412343099367591818407633014380083216709073325825095933395240194696103733409271827336568888090620562458798044882348307201752480404734029133269307132049823997387823182803988343695589374050943040945533974868544649635336207347954680528134083102751803146520563877100133225119686344128110481187399387537004237312762888336457279791460298954418442425200767288912857803872384792386400365357597872553546084945787132771237712074316915493439838384682992217590221819702465994631758842653239327176257053818710488619008399231510564873691062900582349968932583532184823949254806902170524600820026311129852711746217505011746093448896848641292656505077538238368081464451400042782604103946227719292522596457878474570755849096430839473511092223457835956330780697334586600462256171700736938734523393946915392495461104365896189161946388776448929119290823720645941957208290782743241447519764833962951296616053063859884427151072712371046654319864362556913983494967647981003117529911736299443040265036091899459123638017948488965078282907175612264139031010070688067657073862103535530028911399547050915325881028848676502620643112367511549826895156135540243480247781861050587840658621911513919106250373668559811963245120410894044049002935942412280272616159143906692592566601552688102425148294304413589983729542572703636354460041471068811607080184009853583111990047969886663210641720799054852306135443861072620934542753805980990673556707502703197008103697447151076155257394539641870807938893214560709794731801279180075525084096658416629033456871977418453959040509941994176034092795735962339676733576376704726042392021478820062220821102422281886298049708061610398220913648507732142977964149247178467724322162290234537372151326341336570073848901662378618788290311332629307127357078204107469292739120766005652586404280992607602347942378453943253087893423694866698135510739758855066520402567113652791463686370912580437099208090015955370865807932270387507466486171313444251531963938173263498270622715757384489734857551984000449405347784512155936246849061021124993058291352642865868197207584287495595703126902619882581499670692544244338591388069712690217709862696102211633096450759392988060044765610055453293326396691433650772630739298093930506389422189189412339199533946223517311946525830030085860210012419883543686379041875738783924541629248524750202555928052683595986911784439570668337544185315919293022453471464185729604836594035249173382595965902134335258431155833667724606211621601706449295432911489377745422031107494512586478389890332956399202614918425585228126428289727123178979692260363899736004598748784563976536604316516449803946942154842093830006706961836900060527203597516654219578817815900019391045052512014723740443217693265265673218603527392383859633130875533604081615454216714327719706174090533881021542872990695332394679168009588880614877822564557241761855224174099046733905176891150514306558504228007425045555264506696075934283280526462659999772205332697383946766612971023668496302390100535042831639080857611057606704620975972872339610290041585214866268188274314136532453798068477253866523063876910728934020148417377401399682237473895663130704621524435468779914371470855980651228176745523491726551956922138667550933451915114441155251235628008183605404982671577503731826562470368141279206796996162866830694141874476414921080886953618699926772837457804228713415567634839785393158140639256988387105664982117351331178077434571731998673263582232738036317455278486921504586215540195445226500614354445964691301490028411247612781860559875776106390858898124129268142902771643124799862578467866789645973309721611309414238307315369572788331704027148378835027911552692784742240025864556725229980371543693664173599395963953429082428672250751109683527113297095991084052943190449218973927012733211452938744668777353002572640696066608351803339988198688987583927158825409480233411884524024363712853820936678748899178360380538221473874270160420083227480272956420106593158674101184356540625469600687940198386284387622472477432141781196253672693531577360849749097673498515587752001006777852975637919340904199367791152186582352670811581645115388314822141279901051872735604716360621667938273141330415630049896785904742128857444082034606468363823587079907861061335177847057354608773675061138286318994895379218160680551471436040263442671141177441651355713233387923014849767931943158781403712965123320545512921609812059467306765408399667536082143603099076850769233135007731241560301209397237375199307913052141249901941415887163230423908384656088959564886800754297764027389366306728683767475341787971284920596887396071245621586151681801177651019662647610564690412864032186114185518605720133182265898199238441932683073618214198568013935969986488762152081345048712665092211444971388623210776227053435065961783920803545490189525162176971390901545755938264902998317883789857017899031890469429540073660494540658860087817417207932616085420779317969599449896722837951125969272681063106705106290597474452683112121037101083137962607200208012052214534370698118365991966956518638898018457119980657647461014677236875652191923901941943434521573443303812225099007714541228173417697517402148331309302334716604695618227687164819272744544229863565124718674011546086757161641090621452058753886092527809644525971400760877778148001979755460685062364098640861568998138211836762635662940674667888581395872874414519065262617632755828566949352946222754883997384921113700870900802249570988314128901819838982034763920103574862631364577449020636970215196749368194401522884444344732812115070890363238961491971430037818120772317153958502181197580023102804426113945309790332673054218658521024035167288895978896363645179212227962839342169733378238384505002082334585687078743309321266715939448830681869066967345911931103346522690724694538699396929506349099287215520230003847716898288702539710225515691196266331393467724258517039027403946895885662245153457291385880372291027797174195500635140455999924391200890697455729908181953013628001331886237971248487895338397207959185550209192368485610697086457854438390187451613567477081187529673463499396128534590100173736051714870035532014837444781759755023728547140686015903615340345253984833085989268362576205367979522501274487990404116464646169634511543550359679462511795659827122124268738762606435169719488130675213046577027530290223317430292827636784860482982549853026419973553878562438448746772292895508029982993407774940983823816533970990291616639792679454609169217806417247469686148824934514820193354585899316481412637621700928044119231909621726822297403865249829237223190579664625437456806387690038299460573492773688819876487404447027474709674041269070299630095784868701747333274266264236699159318448051134663644805865409596200704365327712826508073486388408288924270179075907296330285771688256164572720252651821093232309962983878928636336622289873825012255324358453844312866686224410291299014964955079973079073553824605505520509829371854318832110056828064229279449538966862503593100552104033223517774740293095834735747124117530825193484228402137131777756211325416439781253340361760706779672553677914827749064871890537173071690839462267483244862324727553405049443042987418870876443363419988781809583144333783209169448223309953136102738790079451190389986346037976680235505000506717123589329246068833653035729429380729507165935995937394948968512929037736676010992449886330881773870204764733911682749158208540179272474153856859128674195669509133470579015586108973742233034586719938102568695566153165412709824015071086464945195616061836402353156437464404541580329703578675761732167815733357911176956335176776698450453878985976540774875286439402080999093444297307436795365760287231220784518688887239667175624877387621146676332245602325168206108339371318827636510465276005041972007293138742837468614648304331956987260554667519491892156158484856257001969101640397948127447306902811871603079040454462609771182717673755100703110794908766784344160343736622069904775269636802080420449962135977566594139310727630910770768770467434942666290217068651495227457069298297148460332854183635331286708674071555942556878096175615434914392238359769129597403830436407441324246294811760577186583238629283313733274911210383567902544746164702801358650044136486245976456422552962856026881735104505380944494145935283139884473062171871100076161390899116979493776431268345787784052338254922785411238907021202200928961111282626468962145186969768306793637229783916141374431263978928921947703617082121818079242180596242647494763698101552890519091497201375468549473250432571842362413396335826780044980991250870039929379433449539790870874177356007786728135451218568468625530518245831662205847372669892947845421632586313008098555284613711051524409671355396662103265219662169080576983492548016416321145393213001621526916807983043629836186496868107158552336505086647700094501483579944237348081722031097183928917264938950749122549688064794996516439556324992655709437821645363828813796376813624141979631146172144048104750239249379032603732564266949763852687504562911522502481980510179491997959434173612287526238119606813431529103376141463050319228072430023760620229115892644522282665628820327324272943846060162349307796047477230007577275587129463301238303783897982307255079551621010583521835403458030068911358119611666156517505157363347627731966773534993144207555043744279513101166324040781423471665677274773711132064036890316227400152106853888811396433429567550680070830083774260520146659402361698210796631886443923526808057739366735934822086778225444808639924554307447203897698627140440163255007584132538122717000848320354843237556395232907390999871419383913094318312498836186156237064721308504161371551181173000911076905969979840127958363680779218654949850826964119215224414434238186287237427490668048114713474141500030964524293446788660753166800017332107751694844328264350350650471708706012520558175372245750626468867448715962958043363057306809993581101302115093366821942983178771873746813507695118101898105626968050876990850473906858119508076234500258708181215673059798316341972181658543303894319259100392471745936916205784199964490174675625515083641633646817228890596988215671909179298861526642046420112789816428048577263963320228144769792086644966889963428915630721947490195209376435076262885398039029511103895771928358106547082440722763756046609733861551532685225837247217562840397712810106809119684612174858508306817540663616598225722137643626101586471987204909324574615506307457054378679020781562648946431258698451517369023336770657940172376814070773862995526497375709749267892104249729060004434284327987684863502617144655854644755351032685034911669197721743258425481211638077777233457521703744176417309976630585630127327966344003771381390546341262119912918232596960224316373191419664742375853351851005724154086615420077199512549033485579593050052648398195170430905490114344868797371481421115650497746756897085702318562194762398175002140352868493457937536990067121579645225021711303586979037980229614716542043315318376667429711584303378046713247623770328298928179810727738899796284423747521105364748272553213319164751140298543543185977794977088755721173941070742265911356445051024029949158561645230563634744288356702632716323136197976987040173866406043026518564089288967076598798987398871209047709541231093159633654772646936812365086254264423957217860683512624496069507396174344061619714706200616644642193058016550964039434451821594461019273238577723723936434729772514384498671036951508135454921391521931901263970524950790751751760623151584409458187932067324210788520283229493917308923965049011713914472242416835513552655552299415491541970790544925183951237570561601073511371044938424335786499573538440007037057567734909699052757346219775263478227627559889362395274028505516101236892697730592053692930258521880933560078750868361883305182841342535692833423357638363691383628521317893180565678187962777176284711645609735998636499740352480848240217600581435857799452335566302213592216581815439159744123104806048566426425571830894525476096974250498140739958359515490582251428293825534494923309902543185924994145101479364616611068389565253153431386171842514391107540484184082206504661586238860746155017948183650718798490356240889829345586663533459118028342162983651315062575478549695185016380577287421175719371188481261548908421674123918244673694234038577450939365233425694583680994157513861474737732416878306065370089455310401061515794859320358131404402761923216273749081277834043338869269181294047977378828591371451284765883177036359854328519408995308083620661856737122016802106753798735214265984148104540569341606351491267704848887641273632171255132450204819425333746918534927296611699437000711344766656228410052439649820383384087381187089871157732756844475222665955828000289223224483626659198450722938051006391652959535825363984756068880700968454528388253890010271851578509534698939522514722075854781717172509587454177466943878328161339888364325171160073311638474438423596805152873310909055465089995337548691800402676301685546519531972660230393717138784751521625131225943651707989852548825618565089227229359217897608798379744594512079414992056758384673768118953884131287540036093635091019597264373311344789271366763723596594709131005818503574088090160649028414764482421167035685590566785140967181755116323771937131528866214065074103412617575855852677359115177821500846891734235609846335631191190308984067408680793117732891515543993735041221672658361192555741419447959125181981221157462886959357963867464353255156170855710883828941839926868537764085648321482009399852513818204347479204339481204424368302839551425658099830692074560196524693692697646651351870083471314125394118593024493734570635725235108416440136705215365118802603354875932867000902346146043014131887273270921456855168848175498614636374056168208543898969059072357393958330550583622023461395654680564789672297481478276609643804537572706685545560312865181538307329372567530012814788200703408288591508422813263238341460736263893088684281152650675599035924322642399222318766768531357437977409953819650608703100150925584875156992364431115577562741364562588544456926250728263531846927393472534683568494058797433070744963815457896773767369848123506482357907676333613066420495010601595524396419644497581537363894492209770473018505244478160414093130082086354869621035751314708431978812126725569402452645602722535815154206185681806142934155100440706245020190739400441090080177558576393414137849864172556186727615638138054076177471856618329006032121794411852843271337662319724062446773948301529914667842439937246977032120044029912301811807644022807312944698390769357182152838402669257103160330074846791650311034856188863272452567574246660518441018449276941000651132395199895311160737334412624900555602781621481169572355612374150583944078189099989035509556117015808367882464911157216992998179685734631433270005059671174538949393419385911909166571220866146611290832325177588426810662023274353493546546452649355956188541738365989733363363946621341874775293995892462659927932806729799032460749225899277487278862744155043877630643550528558599102337744808052699552776151009668515318385355528344763784923561959767206555092304926672565686802490868614465480913061683990197841337818568560370363874714548258794115556466033957895718164425813945364415141218431599688338464095592574378420789617526198015939117242840898497456095397286702893534103119690212358182777225484545991802515505694013248248522474629269921517134832809307671475394475987292137020770340239482562041219506404637978639145203867753114395129531255836972303422765921669090918881227798124913863931042668326180006167291852804924518260117619893381627509638539913436874769798706624850918864519258127574116186726382164237238121248484335816457175414465944895832491754037822976126204822027499537391289072573458521996923369359522462417076339661920882535254247126154680497813511390572199890168252241176708780105020664129641823348294095933103875721628019501447818467002478836989192469083588521144493218460188413445905481543416385340833321234721972561940132906105425750511415752379476426561346491801572246516083026179069924379228187714137135602047599800791193783688896975002342900306231498069490649257966677086994927108636887211342161450575202540607344385891002820130798685372388502754177864854107157214898932793707146215574330752188364603364235731213317524647291228230164206357567561818907130839324590120734671079355726480840033270947662785225519891707075379350835997020811076915845702846780680195990933567922573162949838804218400567813185197075941171723766205130295527430422648365120552358819650240884983597987234240646742343531659452831889529889265546847355143439789649479634644526749446087562985294182156240733190348423406368894411633608167867486410807378184845324475393908216696846093531844990644534998414278588002974885258853343367815289684997128833876476639536908020706766157799725745389615431709365809982876076206384479074696762024584479620624678695876042552090315699347444599843628002648673808536807435394453949830415832615823644688121476595716475082904815476032483338050578108836670243009170416844634885080075545784292339755440167471446045468427237510674735418773852657942354755999296260923211069043547412964693226543309066988114801955766133429215598869302082962050269673620712108640915318175910760362283419232728992476522468998213334860457289709899598515542434497714561315049588203039987922010738576084741681611558082493638800553946203127831182741042212735625071046993460898407336187317719132981509725901704362035884035637788746001247020639904960284380478380007413640960349850859426752221199932828039879185061051230553765186535735631869275401673687118571669655637450755163363965895289731634226651988774327762649970962990331465917383997157688551297053260128816166983869210153652758196986458303458466481567356111293043524257458720435984732091809048176675154949560226014222010059846814698022567938947262641401024928625128764395640738529532636497773896047961806946459413533462404548561741421576940198093471051191791644377214428591562704795988079282285497048074083035371145275245445451976630142829616616097694813102185352289068542804339576760391802688071431889437960187999876575492695468112656521688550768745578932471197958047288733641877707933720212382552950555730062407930553056242787426279926861621777100787227353880508807880982998427382228714457889669978574055624548200111287817613113938872989480278864497715996473681909797696520638443164905352079966022916559095843294435013435908270860528586697735396471398461671312658471241558572938680833528805053576737740703317367455425949360979180974941706789105747609598622472298492275480429344024200810588747023767859427402344679103159917374330109972446256878518764912022304025744363019239210684330660109579084927661663220264136463569018691477277864300908392993171837327883522146655854303957754137052503103314038756416380001265472167197450199957802212247612471307321564426927961431448365817427653446925158662231334155236318113016238761566439862501471859884232982783280963545427514702579398502119489455519514742005403517734096599453512928492542584188313182405341590915623155462224888119748840698778086235775684059019085711398503718152180748722763450593289801719775997502044337420110927469615968176362876196436352393553932357464031177957537739895264930030669262803809030097600672714072221578876623693938238083058251943580241193320613039528372781061451559589906672174635495739456455821719390194665201431993325713008006699260202385259968937607717607999468587889087150279661466114639017636309029091433688476855499680869689095031377068631485201275995397156261976626145549857465523505030729332030511158189656218548993289164842036701658504739716935265387268839776710824371327926563566856322633954246515704694535657990657198162042344941811058323768000351541271116499007524614557994115965835534181541573957332628673601513752260102318264728563083054715174352600697277875575713004424998229608096489955283836509102943569205527954540856288929886062682057900652493937290257801114989815513414083621561890266661085755689647670780875844655411991707057960430332795933063358824966422966148991678435679431534914792487294779490277211362028081065694013125073096782318015801774106151392578630123022621588883007224901912164554059532907504656086072920880626227896918143117053858902782642022044520084988356088295332213935280138641034107048265030593745570110854196604270493172099275098540786047345264734268664985119691632085608077876441906632331522235725070924558587113970692921184276108410238236141768490958512235108607281489615970985693952865997062763336627468554582432824641949250495090997758937412837948441353492504977699985775130244886421730550467727371768171687520365158178638110522065065526510119214574507268498308325758283025561336691356844019732191180229703015964836524517073158260547659229033107450805244232883754240279633928203543132184813891147535925070323620542537398241660091520866007523648792644614848185952247129201414966956774991479263124594671674883785254615842149358868108067947272889318585588953662078458550905915534243400645428721526206126448358980189611540828194557291667000222933103917071996334613603137093458509124859227607707080841184352303180300194235586353914457779783863727615173185340364302533467945567687426500065956951095414285023981911925340981823016277823638423111143727163282124668341296014312920932365125278249354823654893731821225437203387822305970054834214515273149489076688144851535389853258538708469354317002627554429239420934283345381231198649213178587894162648310042696866091349048976052110358389751809658745045057503440367946367952971176770882869188249514593725574119292871206062162553594451914781201181874061708510357905428053813377692629449142521544496288461378420830114675082750326373043244146886329214188634125801421016058846359255952977435526134387228118535738189117311194727659073956615361054210655177404072936351318846584442040591182763474705415938788932153250443681790344237079994973666513676900041101206776901844143462327713924814224244745896916969184127447778526306286495155620428377957909594325702224313516617027519373766393022040277829034470871719220635824105770528980937515319909907904134504043605192903689387089556505276664879300038055708226238664885008593291354614836480212233966395003929789522236663236802102972412668034688973667401854610730157601687891039677955257280255309377650669950614659266208714041674093176149651112133165529283370689065942215359656939800477250825936275207987366793471882848221850786284287740530383214391862677175789504522788610627818188670505729343562635248644252882208360383047818717411176145476006895066655430179381650286067445420826751447438164758650395874274391313886620653844130358156100042345022965191535830922634458354014405059443800513962781299725122328620989924754366314480655757652620187759888182758559516103156595227830157625471407516052318385831703148230327416726041563185705908182642934962250957729067875684273105989512551386736165765676028873449524349432292811280116386088085409761266236096462561845981939555896727332365435084307457705109700020105760231777468147899590845527347332244513216439117478083382429551567458085239569738548249847450598065447508464122675104056230104078565804743562306430077973108497156484027300415384984000051018092266059857749606445688616827777357310469097780267512326706175970606888890456581817406557399834320026214140124397014555109756972799154815067141289612769993143995858586365879043077439425171934943785548883971424279567624283136091345771595369463262643554665248250635059481341391386288769398217323604046157387133034813836165446392324251294672875576957974710995503652436226671573544439119790501458733636041966042280031292140793312750914846984331001351673081656343320190502355771375410211123706295971716462243565422771309627390674840607220813695628950437695928698927613835518055643446089738438789270599604194188887121359053176526464260003923828170846719745812353899255684574871676768143534105103791620936665597913472712230088802938033035885338098795639376436461824870306446126882176343514403234206884126245930927435490937076355480074784020998040882773370318785965403278547685008117653320966903666966281360904417268605121390125687242693586721001971659930484244100983346200744202379654228526051989728945756672602667556011029472680706430409412617663816674921478193371950225652887049562452117439408662451547015171422791846358416127711159538084023679636982664249573273253269724046804963564802565715518055583438038773096090147175874087818368396387456478339400700795199930002336402393877868380091206189149988891787727209744955922575222844180597887849953582904079518597660343406427273032801337612370516623033697462390412498833277958675883526688198359766510160515899681716736090550066360767087227715519141587193243887174030512191938044649862492600356395404276697669656072641792449060109542107258058406681153154203542053552206835016844671791155948113474509103513037805073031850023322326688770799708007495819844632564658820052454285290695354722053164561026785695427877366865704564118864978718002589691268520899099788112355985853756459875278055616050629891725706576424005932792028870454817305937311477214274324547958555026296171949955593510860025276642546289621700616769849739304362215672599549093587225247231544961290283248649019404256772292102082045624411521344495390845368667834667184100165102746887317705211119391443086512863481238603835185486157589456347339044167721567704049069561744953794987848447102103866797491254167404829785749151678885682582341866237862395164851124208190620599278790769622559195267996876270896190304084042455881798254924582388946555746926927506026168137696236215459913988292600003457353141093667953086606485411874924243212984267003523216837682947552924059953011462292624131383878650422071309660554974291069239359651959627212119503583367069434705534757297319530079509727318389156715034657218014300002306821837168574176291503954131002653878374384521295887624668463535964507474279182567484212154840509181757806988164028333032859390898410585765439907934604244020442145049506867446049718632955016642939811276824896079048379225516204236883661844828157901514720970706893724980814996241971658826432573865468857415428337964701299631750965347751016816263651232387912381081771412641556978193957352921012734693145348621650248224305371303697409421347213404326564792457411742721518503333794434283756415069344340615913228400659011242661997944164915559589414799754123391731834846514597224380856782788891174741537750508923570547618327468460005855861033292471912234897503430940430655176213850400917236821562438292134699020688215602444877537751470925890772862747719099928909645044962723184619033918625837052738285994142705917897841508161970875794887846404680842209268453170527360662290503039934061103813984243692221009587158666189040358364552342691757364316296875521628125155373809606151468162034073533878356798529052009679638621151775547719574165770753670179865339724146504469753427214526370002978704926693022228608281301742651525397916554096624747232833228240908822916300559660532175788286053209026529366658032705909270963369207399633351578205973059538159471401592464257760443685083193915741883074853222699326613754856315668325180332117917754402495911619327847621810265304679756786004944304851046028755505391189079948366631024221356394798406639979013143349933160502731542950283596818325088399117587630659001874416941578450005518764260186681955231689493696443700829344049536128573576016478561929255465012457115812585051343094350926018697414661854629458000193180394658922372014055422652861833179939343121277655672485857026552633305301941830061929901567395290928267403146794807365693185873296074066543810781701744341678189458421174172617369629390894082170146849117535681747296478322715406880330379642065383594556277620979716698618855151382441144246961813955301810016831430097535070963475224115608156186652860975319007533000727484282512468290234129454664732488681896936464809220226045845525037610952928162697922187709612987167800906607689765262061134705037003102614790043009758299227797140195645371686682753326499845209788285131691258691033428455977446911772120019838991957842963426652602016901853365881355610576174510740441878565342172300311900121239263797072627596302550075109943952768004975431604897800412123202760613949729640916724743581128844635691266998426494499844048123305974613361072893528987332734889084490641051202920376435861744234546752743405316039586455213239723753391280610841714205172267950967468579040172778035707135829091151630956901298519941216726660014962589459661578424351804300975418065396001535133213688881307093650259070217940598433251237673214726296476630444512956882436277106537754326299827672073304714712288673211406145645607731721731813587557422106852899857078472741685726049148936962935571998056735819317991856564463167069030984169465229121774175940122781667201144555469404083663476985028588407507049193741294214251001482883882661675896843958748043828238379485976961517302941956084198971609898686241945411613677887574386850355918598326189711299392446960219472585299541853197900321831669893759651204386862922763941061215478314717584350195792968858088706192399215155050608338358800880437852023016250492469749212280497763522712159240934439904298270924297000818505003854843561685065879994984303223319710373133704285734851877839579008550908155828223725512934515770198548137639045290891048915661286424769985606425499647866746016456253521739354898330289794475132204708766377442618140498101922023623393069662288330794746824990583539987794815882552972077519726100788197384489472593342685089274337773791882474198834503582615918625255057420073276884128857725179185727235302558401026115828048592058106616542732352232009744452819004083121839328294840468854579197232584504454752217906145152310191371824079534652010858451735540611592279461713543939971524919041927478349426349100752943103387915041866923885165537251733144478447517013989250483060404988699188836837458464887362853688565597856472768097568288467412578121056078048400723291517511708214535317679613849892789257433750416548057208971716705098838088633464596798124547393658632024653253825926218255952742279077293167949908034006348075421072091786394375310205451826683394767193416722353364894014319751026081136592473607064829131816002158749879164073374280384845754572852820866306874436128292953439386610380625499858082442759838256180649662651385349168354787301555043056181677878661125477070303741308988454474433974975533655420229882513677127765493264476027917959574367673136197969564562906756245376806907742714190008206508121802067648697206024353588791172669706853912531001591086533639472164547903053301727794246400839646137492549644937495706412313268437795407607551822403843228380993609325228718629905586969509653788395390829114856790087745913767379522039597447931817307591758547244893687412756144474573185822403925725737829437139885014569760282568672323199487942394245024118265946538640132950549329386612704757952073166623502690596240567915785895011731165323341495944154870750736620946883086564683375366330812209126784748454202362300492333283830413813069588881085032007427471753305048320193623856087023443419453205706493436245432983622632842936578513059184692848006023735274147467614891218032340175859484747266952746682694600089144062790998502159457493568578703901620268941119544767765267544107030856245446841663333594533337917796088262742228062367650744051137528286658944753513198229202978380470875147151184772355770484294302412591350879347066605963571397081782846752194990566837658963549646949039561189980236089099675227278363727360617446152327355838706922610065238250774727208963891001159465797289569796282626077550178238970839279036333460496256759119552818098489796346313175334709350017485003082335169048576010104767995697509427826110780032353618623608583848294560342519780851468804667016845738885729397405967515560987482042386416951419216949451654605446141878352814666452151160060289585162982774997286023524882444191531172107847074611156355774219383640035987893104557357680156222061976728756720522883072565725253823896144797830003074833228175504056810213069404541418514347895649579608497228448717727203315245593608771390500453356542563161979309969198306951895721324313465785360005004432637615686047137344964504236443794698504706770909341075502887741746905910661519062524272623660907156673350851813784184067661398071473924195059097744249240353774672143851279623733636422197911689982212027430436714135992132936235814122631217151508248307828684003753934631421152291464116461324292429140350048363490760876069062908470896971505162335831760581043514272007396267558577784116674871310788788202891332118978798556831341769405233198587067468901364699017006184578758955343409196251610149625430273205150510792451974477034728545481696781992941500702866261560801188986585479942216390011241998135761593502172713292164227927923753674907252760700577605997507687787094311839001636032857889994165686107491006344377281285056304421144758348929726568055039746870508452098192513048868407036241100156989233761031699310295340462163163058918495213287044569448900723669381681903123572866708110441011465948826000375424652910250318795986777376530316385846302551170269901659038752975066339465824369168464187461438143181580267988755714012990417194783141908543466402832190425456246892838709071752546681340762626855174267147002801120156543886974582671483925765303591773903736647064166681056290174615721415384713196873946152278322133317864894883384756481624044032224379391003834114046984976697984883315510533648724001085067540926704297750254240113027172839926010395092654329968856806218792330923750535280218185626962012645258506570834197731812337398614752917046793409397950415313024822857694106351587992850884516548783410352084308018206353472406442017709941681708902961266621717162829774057659514242325206031836876460147478125429764264709712880697076267253213395257560370362763078463275727220454861043230101624279743693388899005492279632298028368201387111806675766690508666911026955310823582286256806950842734983254298637648352249379991323370831036613608371758239629737909526784880975243257818201110171757972403514614057472068086669375109502811403411056525631057655111767436944711534776816078964159431053067069914862956037490690694745755434646175173221411616905114247523726182895736093518785069942939203465083710929913068577660162053412872321181393793559908818420909945582694162370356011227566728692439582174961113249178671917948615687883437256877014387292110728889252053533373671371797550217414591636315220472065080529358706043236662887943636204316007452167273666042689126756662775670211550771769568642517205807545845350774759248229087628118686782061390360984597801493924060576702128524023946149216075521571850359931214082672512783147079042056974308157220542718572496841023621408201576993080312225403918993194214786559483538416094599045620451208540617142296449551236417599222615706332187469557525116495424964703970325155232374765206845510607485842891400374509932167706914810263094686943304119107335270174565297849377961834936420543194064560916990645882211579470581270883759629397210983124272735069461760918950873317869786176597357477050722470968415541323761350176427829273191714466169401666418853406813131704794643314747313914471383305892229122137326886390985296621749596718441834648369795317244049529517807174786911968916221721376053597391924977393066223765092394925152999571792586935568353920366299781307117439529376754632963089488196403025696798961259839072100430246029771597619651956360201058107504929102408247569929665350787630390558338334810833344184235558233403642181254950413464984968660973806847593974397296697474241346983099340551171209604702581333311282400532715445046784931915287305355939781299784162465680381384888797655927655851525514513093035933185194706133407427024422109313948419437970585514945652689082272793822755798904304336040554897005727607498964273517854864199556406532141879747102319706754199475561357145821570376015943956225948257938125650390386979208919826682630725344597567687140055757912785489322778217230464602062686874961974513254242946114685766241413343299844296169691801564282770773616039052081641412353784935948251135539527735896414844777212167568116804258676585848151036649961698945111400065321516970475668020523178100554479501504281451541090921687492447210742231475351188624837967010730976335186346067398091304956996678767955681780439972727163166583947034381994363666875006498269059297819767538084674919135027036621419619577582290020426749919500196450910279160604530108831573357929205204251901097490419971900913673907381495902570812617595198820962382511669850709018724711733910302126410264157978918961838220948057786969893688609782347025913966331405577602808326036667447088328753151288337061684304424572253270559422546868576132784573303146890675262609653721800153054431669958512867555536901423555922075493042191137088912439990602852574736568886114758714820653537068207174414010126453387590905792605621363050148535284390694288387583525855635324997613029769384737540952591729239783216935926553646300064896074920989802805094479715487699576973954099217486820184235583548026077927699203125171309223297536668392497677688186348599212816456269610904333849047594476452398763698340409920569660417734555557930552779015496880642762239330618933407392691857801797104488221140744393166742968234468763648422181869099428861371311610517877171074405002482469608730429491598085281339483432666317487610510955400305456488038850587067277681242314993530440821210304408466143821044334635406492244705371411030162892046659025224914012091192666073798290222876018774307661467490342513148614851406972001242880552505280089884433756036685214904214550364280765554222567145338585077727607148472195988312715891505365046900176714716603654266413266968461867719933965276616170178313395817207025346100696290436333045448451121871529234740872148593228678936815203593860877175769300796882177987646351881883766452223748713664695537379926163367219291479989750240657862482911225263650152574371067561940561730274465407396824411174034593789763805416526327788446576905423134892487649127727507621624976317883700323656454934862010031785493188748678593678662154554497727416301307813710831246703629515978863934244769011795514505058820248124043070365560202201753562796041660854231918981842295159604414525473405549967594201969747197261816084603710854559128073383204919616270473631209527020509834139886073909680684076862092440501460665409463238502098827982062546607904001842185262746776801901515593102086869141616206345881583292141915288010281850980512059971872788968125145645436194060452670917418738080536088363831194797693148316051093264458545203704812223529456652812293911036851051115256430166117897510103403240739780700540718663123993040758697436726079861020501574607398085023082157753603179201699797719373658640205940018398466460831322082944306979458529406487491712312925484868303255749743775829452702649438679288138774226869947067774039122102120657424572181348923852663900210749053703391151572877760035285602167683017423173236603202484447908388561156314898133957580982042617947577087916919269731554829917359882933153587739200201280948649643226722020949051820341537332008499801911855471128187374856962578547659218063534771428575388513747554325719710481157024207728168914188525439798986364948797251120572972745188007683259850374118814501055102055856173497769484861268168937751779203113120434127362291139952090836124388737709262659286089052446193099151431434469887361373261237318115510570110746769479597407465261178045212865528368584971257416931740458142898230270532793781834616768516420439118178616639694406538348549877561942768714769320404603976768734841705009316518311415217340516767481003366058891947226491688699253306825964246839986281246808331307112623348127470118285624120270192507529091583527782570205613923665769792367205756603656825241420636294912873283146767703620281315382079111828171613567919316543557847881099174650488149699652067187275431343048691632695504642939475751575613187818218169137942097108380011610968211154424995065361874295105982514119541919532638851982158146782860170379635209443228638233740314907260718465389277227209800897918438414725162954256652703736861578993729888148209568252586488112777577381580584963452987243271541494945890598204943640171205995453104963612705410085793126744162783562355178573355547534688330994932380628925901022086051835526852093934693034298400366794161161987951013035641635120500959298511907178607176509303783573795231709099974110096484114293217413278534071428251794472242035004426709322206113529848286038028794740074696757001417531569382799874346131690047061009570945482187829955493561334012075327472178748828557686538578422813471552581081575359881981004348260548700110909582637763775143600429809784795833833398842176327858502118015243497929939989123413348173015243468828982966972233377808742347162169166474808792347507476293893270070556786541937416341327333907635563546429220481270347980032206284595583601871217462450837723777106316448503008645275750869766870909678369156487037017722633483879798105183156636760087260692553256666851408988980429429553340072470943923403827697411355694253748702439719285437107668952564112156967253189142647247263733237573819762623375704876245016741762324179495145008965009976238547308846711669313292418053758222782684817279174550392196807245181065950804115326753114831224725100030642942670118755725549194025112522256079063168755657106185835688712393361997712414885117830274498361082398673022276973324460510771733457544156877069294271567443053317716803642485609307003608333091502777444189476386790620516466284877425720671623747395736868605445225732448079781946131375308379267154779508866080033714877427035779201118538827306875787683305459946425063550563819896775370064026993864342429856918585236888279479952707076720745094578009719182929503436857510106196599599126303639279947500113891432203593831018289265109607968227512597674525331941254424388035113962955397758885942475555253115663784931380918033723302049635662453179493994148725198289220185433598314495856120094502354493465032319360344426775885949020818429967454753240950140094816308120564514911955327015559160218961440085063806065367138264756683967691058707754076243909109090488282248710678884929906950381385817264561880472621221286679490051460692953146446172916563743175618061710396832867380099540586049590123480981792830133199978689604710447276103930610097899857109177958708454484922021790186345255080955354559409941264589423058484269270928036026729197639805194341444853902023806885921289256789245512196578439326156215220340747889180317319947103186216329876103276705860921605528139818218969288003296720256714045152309613219763256419948383563333939316362420776490004649965818101096205879766259730408136637660845698579465612236473332100202013238227153600136062696262809140980261523496639509925094334809672264088470781875249347792285364647094389982821722593011285054298274611967454905912094083746147333170349269287292002565379725166125762257926730034484994794344481445170569310492188422149480071584073708188558327952471545046538811159671863134810152072264907568139351468900416629565431394892305900647294607426508571469784317721103209857180197355528750007202567888151312724440131566370327876841712464684169005551268556360808803524844443456887299494629794280740633618460034565169314851729779522165278530297634723007118182163333138993827879423534455169911710411865574802109824828755241181361793087804333752516902175445409021998362769192496366467323141326747477051322523514726640212373358765535585842768081449161132420856478688572853257127005179953442727192674947161190421589259248448968320985169094343862738528413093213331122268018497739904437531063042651841850896431973473782877902472782718077006383119396973734266918550043405689583871812908242384735248705360153780429057465645896813547926557748030877923371151079580903611622303536058582389429598408837535797145712569448201584073558723889094999300198958143051381039952315227060511633274848123645797569006146300386076142132282269904126546324073108065951096999899765962511721228430986837054952360622655176529689322886020722395434504850337222141135095302502070192506625479006785108386356087047924100672746613526681746206582649124121824686094200342973379067488605485894686494677382776090066452467282316115040829080665843581533534812578124599231519343530224406719367573350304064973968137192341760949409739594418845269241094381992389493589202832657007236464856627894026796385841938097477886139311817240402316190615655791426474456762003414316948560585879471860744252095043271493972842252244695002832276071983982513382016999438655503453360138857519069117940940762107378479497108792735244490960185175980387746596320208087793401156374580436841448708926701372633407315743008656452996197838329973204471837539945952294712734730226377394898494888808413096346529927358794845371237765670196790735934773244996047624068171365152320947551737444140399387617151590955922856631246192172007700925607904011790893770439531405651299086781382031200416546727281057590829531246330822184885131482114460540306742570094237026471287622125674526970571872939893251298218365989449865702264839585054630359536513739655002530844499943504165084111407744517050690893974137223867397419097800870193140946548413223737942471340531675016661452770503427300466292944604246136687123665256236121765324288272885789790479292789773281668388989199214421485011204916223631399680061821803603393539917904031107556913031794357682921513145376203955496289966966079773319021448446979760091836404935403173494296813586927252525007345125361653688332738332149892604531811360028295133310689097947440721540765336910191619823107969321915199649604186363371029433613028013185773828699545493526112699211628223845110097057006554070207694331576121996919752736904685561733728779849378579537133105901348093899774072038237349785750358242847689538189982716938367757513663105936545974001964138850557303235187119292646597619565135943209534651274067039746995415715231759056993334955725935288384387797229434451512241520193159913881269152004917405776267054404751941188001719765298898233906524484436433725236115790083283694608058184213142527756573651717490219387996047662615890345825598286426421250430815623089506564856392407028826174522386213208592925587949648649568983593918632725990162885700911874843222078965657852543210928884468583623524661417019964450134790831725118310163885042454089997634450809275839731479518603749309173260338162024295456705501689440225188036873412283953433720221019064389479987248874487050297712389898904874042532615091220954308906650782298625877659294677508407719226457164145325548764197130532636052774759909586326870204760672977021892467625860313875872648410360798018260402532273488084763770879451685343681112710741846526496264675125538129728974661852465037781612462977966997527604782275461072453528797027738527294537092742825349247178611896911756821577250555697667798870508258640509420914956504682709023411915983588144131921644196493915928886421276587504038375689573508066967165505729273998014710985954443125530104225067554179172922940341229403619422759424063788670269328790623891204186101932125416315373837093818232017590303781844442987893367486115236908129530156514301194282391817667750720308342149715748699277875500856779225023990474500077330840561578264109827416080249695637498222517040368287685854882712095657877295470993652143613427960348615693257095511280618983423158830453345720203967882059178860267779305954810769996921447826725756001737700741866757197349390240292275197180938817328708474681531036741593456408804725713843090725886371996890040125558277837055094396824108163012626100317877391943606594613956632872741032325055461840321618394947131025102084764166859573229754887481677486893018833971275726396368297687818118039972277539808334258308917345324053444067305200132494043873584937774556157320931175723464349429600726984478553757527433197732299020267722843145956112760351030381541800271663447873198271477344370672749431606480480450963570864084571141051869712240259337229286676593474793251066342300787565136219594706882640121113839811775378543052538275814865550774567842490244141012799975636505318224353160421493800560877672863382932043202275757606317438260636119640467915803158836774231882304799395763638111660206881232929331926745378851340794587515409828198774085272944373615362431674199216632314023703953192798730038472847389085426416815888974274885979002255864320421852491267955559395555236092938801321414626186174256393531261647357730679367354180409588502500890790434508483242627678707864181932196212161885007356179140977149077769667109263015809713585624354851107665792089703223895535369577670305732478786088395658760361488376004988361309024708012308283213257062206978952204677906109322079750268149110543610801805957370634976618659274573576781259017495037129588938855808060651522783380597144643933221200185793810945513475478462467817764240917193818966025102585888381407771613647788416445001828894234168112993108740475393484909212561592138844181551899478615733093333518782780778788502064461211322837902807571781041857148539293978783387014729984755382151978571978066789212257354990990768316266926095028028835214024536652654182427848639801082574766929836396166896816759150487310958523366359012591959955289873292644247044848011377930976651383216599301500872862247751232999759730116293056909508966159492940826989029040640664038991409835504598450152993342663904712414505673129803993531603168155569686165402790144810203520552790872097160363679326527226782743750323919157159019650125784112701552712677406497276834709667246457928062801111660418167386031134040312756369260178532667775659497377587270539866827597335611629903915314354480074480019052435606209198278718568649454446000803650075699849585292222760730646107505185497901114202054706639198911186976255118382275329686851596678719577873349085810215167082560229340749372508840891629339414657439459804270426360849032947189272026573978433266085685330123545834514037719069235571914509144294509399450060458198685737422991201468287348079201761566511287133380914071509635836010105239634156468077236804498197867463154103323130650348597416797816504218695526044803123491929112789375783637915007851208921119626510103826839403487058086356578327209727062939503896716312645380428714519245001713626063547553093348993733921426226345512019120226935968353314077739224680596890775998885722381288660369585389907245207197066977703182465565534526486656851402664568684274936775886867078480234364404906932138723636420617720662389661674433660692681488001040231210256736739924329611803465645363341787620646168390111848335391807838557946849185341350078800035402459030514212328201619955005046233829419289671852338967984147199918707358144872423976097435668176693266203099502353687570197177457076494904107338521361599881711044821016440355204772478859236752497671338176679533237492233957939344219076260750913085197960186015778755119202835339198813531366482955527805331456954239120703020638134280633218041086788156895206812927814127778491024031494687742883878188783468529713598908128349366368162559153930141012938194164312485961562177334567563774137468189126043062667637982533478228008764727996454844976340058152281442132065023167336925340184768021483279053256769759268867490524962246579884615483220048868952346648290553448937786492478095517810043914236039420779472052690083623184245480579027120321973925602130182542335780402068247354206967584265328529256262618542956891685167177128125500591783505520337184113775109758344429779444594715013698786831964933437712025433536352947001369977694079301573098829129695093495180309562862525076015137404416789425614251929930291003944106913100927921909247221713396280849003422740068842527572723351366697717616165152380883684865484568255573483467588990266472264775130288448801508742597493149111597379786660369753325974161119581462124991611029080878710076252787886874932543954051542798523880832689852167652876805580954880326570117909162375206925145041893876056026350385119639024968224123011204935906639466237913699663234234329300977370935559060316559482343429634461878506143168921772172385517990420392826368752716858582750626161415426812433383161697961788363931796946010323462661823586407459646267264262284248337164210366848998688423966036857672188689676631668789109330572156538664588624988894028392095372120560091790973597990275083071863195778114753929661755732198533826848564860591599857282304760266615720203031814658638297966566942300072164728221633957883478566766598059223309200952561473189539314490357995734158737035587578024425805628834025155556270055981734121436928006536841142888816722615080547215929349631271818864613804070863322550258048702450255173935830378502886669947806580661913539469356019450160793334871588582374058215949634178131894043941486031873748261181624453528845083113808917671876886769895187090026870656213081729355729746926388152655116619648317752854324557247304258252224071764279356966312011887578541176887526809611423016925047294864141839721552257196473254833885004865958891936231160395109835414589794529082606457685882985589056918201678071373979613289733302420572834549633303990457324051671078601226816614615087589107208692676096692172637409959753013437243525563425718676575675909533904576933701737234202360825943037948334204344531150542943725776307944299874397054427470027898093457954291772850047850728147339044086739367090970772269806258851636418903477347588329359324174346348252466012310230277092206621424809986322956458595635807593507848281293557068620995966640403384780634911575196611132197328312921263173689713638104085908868500940694153974418014088687396320595999879168212764751208992295251179457157680108686860189570168478104151832138156760205043133895248882979484569417585942873682762629614460440094151720712787805581317080134832744248704906674883526179615484132242722648085396508031680273406073614003253052179117170426470011937749132905496652650299974528288471097643741287820459144470185040431574496760552261980665632291986364387589201340769223651424387364021822471751884382255080676986724972468665489235020765574120904056391487838637307158025720089693173371636934148703924858566152611663754172282522408656636581631613484477745771318813924019585615826997525917708116115004656733844851725984170049995956376997243069714756310935425941539982141921403493498715365075672594140861075439116003293522602803705466844720819435770747234454237875491042045135385847718657596622988846129434914567889453966250636017788401096122480093826533644159472591028921906566730730434893371811306723291700062626954540923162494988226726666551916827384651153612605993667853440596746906355861601445380813982026669469354319684855030095496766507360879755451905761951102909741700717404822460291904492028410996271511273579770449736453970243500065579798257264338083631017383380246697137519497853471356623325108701031472668635020000106250203684733825832852814904798122177213501121870724007543544355877189869764409112508975890159221775669536368678131329088391020873233463443591748398941152257987339929687883083112127954402062824058547559924194557703203315677272735209245951856118176530521222514137761602713531811334010578883542977606366293376200930208502695063917963242811025078648289017040284090957286137426990070461497483861846157350703820715464016353648330061368340594478446305504459242982518289590779336436984818828750539035207630311749062987850126678192486441327971613049859637856300766600468296244926993608414050646823894336406183029407365367110537597751012577763353744917878966845663032318908190953322135120964781516710137009289302272595251119658386803336200878799017491435507312574835603883504339088910406026496058855242779733155378026351500421523207409203784519579811700160326803682027395567321071502629640206359697633509779676571225417717826821644709417855871122076168473457550281613148436375201126523161883707014152674543212104011965623863996747677308779894867068801349597135884403369474646303016161195772580285706378142943460705169313836625667391560500648632440905690993258582911732050107142974756867781817694840800902885616459231538388566886954648080546758382874007138539623304052749391415698462918549244523364756871263277056558969423238576590471323198190069678157825057344948666166421536614746861213158693601437658069928555320138300451539833795513108750397222160280512468853633970901543749125640833556561222818441506138872254965849645531173446311353487795875574600217922464190586811102704337900230980584765003758435510858745512911631352500955809048894602214253902387917527781914172203223976773657974785121995120429750346493581265865964952953710212100925470540067829938568015681556597115304780617787367032810427000101056126577152204145593555774332875936508505201525051447546764363756493601427358868481326566807762462291119901210017634347526601264596614922679508990918334647779160307934140388761371475656682486408632656604147805982686167068415684581658560541626552127086623995617336627420293566069627709923069525912792955055024690248966700800642465302504773049275177484454812711968722565391737887665418591571481829271097317572698515420674116383448093796707291753085248433518540246987505885144429512213965602913616411910253407890157994158052748862488618564380533082058160788032689049421827704314587508037893007113716084535611411739387575893344240545300383814670330105014905955702045355392083928348929488776616466416720328957290096804140468465503315182687613940157647731073910386806627358661156023358395556985230678002449431735176912003835317811906424562958020830219152360709825707113263346106935286663680350485534296951396350127772489216596016991223522904182230420555543159580461784745885796909396174060412533913827954371356198358491908415219559208743903378665240754826900909506984890051115217351291550515887271874550075092976880571465970476731559850216357520431207812556924007377992861414946009602430543862527366948061426748499400123890125098251139750391122615151172486622154041927571138620961678019256691144016871587438403496476428679491907155497224352690534116192346603506568999545374889734644644765448683965478842827951567657480659827131058341386645225260334380190546704626549263325210107669060353885761073827233488611118083543270411183003106659187796240574305186489291705631246149163751454820080818622381663187791017375485000834167938362293414034883717950867032222226206774996122098342809537071528408662494218004568198405201218982521893381052986236413080227247613671212890028474151296536905009592359671475183051984851913095592825093512236454463267027250590806014814071797938099882673124696478001260247141939860618633029190267231230812842578340035782318668373272562419334408160859322700847992031299627665875616339012488380833695767400835079161662702001417895200955523302096615369404247154650727796225994188971446505030877396156475510826354949934183151989727501115180341015511675241840106687860261034072905872841308543262215200369307438311201929876327138105072398127112641385815873831755009581682333468000855515848074762119331328876700844137474908251887956344312485462407617519014758246078449632190537415028323880720532113964470852077810165517145535293648344400650839584135995629761558834832762849256383543475016900081450696843771969271932378970616321260415952307263276906513377792235739123186873983089060598378879743959315104332340166493355384687814568716467263298129533460947071265769930840515384210315952610450778988739192941955410735861242804514591469454262425924213908885317996330825086181920569167339247571055024028379227806431151045154037354307058207363214398034983320942176099445745174776425486293827647785656302615619779486952011493217246089237444187444904265032598307339725763577682406015736019198909305710832720392000858866974880505246606420070509283131750592766192502517591229123715591259793350213571328992040267473359536681370143270479238177831868102901064520347373269774625286030855448188914522527529863481622337500874440990390729522440546159849076788841268171769390904059693558659086655310313957323678945345496179546208260415088038873635478319859067836654821592878824660048299821573305683925626471965392945640707557938599070554694032887815796996505498152596985491415645062002031507190737679742265398731588842533053389781072660868298186331550479222959380077946468526835807726592318634489485944828625356867774851615124313260064198092309361939071347443063534788636808229924789934405682310650421760158723708290934489940606974351384567816315375193843515874041447413583931020164539655880217199555175999427227750561390978273778737792802298333808858904125773801397287089464486488256043696287490563820339807254167740309789106489401450009141469271118922373764607818041251096348076393266933681642069802597838379197926261952341805658803627638885038762416505421292767488818346616619731746140491440315939751895793370243020712937188153937975447956654698938326324023142318387405166805009423518526200418337424438780462334742352131908510618432327134383478638531879983743467767385004744328422758188807874654118597758416243056203652856335945820349262341840709701983081714469027430545192599451707664019867788646501369376412321866677551544922574898918382256748111102879100841074766098628739383616395567020469553530229041678186635271511024578174945096195920950303718718706706281948222870861473076291225999644203320974928767824564273419192211756470760083740458684490950603489463348887940603146843141452195004688184428117266458068251985237786060743978938696469264970620981344310914286485177335477276400226840108387881963870794828516912699868314986619618961219483683482887896462810883671390175837924838074142406752729509650308634805270993782793253254896306853304834791663816024602215610518528897012720910285761457267647666251782193521668042957660536958217313975040316392948679092559155862591864430525445520803745800245916644561147003892083955827336333594562586048019199902160565767366952276275051962008930350673542666973699506448898175872249006065519962639023232867019266834001344614798832433887211076144705667911594659271025209845100145260893654916271235503096128518636243354309313148536850633321808449005356719209905277451625858621472649676730349004559604835919557556408453905119393179153195728602763811519114442306378229592735689399515061429432176358451233587816836264196792613697536713862121834370170705295066092187727308116071051081482237866089339975826635152515296769576990063210249878241535334580880376138732922462676751188351195639889083172977048116372006585744078668531320312320696115357877104857592279655151029283588779716788740114777295418087380551198535241465417366411056515961450369884240153967398147533144263854204685879079215606878541422169057921955371066004895334277666650754004021881746011547703656182677252616534968220542114752017153645654703226277856155267521791106740683811927924764461367602098834313605171393784055063195165575876498830789340303354429262984704186764188556414320718368400302568642068045439946906063652021471553214389299672936668221797485889298547993102599189939480715066081238737854000792591522118601618218022095194519319841601353352013345059079472587424748922748455711812060532089261402923812437493803319209557221656090505678715991463654198905988660239800073123121040594014864602874681591592681711741205713856537908914737436020987064588747825647807037375343847997463660229048496735469858137980202548467115862149748570960089754669231074738051440476270462717817520087612658322273654886100049215519537234035335017754171414374290053988023388371796821852832140114063927070694827475892811542381708896565983216709246119956812142835558863194174204282917167083732429287621582823709672603818246336585666031419823435297847638747242340742773630361297905204669245878406534180700157596079208531608930874052426809234190523744012525328646762954340891055128172475378103291596852595815727112382803546080686142681848906621975728569403762083797726775963143968607986879823988929363438765154975323258393738857350579553802448223404606685917640826761624336805500138256605962268495989515310449443037087069049841219276774452266992743011828590352858270507735959290649447721591128532251436232617752939758595707864751439212778384317622408797982543530899169118051375658546581752052093168095684903186711252127761642819736454837786431697993653082744701438192374269736299935156352682968400460022713575958952869596253261095608741684771352778745377626522439896929132536653358185347934102106500950498340654192945980502703674339521646834303321933060822286128557113871454121693219117271119158925566760542630199546713898374210791301726568105186703212179080770558086064135421813121763764663076975650698209795058924752227914457751441437496639351484472040497086174153123281619867335646960975428230216522112617107813563208117063444752052553556246938930209417622498035289211379008867383829348855495083377588611670622269038174708432740637297980007628160188094824222716796114437365936974165282981968987304196408615762922081639206976221378442033967649615654880976666286394141838443037304123388469614931485255702234475092168877840558316276874282563482160267718424532114796800064372898769801830086512899647951839943921073181217794138842609282255535215883332464679479073485556691064460077857865084690184102898050504180592344619584270745039869137147333574343599753030479795395302356221187323556593612544755750119085868129189631554612145958122662827913533915026197269588375207985064536341103610606013189941793952780360003277163299319926939750240401773115062855676217042697676569777290458009599037022943070109705494835300833559060482602215042638189253496246227222234735620578672513116710322312686285393571265921739853530818024759238604370336819255391400904514807123647791107873037431590774294191021762918362928067885788475652124771079143436202100685511009351646828538385089689460118464507116514776828545562999669136865425090272038955012979256577570942442046571782941739252482047608717369315589133480821391886873530687229204492147980392130292707603485417807249018359107379007221331591766969178256534230268630622720929825294242458429693028342992436409796497234314346679831538500967834170195190276802701900182934352051985579709157932321037449912223412899095301936725996217033958172594067374831911482194269667370442545107158684231733462244136176131511489115313754730979201677054712589803680649937704965085976917514286607711604783782007283208816429447607521404531463871569069347705057098294007659614921900035998577146245601674925777686892802731840014396058889991805209519421803416196194715472593608619708027803617026465787675505103664333553171541729269571130183838461363822466065768359380526507550999318314901009763615962977504805635249105669139332011526701662174682639487857246093025968353448743492141459115684555985836639458005364620127301992296132399519036076075262331519876705306290106729104070425719653685000643504790887646549161667157145138162627026403720443315744180116828376589473611545725241544343613800566753953454768593723394262179151984227253161479157055319980602519196377570199710406591700257414874117449187676939593085103348177724626191432338227669497418538279918113506827220485273433395722125847615783974757629959871386848341280971139889403433393498885267454458467881503847617074184355753695510996013738041402189536996870900802122225284719714711134458436913095828445918499829343460722296992770194128712979164559943517090405449854313076550383237417954615143308732003940869324525623916854793264948306367667610984411536867908402524044116267392321780044260003588806624011094870516490424274001992916976000306507477063477802890257152544936238765478551930933253381553251871828156317399808191719369506397552752570622054961032258587588011375392594745332431640771424879085879102143136554060798175820497936711714580788350341628476554692754965173915158228647498769763891861076910711968914202628975880858486535648138279070399104872330376933759810787660460053675873126900859648018797632570905146560715685832855905486066959066318248966982385803794087864536657743491293229500601579635951951718033728344456770431804060302376472598008528608286156286315767616958659991195116530123629710025718754412233971891275965004198932872288007191636454656102241504282061716802419125999940753108572649220927951858346719894235686913127325979665870497003043896423995348474881457720720965216690763473754507741411255407210342793663162646840638658771643499338884950225920310539599598704999356881695283105096732699513785896139460345409617332012841327704492666719112997937419222320456788266450790880702026084728442421397297052884877027102921135572061876697849075806985254576729446944916511893163272394612061504162358290169757740917793660885843239422551993617277427112187098818437929166445633810428286235775657555069007302775537237863301856518673199307671335919749234675149341432160321143895489974172297410505050522633448921367741684943307185390818045784955523747704557511498319560162221120275996518726173400650514477819049105489471841699677892163951715815051158227343854860214853642779939471004700457208365838221638181140238088501335301661362142873113830060180188782273329375048411255257786243598553447539864220962108843321662800717849072458928965746149517226395075791872567158198017486817311870924442201784879092122790544651953580858321366969308280466858291955433305081407263341984651684875528411796233050525048065705172484563802254506616036162850826224154997271717414853991548478851361379219674033600550851773635945665219257103544145794156099696047915291893155837088763722886136729478196367190389750197779172921023862112927129425364822880705588991537157745069371039730521526792932528421022323427323024371937614976044002250235774894801457343204758053076393727548075152034477636158720218425391934164090763092799208066961231723272803783036940630523642466860736636587567455164125820003432506338063065978908515831145744571312326353333420823960476999162980874698977232750005813671886655521533281774284967248016809874001514684526678255128077716683224196883059746820630929369286894940935916046476264103808384405308302757729542719952797259071528212110971217808321458034149890637194323420170470498778713453620617108832970588600000793048279411074570940270490021064953098457794203872648868852410292307425143991794383975493363198114855729609455058730280852878908705829123200539091310043565245177776807729468114909799008211811507238332738291724520685719824009757353587809488525373177568466825057536376864403264936442972913401739119420346727982886366344722806516544788119198949543436892904238398285433405024901341997971982757548685351420099084891517597991486374467677101585067191513980317320902546189965653574658681319529864957273538862833786045789196264215182311799119335930429940634259697752728349806347374247343562740339008755126729889971068112208081813320752854055944925558595375590066747740184177839666273252068177536643836604403755861097201625578935274473726286107836367233628134341624147051992533540295997552596393009098043938683450312895818165678355242903081030455246309058075095877232208848335871558002308594814548604956805015144617199605831865986062579957810489448041252605144921784061991197933718005345928292854772201455005639358229069644691985129342831141785343814735319772679846476229284069757003251774216400298537354098232414087455314206754592351550091379212572661725764001058061070284483211488488583355630507901371765097745930219958704970873723121669386766519489045900952170307037029797636512274908642407055630752863728129659401985494196203582744450378533340590229197985024567404300109183098715728738755179547333570308751183513347771365822491073959894705289659656776694133256883361867938415392010543002706899493722632739521901463588952515326328848436822857272457169675605549421245454114263861732613905567632749284772115219608475871181162408688215639514447668162981511002509300410152265295524434727576457351690366790850803488247745296168824224238776698074796141923561547521475613542613219727775546479916426232193494729243865325726307137181255593296109193977722101867073758038344609146550221039949847535254764814505842040877297014725500418045229468282305388632764971980159430808219316066999670694879743075280632265865869791499679585788938243780684095269288779230640456675381900724629641841693905520254645481010097658611488145952152904523697301105720231162389519377300922491129875968902990374936596493690639462706701870620092551218719959428990209441349396495563267071332449025776896046846754834867432770071197765479156068264408589390297089995834504045678898385432873314816945306891214361807439772575434107539902279860100812689274010918281189675868304955144011286625515520261058491453324552270753933004274498333272937751242288515883866792580010078798288438729628236480801055081381596011544079168385519858667908441962317447460652240671688746746325698779266877438425166049701858361241074907622512509605665624282461360351620353819950630186876616146717536057565908149670928200202785956504047980898722568240708915653554860188945884621367063612896507527247367905200665255985059454644150304593517275217757329725132852673640444547457770595215777367165920987010761751742075936403949986524318602097463464520926679297047918448815530244633067999338282877090031258446202914246145913457834117962296752571973022363785516113470390393176523501563825946732037972288228786411517623820928969203978915052759822121089674583224831892829023544804336804980093519381957594917335628009975462305389737910215483316686652898113033711049904961572805763108289979243739032011044148321570583648547141129328495438384719455924153622180201926185400649215485935438845480163838256220197248824760001425946083734581686874061110585915061216426331688637274998142875955219467899848499998810966389628238264578847934717524509867936234599685611015749561109698875897172948925172010884575398707256450031139236106539131512402162027749847830422932570644100830070903219358493216888359414733522009410943249781809188494387031847452663944951915995078832895517579063182453076409090617362397589275991049102649780402704837802452788199546830469732336461176985609714792202778137112660209177179914096846546179284596369121714101508432515229385520913637462843132315465944603451367690841307335541435606806513480482084557109450848640155650467003351962306149162662070009266618628494864095664732234899546940577226430553247723262485436069301567306888807589096644675722025755614459896161173200061576687811654561139503610894737610226197994522484915336672942302062075862827844420536776703834622545443706810634211916460652478917309185128122325876052875977322488703818719360899413322732724501939227427293013823210577575917457281403819220977597821084635420551392410046100948773441361515285178427458853736747506540251155078998240650932190230662836156059351069686788419679906603587765027952116501602576286769270700722450012100169248357697949505220072852076494330397385543157096225520880993641756670925133650429105512346113759483246709046656256621449497173587909305568587492416930233633848603847912210587818766223268411423175999714372039771142116585387705477406845236098437113627821345775668639966180319565166981532874345465898102503741438444454571194333810234564774700745154411962195979751714500908146822738103276675876873990711601745531359518804347392188293362889299513628747917108049740996103291143046968030915848394395438676567750015708235620885200959111939711858870602666321580617597327683942723222064775241440439185388351935742152589570232588794210279840185412939528020238047098747875653590693636807309294463704143703728117254650695585314593081008936398228621515385530876591902529962485241300912647616163394919888091029908771275485750807377652937684210852099997139993064234354867300414170341674403534964265953988446002557078694689648097984050304606307408827633462458858340218833062739635619402307802113420367196134252665576407650211535790953475299524189132940247751449840173943278590327981912757114736078963070297833729758587897976363766253141192444911934520769768417293569772125886714820505386800714566039078833077644211125348423182491369327022374029091473528761841259510081395625136135864512121001044504092160295305444030522236625871577662327440086900006844368122259489204502180480302398054840045964534483454504903490549932127026083946558379333204550576578728787654576626819444578706686622895010587060364969520288284753773335226872967692225215055320257059915374636294087323212148941754350183495245979162237345716045426477238541439639032423277231393602581954442440472877306137395374627521657994921244162030507641939679513428681517384494370558130296389389918121089209626591156390344813759666726427060206079855422263860051296218972618451365966393253310630781662513029418800419431769658370418470201289140781861814087931714339071748259733351743190353519153667274465498565603404859669191045271528864727957327959555436536272357886841755754170085371881682278423674644168907082606770700855094159880277773576296082539982188423169152521779399248028016597830151184948148165779802065281212843921998977990867014548986306630415058087144233055691800336811686435073531879349291300757781086965800341116141915052199614314728467229555224595574864058039127825367362139931418526125443666867058500789135010665949566346820111788960326875661060040237965311449316637998860341270829055122655714637828442049933220477801887294759802568247074718209532837537903442000583256730994122410298491195366075162290246105703138616655020649064794231922171954331072864387297607956241067856266547754656471994356586435974310207964913918910436619135058667352426962984774453575590220216099919016973779085503657554237398358806252725990529596045849381700532495861008600719981116846521948390338902426595992409570014849313321816559997885810175703230298912720319635785528073122550503422996722316398774650439101754822956001168008857986966439822350144525732075659458278604910579991168925040670588560992135253003376694437897649456169333222536164545532335274515985509826535192921564950244155789797807730537728107966099189920729893095065401012305628448771585410333101840586185915985065075626281608930073029126395365967198950307361030207321597810056720020291410607640099240784354673724481348163726801590089800271644401478605261312119576149343627800487171603664902985573142654902621333684608530995872359905713727301343676776395030894139559243760235598969554555076145252978233752158256269276678973353114688840616100966795336529299857970729279308942330538662817856012613971232816523244646148027035527281629948911846531408390599366991968510123958883871218803153425207841715803674986486944805187324255372035147742566372116972464581687130408324203230782759306305895941570356852087383301412284010884925471850662961292207313632131486490321578101769978637859040316436755418043788119421233363518702608045883323581359466210421867986638876642071387717317139954934812876213796424145235829166532672223140305377577141420379482851363811126229584935999537269465514226031220054676875439087578313790179960003086703158311356100253906042634613702709482304717444112551068365819758616534495877590798026440636165268912624438712068866125233240222933690319942283157801921952747330547760878037685304337538146727132749236184023779254805669962298770409269511964894896465917182315853144436846850461290550501384521994888440320416000748658128103984056916368217103254340258212903026553787355657529359698266257710215530234269733842680361505936854909413759579841026566612831446239934774438239710972076247326837534910985263053589560081299072663870499388122021645800735397986150251026067444714358793873521816910897119311309858843003376260932023087746859504768174809098773970898089830629231847454204198581970037867434825318441384488027305965997246240826974997677190323554098544418906609747698363741681847798718573253120660438200980144095508479910667405731915774724067869590943652913085317182426375716245328529906073641135927512423923357728524706921915036724984478920405652205169609987307268273474451891957658874911432607211634714760789265602317003912347478661494173837095855566907920997237710394793835850970900107142312117449032095678358742790139541750809237306282150633504620207946506525207765840312056878457315869351196970711945330950914012213850562237653289698682386341622068364744885672018884531469651698134073800833751368752872794866978223435794808041268219558323867548691562289701490312991006576918089440311337363507469180665900058129070880358452183362667283824110271522530054640584399204449256764608325652336206709613235349771298659818580647870808689604533536610655406715898271925246495825035680960476519941134242645296952707761670203020017435954179342850088194220319766471765029092922020704501373142482650220473007179430331806824133294741557861876985976265279761393269604107962678930510378071660123619408413151948922781916843721513600120506630907114016457414071165310216553646134864760075723487270071877567756163031385516377821471402389846227015503837640177945201603362713893340894633346500929540843441461700132524378618193413845182827614090282099500156098931989236364379843489696295431921781259697624858792667011786172623157692233430098331950507824191624257176103520887853828545692955904245849306179766069569725008606473522452428779969118848874171581129481684257834118683710889701937679686784802273479177875149128677061557469703723032661348212327942526576494821945863149685947331984396786637320804385643159970620387875737897709525958017086088546514998121621664979642355564331890927797114120880888146929927235322737664511216571882195504640048728464656903036955283323874313969943798141470232986310413726495135578582885463147447633242848573516926213958787381157435961751735307049804344410419640169124095966423911603774536420612471154244631439790048758709487369796898214849697991835132802568420812227899514714619965975372926981977569777567962453538498266248681944133493399410804588715285512040060544790268667938952065094920776156989511004875363216088684837866264039870186900789078749473427337962656619265162880039331340307640442079863035533576170624236367129825769358532462485637076280592599298644066235398635119480649711218003594507416421996164969474966446738682695219284575373351178083639822837849063293309888532926725763323480093276036923655233221673151755120259304462564597143893125884508042602460507283892367332035953499707072775312322915145903584902507754398950125129295629264497897683917523071186807144526690857615141563606168556086850068649004449343213482081372688058927472442284268402378259632251396402253196243812416680589869325520910144286289285893698217737451853663517363146028668386030409057986546400460346543468998945985660572167430654799416821262226529956353992706371358034770781197764371722002413057661532457981480610165785446055014607253909821078577419246595123790399456087773406154354160296062906070340629751668621020211023802565046847316780957757389406446335417949344115229986928373721746862563901389717496245483491848852960368443495189917823121599470488632913022569478841947702508863058991106571030054187643878055647633108321504223028275252778368729114585512253830636753984029945762609165184899701744637838597411756606102194924541281059491643336849119374168135523812563218910204412013599746370032517077340300493532340327286649033673140907941380081685182867304401423347603719002462024880785459202469846058536663860742687026731093258764698362799381841139476508687449870479597439315706697638120105403761543999329348765643414315534631421241779374591022456743857096075114444824120803337008130695681374724231930707695939066050895436005516769979098961193917539300791165299451531741808003678590403150678576619666126440945409159883489919197977235493070226465063059528876603362773699499640821716376543432270576635882122132076965544034585840454051119596535415451163636124622252767014642403742641582561411668946283335571407895685320117128509391777277408780206950287965425007845306592845474778386827760346235928020599579256572627887167017512130595599313185280435382124431935383020801857315576822392646989841153967131189455876563159445009158703836322765454022416287451040827335030968245263064425420232668539084183321621808696372654370449199284128597268950296631924354431389319702608059560677385602544720953272404985998316717820147718279881794050484418597021094199115446274445473108318204144178547273021965483685496096673125865008894015618489969008760479034064424070293873700016521271792367687707476243214970645298438976220075314420972890741941046676963502959650270947336974410538585667605845279869182255140413183136456328911270865900415742197596481178195691341089117154973908596255812684786975901861770538840560130358224248602793395258031797210039752410110258496011757511522251626123324474796440069036934269865205510357054116445226720426762579155625625717422151200048400927962327307194339598033018062057095507714165307035133343771009141511472674685210867504604784106178745112365631354069812640037378199477727801130829812284245553999753964376111667235528757838990435212513342517442662862449473306237605714997288315466106145180336431389657853201880435065460579335981493382739255390288835640697453608609211649475385859325857506444543501456631015604146833209872474781544043697080178151674301929491175321756784924129998448891463728629930807573800801215381065583999751102331623954009216092714132084545632282165475520592633044725654607074955903487806898161227729917812099674210200248217161346421110142742055922483321473610374633662006940038983875047089739594851082396537044237054665421243755812354534243998268258747547095332538019559187115789713646051760186844147321435347933484977431358855125098674795639557600121754194843901167539288019530819654361968624069409186806609467106789346414687330644268392775593032008042471134497657761101802418089407651302798898783838486562269157175031384323986457373150556354925152790570744472492536536422776169834716569776400440488456206267001795639550843824589864820617433085084634322458042128874736571414501760531561687108443091181091512162026359918859796252437608987716585857760300865239014892251546212127560045223659122846872801573015903430373518562022827159461581821887846134908090144635890559652517064108737247440138671317585133635645291482262635080965516147965498557219223737861947693070486310853136846771266801649846494655191721314469596741751574428700765611176876081459786683822887354324207366852750897577200457700947932041314699134619577135435805659726061754353795112649822835310643830162576039618541368600250592162423369632542779485416368016255353777411595687867857334395614343966517984259998899650597765842556240711531581387977168025032470204569706122822971329533361257235513558031907440596795139188952427116277439936049964394748666907722906331294468969074500080386649888998958241605821131378754521870717094442828465452069243057540213352901658054450999785136454186700778651641915997250835982860654100120577246886462207071031679115639900158622187160030545142789156679902450195655052300345862822348285506256682528256455284120504650251616076445295273218545845118337282985553522444390207451792795685614006587154284597821687029008329524184392567917536291935871404159712500034657110039273098818805385166285831971370924599106507895263356783976049223323238218952418760904005298379410212716009637017811741007501629525980482550345883580773406364805999494984918851266354948564543663073186233554415789416428803747384017831559087050657371499319383984935365362223616336384646347344962354393938999562023048777658326771542217045892393351456937165456011901992791114266683092369238038850597548990090781125469547013890261806668862813120901112906674049250488982012810840221404509405161153609940695852823741054913624729335533168173529099113185061749094529091971350960608094877513814593479171575250782315758081785325728028866981621281659419196936355171142367769542222073174867283876150870089308574207852338270024897333287777630326115523034772324636965610507902902946202893908208128148701069581483226521640070317903501430134047163745155874577096964459330810608907506530759807544358697970023929573617419041443816013692262723855274364080176025034082956232044050297867440815280531571216647961747597782210955988734919016484578580544006574326790095815106150351596348623822828415305728248414714188432737745213133457844875904557791313236927683461047171180741811281623213107018652717099201091847273303760267588745080410761140366909836604491974188203475159106915468506940235739694893350437970475773516522465500293405017490822702459925164584154676155371769828202168855097616529715543463467752939262570412157371655538623481276929243241573326514779600311665520506808383006034035809675144265452983061084630333582411538236855899822803625759170276165491421199160125091432474086252219493997697288346636119165087903546968463654522493410479912479559514966376863466897378267117571363032367708804447611311839059150740582199575100366298492192927784497357513584558367052541122395554598525228556886658068326335809830059866978074173402184132622064941529873823134936513477307445339033803287956578170148507078551261718950861854034937796058080671269226871209942920447463060303410580292598583899339520303356072895735007750571704166469482528804300528663391430277775048750115855756504932693994093607576412275779740282284415868185471965612123949038296824580740073094309375306340829112533916839150048979054175088093689829554199149528075102331112031690266798673195582903487415289785813111314769080638532341982760682937805299169443887345380525610144285558925079749087850847933520465105160952460291304599962211026367240583257077756485041810444633523116332890654044041918402130080007905474591695716244185246036798190843904912065135686420513327692615922118259332504510477113087798546130626149629008611258744080530989756748446749471009869341361973187976482067940962524584047754665599598819870593899174439936083647039107209429713082854857608741494770981634858817710002687881531523906894239641275366815005268313375282201132722425673357239435941002841544303375333183886737949334538267751908705763201576606810063707021750010577947715459658305536689267729131231490173006675302870464416200939315681927365469847986616214224757489304887624935863515764006042567352245305274577555099328426769678269995011325242314352950231557216284778113534141984141670032106124238327147019168043543638435631133644582634328593529486173556216434930924206843286055092497188769610833978305692599966742066679443909862812771063258096661686468004811667731720374456942324877218728913025163663639954031978140675189346312269612550907386354654027715969192421913426326626950335991816505549232654077750454946887993092411880772666904942209096859837157840723760364561984455168917373117259341471442830488164959229364736509103360798807908780532806052699582806188898731063288840649588376436622477353469699162456962635941696769902433153411080300034153399383238662746507659512863265988051078108937274887059639764025849426899833868707569947698026768538080569125487847604159906091726608432957739831237129557726621171484316291991593503784296756586896233411836658000801167723223103885764565980401969578747150107608947274929024451100189629605444322964698722335903988089568285534186044953544846311453270047049289589351933566540248999134477525413215790396233993976498804845189161304303766745005781349382822593172436752233674678355106098549025969334816788653306536479331268328499877011506366763151669987725796196259119535490245722532364959064052210245695181332345072644207989763548257712468328154178694810753596491466437715567709718260656556724503188642554411927433068134765823038695530711504470003452613924676336854824998994053190558519395889421809323967589899601968371564300849366385548791528574643156422581573893686130015457399967404622942431063975635460513384468130128486347765471123651775445184261981673164752239777144999005850492899043811897239318928109314923996844394369660486134256187697140097877431747581093515693679183510494488231398481810899762227516096666405452952825244651709072153644343272204119005912877585607200370835658335960652824891119561731220366934773883709137324466241953095063144691639594010942735510728350688399152341970017265858141393424840694584583106573242562978723148873489298497341671999860833998904439518784871620468637033615158244519100775209530622535809399361658735330843198284198490087353945317030676136295160803626117937151809544048110747251685007640578967823036396328361323867627947861812795569350537952626606876416124184068764485327445139667804722473028894523343619816662667032877656943754795478618246226398678180443233355177165143398112616742696981072626010926472010262648599627574594683542090852467818793318956948352906005747242469773201085332892637290361875730429734217982850934172202490260259240898542487139157799203533840388490250648293828047451796726402711089031278820284318006983526313934462269629715538606839194853616626586601602947249169687700023803440455297440971972834427093525332901817774699339462874963206669396177834626407268541146863700231105717783535369286878249549778557383201173540453031946165782401064135828923822431525203025710908532564514609727221713204265044732732866064729841258165114390942404494312597149079638453009460084843323781339961719682494154979115877890099128174362561901393457546633318514600209470142443015208055122462672598547627584405584980261531853932636987631384655557447749735578882675979524101081409045888948192245469679444624525662821960361117652306838088534247202701430186971634829832508285528984549157073629010854086274075723738928126713614906235356822259843682841183191487930794427394174514954763242137566810264900463006610984182837185955654296387074364162589543248530601060534797332250340941420585264170517654278551538428264426161267403485350350446986024910128415019405352478798411349547803570307916966046720526301271601126648313397874727148715093306117690767865968079957097097224270766579160573812051751229242146157294444620049167923486524826013270404367840490649388268009804910982532334478934094963077713898692180282939884855456857627608016347121029191661825127918341611477005945732501108455257012722180178578735956558363384164577177129767046527633695316492349292260407621417654541038952933945328757944415830123525094071289057825585920165327119330405137355793817711160754848804795669895977870062079732993753054135574092224452192962780152766501763184713750612336932626218658308054444150795063727300731731650770298208435041805144009632581632245562503563572549440188784708318010390685085924850677315235811860752752326640651440270469407357833165415584701795434382702927277781829216698090607380325228581551799818788980730487846119889023822281382798911473495573118336377329065880404905820536677988179791682226628284342745561217137282309566777116185590411166010535194225231479492219254087651944128183515345948967685649412060146775959142197014503935433132526271228891620593240004994045283171802387047134702819512704784288886976756442609132627659600160062361164407175853710596007967408179659492593398867147718457424023809971721219356532013357078722109004829847247921354291441867801265594906439459050753380518484372526642783561619221555046647196039921988687906838581902969616829326593156990030246119877315884880380527998008806039550121545051628513450686298180954989494317841858802353938708086669086312285507943420229313774002835130072516938971757363762547419111849082915509009261885073374054479347027520202834293871045713133168231568576228244189584712284549854827118168619999604309551518226563823319816128610499468796979440561514914786073358856246323479985010744068416093164340802906502030887564084791158317276434017002088380746217789501061006718212238343484026106343476696477718584587668492980871084177094166316385784476699255038350483067944652558759534544072872713887853267793634004133430493359591736063054057656320201058984094252189840398216098192613166164465533486254067027049660189711030731813019587935953506687701242495472720143036078825931482158794499869373503559197371515350089307954597962513357561892534691708143983559524095249097734720811210924726069500902167768103735910866804637641673717869411599003189966323206784858961141921995192561829185273053417716336552554448225333905883879731446710274959111289625055057806586961758624897890447339748859328686150431157189067972978373085361140313200193521240443524250623639896321807802977791323387371694267730330248352874962973783027880513133664670558672722100200278332335829311162583130474046097805708297018916588855131034291734334047622916261336956017990233991104921269509343409120744127953298287733544885252635056785665238925907017622826156339457698289785262450991479509757257482976037275768209047239816831413904120849799787689733562998108668660207879887450862665988034208583486074072974845443981792916420046853965031972860857468418529068990549005135124780910685572302094139949133744844491276244127915136185976223202094080376844368003050161528689665970241120156968802903586395577640135910399268095662961349819993250964478839269700945834405575523339266770942831025529029666755633188558994797567043926820430114305930477057059945695504940460795387992054260004716708611414517673021409845994893138231895566792616936054972319671444824649744828203728507760517943902755804372689675927251690905425284870842576636842525991784730433122707064940586304915302684289675445012535270736937143992509649009632648086382260541254498494857338193399448588977627970065550287359185697700251947108455899204341368293907761780039459350522136307924728904248128741287105532923405732854680989957439551297661798252500578670118316934947455584334896005209238026195725150077032253251451729396977777616894271742017158430908748339044688973136222454554582815709562820593548141293707670316140959125035200102580819096479563628707785013310210638041438139818364300155132003880031899395082535289740168944503559165465758116400122337302783226066231233515925335906218207570864596296093757976879711452031655838856930123531521962167091556566981776380798449193755103283658955192059869005163726123248584430592213452540688059483656696419681818837481649033499065659119079542161420940998008852093174877163673273096233068986446119084770493776505588842805364842268114270887209430652108568597796192248885013295936006586462001636641808118052832235745791723282237776758975346737142612727719232588453703554744823456082192041459976140027396372727495640359141714900019245265351380318170641355551542862476263692519456492767448898173289488018638143156643453649728315879769133894044417658724345145979568264779461842909390120374934425368386614820218737690258318467970140588311802088608330451280205343562017056310139036761360537327485246467120105218902412821447784563615822894686468968128963218859299035997780501086373476390954382191664406124852907128533624015065531712486865714690334041674319330269762545792797340653914598887796156020244644208184961326481626709360048446572734976174170460822220621561826054464152577899375509281099643507710879492563518452961064207171984178344308908344426783950836564196228012535378781589377822404284899094298983127057648741949212546096815982734536918631960868443913103989354756871899164300093353418197742860921395895830532969979812038404636990879095138061147192599056627044828858000121298556038734491742110109939563161749209194521025794851798756087942820933294788498820778584896752601833528907923988367413118864413703704246181247857644012149282563454965876194418495072710339861890527949782112585002365006665011833405352689951935360264302557790352789380221448265346844252554787283336152367275873963428454656509620318328157621454635223519708189274702929375975542984946666853637987970526488730806995371931148460414392588907744350550622410879696366573151258333533500911007303049571341178679038220294165124974325645813627588957603500678590698491260883912043946933415462632393988414403047957364344718615005729256440106665989994855112552504469387363223016240088054787903029716365314638891416475615000165033688575967972806742285129098192807912916602447436808940289660280245084240195721646787773393228718111069065816626661956161847440735468902809118871259946269100028120503474109664999490675865186492836365335942757923620316047433433416449102980472352171249819703180481406605666561116104446807360414382894958454616464033397603470949355417903936311415050715757990343586208008038710793549629117217625618667431367892207200121113097828109711487115124824107197047823697341053678192210765435721798189703063067694460023817093285859858509702731724570996148006541705520481685805607577041902375640096176912196403483709446480840492820238809631084630856868962289479180086427161317768337574941016922394370606449066929417206722673940586726957362180734655245798979985648556895176608965817592651904070012457886094636255130187910479052242206771050845504146010700816407190155961637809085475514431205624975784702645378092557444262862962484779345079651473042454450997865940925881027967493098870984980679404599611247640476692193332184574978575551730792260222610224715191018513287368121365441868212556787608518812862817755380924426315227326085569092110997026444603334535865380973541309051268520171822938043895029786800687603074678675718191669468109553529571161086341650517323410635729592347959248003810111015676999828994333798482820733369135040959745436106159512025627424215909547742020674095638362380558571433437365464053059927023926112743534436267025816137823461123505634430264062727868284216362118537479746933887249270522943029178096907381520859597048399873092602484373749225587402029768385235682409076519791844871095991418355946207802228328758618367993755510281372726112248126215312170721049648358616045713777100962489412622843210629536619249921450681539959941941380504006654507604059376970825825846424812949536740864347111594297313734761046165684983849957390133678400596825172870996724196251615698398031553515548019784898164724551757097154178012526193684271547274672606289932168595929157398285033979383456755490901132402652349723209600583448676636760202388520836558694615451340332384897771817382167387815910386701801543564327622288340376208837422482745121525130200937640060366910124385415018939505964321966983307775589675558566487660700298011711928053097967017465894732187051894047503648153226561824887998831892303836451860329137897134821789371297672978087339634112592391437552425068528218914370634403811392044683176724910148576355646769638358336301149649698556835086921346106907145335778172882036627939327956075379720712060064537351149639973800465771595574710104561593885055328261201176547790438669971567786677635429347457945620569890370478879327148393094264446843317190503134766718937762624724164644064946910196348176247112887629902865142054482944766267296291119138953417487958440694184086648517338267543002034798248417861916919245955961722666098855092105266299275587490158640362949389039433421420068224944702550952770544937687756729184634853231585625680005362690174492923738210307002700022460259990712349019868085656436021789298150924533929859856589981596004552476999921988144912327348561560901582085767764505122460274759377729432342425571538216535394404443973645665062763916728044167132996625900041293878526129712115532948823736267108727737714240501353271187112792917396166137087802566723696947554917298440118853209939393576635483187778885026154521577701517662513114452074584808256076103788664526584349194896598911907845595113710135257247816749272065748738296021879309224292163669158424964176118680796407824748552773211375464297412999871640203612932300508195559050685249994142360080258276527321347780573197470395841864656239044240279060095247041157124020686805376810835252873221461129193188515063274137408686172379096867137362862096731446409972746686607769476562645881742083885658740406115972430610417507666132488109035720434132432531828475076294852093970045331095944527406890789185102967985135364454192079371239268727439863172061633409542998503172157481378902599494354218094330140486009011540363304682465527012981778962092733681460439120564191115987418377281979734934782220086024890381453584562406975549001886392062412877044149735582821786426927377854697493229384600694571413504872520149239558311831703986626013149038386992735035865832080945795247151423112892328165573577549395185462383108741336007531561289255732538616987810324163975842956367790319881656543469661722920229800496901763062031545536003806734599869710657700567458593553065371583061871528534927442164125150380595513298987173493051045299799341297326726677477323950887229046886694082437682931902988685650831890709158657700201161026132649669911335705630866207342922597504428436447370790089249447130809873327350285716959424066823096118633169525101338537515742058861023476905600230246580801347803052980517139792365209025340377529065057151097479060473012038074458898236776144436323882919431244226720751435524718702016802709852716907015412686921982893348450824583822731547768294437112922370214376866633109598716230745681200242094810194242801370655784635338407345255355897928100742130823708350910341938299393702606244444133235628542610620304931465750287859205518932169745118771663803892863855730783689964177938418641958989236838644661956187805943670174767052447131604599110509933188196612258482862850563002461892036826679278809875423436856786863317431424832012338190368471788349252108388472105570741226293350339396430557911522335426799004914929236124139715512575824429721228301001189279119937332869958081572737749912244739238136254122993655100672103520112984586532594514096856354036004689300356842423849445979772512209105400642421124526778752034014422507625611804976525387833155556850543537317811875586590501528011175461230270330890802057034358807348114231125358096483700905309238915227865100997275756205098832102604610807074784446584841047853394218702355205164594878682471390735994714687244716558000055958775707700774788924912617024369922480732718533474685700004778184722831876612055961123379858948068581989355525498542887377780674759357448936868717932322521310117314815262699426074815391033467187068510565886745154100447141937678152300605725371243353396596127463035427308417767797771276692828651947942588234349281927038204371980534188869351034318302881597809422859458859571019705972076213190409000406523066236889302072383364098783647742849553044234214063533607557447674028377186481621669071549157403106297203001029000560321362206767500121059402722206744837090460731479512951230956997312802390278835997943990706864210561761432770252457442389284283258064478821943048382088394369545383266382226149045489104981584936665308277110652758497314125177264325505721916277536660953445855798939171676137110337443507080298511755704134374251038041137904800857545367449801819863161473419179993050587473228723562455738085016733372828624868623441398801056418857008268974515038687501985269604962505308924764838804553653896216569310050704657327852065283650495072437957704372282739822164413701172183753368717459308104427282020763143823948171224120255268606309692763737501674826122192363730280960691792196516948558789114276899214948699592084157565523261933650377113073037474343497419173740419818571029618989920349825407433702843622518328189347075622935468006293749282170465731688644437799320035312457699403924799960484453821921587566912838018776251288957683283954113533826505339737514194377919209458055448063311264947462029609331480724614372515879850987938904456906611414558451047919388053412444362788720455332895709659936915474340036791004458382746760211378558617461776571189497687723662714326656154784056921264163488946882976297828118595187680919000176653877304098480143789699759534793455816230926556564842732803119426133988041588414455571711014710502009733633571835349719555267259045743383513597584164088774720025491287641286494593979014489856276482414706632470449716750625346388600096301790792297705951669407130242969700043833889819083479698165899130170234564635168626478725901419369683740014182742717442826055631477661188191507962014567878489791617544895337157815563630174136857298486334564308326008934875835240006235623164367471919798565298007154568336444299525928362001781302526657209255244962534104448143156020672876342604618494003914947731881544577601914538182782464930147055333768818754473635409523539629024267501340699497020523515506146336998521465539605575167113579620340421859923859932040434819792806035686555829788571825183274654510196276586656636921830601296530794644381202433228533127683313353976291921092452577442198498155804131223930489421564593627603392714983540273663617943274132512158218825524903951546560875375682695962481710943824834552847200254190440790188331760250934709566259394447375782681573309076418206517851625858671522847970154389167803305581382680067406909304923625014090506577272527560559222294175723266330913446054339600290630936319019350407636168645100838450052790187877422831532161596841223377217126773299921651984628333370623032069824953962112444061081946586675739906483413835238154808745939655196231781022654647564823980193309923662703753541689370546968251005735121521960463318155445053651513160404364378793057774239111848329248649544945923564153832192261392014401222279856130724613666946120290784304315944781224987032197087807129748009695214074946677464910703246096881298561243921186091071464456402536622128054689024656432148902540261591247083186813022348486507865339170385610728103910552647732745700443271624253546423019660921819653864446884505362454358844688223457452779956943387725402838830826006669754181891664032195767740555000735967257177885384126036781895896194087064885775328732689685923521681612010675019294613956343025670955455710458104240546065934395165716204502876686978802474853590503493790083945940705849762964370058711951760662539861071297197885567930272239459584028144748392036103273046005409497734906189540021570786059013602992034942106148571346130461043880929277560019839184666820673911049843049308108126565257005058920689790407277580281945508365868185416715659595336210956512864898462845712847921197705679593468849364181490770521321454215447467511214445170850087545864961183821412471733823620256845216075075843687426083662077244405560304626704453856604088065081715274457036513954910864452772205453818853554756416620001254525018167250141990382910923150749192207151601924306863852697015160980063387110916697990536964178294313598994307817926738244730426524322131423717797583996735633303267211770314637568691534117671059597304068129343199567529214547114063896740220658663181410956750748533580052376218872026285853162846980126318784109287531749771173417015975941682975593601012475325333148552386993778853019903928802734137945138981669896484938205563794515367319732015216600322991365920052471108093588907866899098200689033375072211903724381663393839662582328497051854759958131483178959910995442308649967658309634066874323816567652755199912965692158107558929192258896326134663160968787016136387401068514294018231780100372384537796759196070924546105530712840909240824046436109429391682091610046402371128285487425196185764524066260090010580760997291051927505039869082279948267635725921439075124164196486708252341396354273177628287709100049598073005689473749913008207073784386512652165426270700257105618188276651924421354358661792130486809983229279708615469593603365486283381146881413637100440597096170118831346382666157582144956752573252894546860664692379470064964982801297112767712418239619178772238049897874216971115350251870955417692525301685863231651504002024828099485383964563597033748538974596070706388385710254602234042633897787444142349136989466243572255336071466745293115617581785198246057531415465215829394172336054461258816905131767214269530999214555397413856234011063059667299124619897126708140665084121499104864525220088361402942131781330674036749774691181774968569924520674880005012128608521232671223375005032325125299413387434310829312474599198308195306503447432372533869663939888798261908868066802303242370506465415123454591848725573665594702638221155201484172725159631870981625094302373163235799741292713098703401764844896982657318978947460656511568588473547596947695777599098523978279297110219052881528090582231493974760885364140411482491416630893404669786596930461390524246202724610360136259889911264242730114633201736590491768840378932733151030703891799450017216961622884723478875225510968879764179584592991272608417433345391359752338573678954988293800270053477233739409614389745589373254442406841267941754487305393780409732040683211435961105489397405777278981055572922775368371004742766522531910897582273847760334793650343458420334963988278937069359541758417011292692099350612234476140842927407490047580273104496516186917381692373182144883346331650522114414732353437846735994106304966036867535023576999552823985382634357112617143273306329423547545867053083445189625608709953925930548641672673400447697872410507087804195633114612144730123138049841768244575369826646177766257816891055593586360189193532289226063824964733107902860094358913037612492429278999972394325931927453705848712062322046289047599005388450828643711651939576995256670176113659672580657458919776080035820795120427316172233009858950702194319500440744330755242751964638719937866181670731783243252820770115568072455557962494475785208428917486972235329193158371937911531821123786527208598237467085435305948985673231776410544407252786841795037842987087677196938854572885796845926898204213158463670327202616895664786481240560781664393674712576433270904145851888373207424915580341994701287982014999472704313629998269772076400539519322671494138829197815012615716735763632549918525197921908234460777497782547503244354603980175722962418613423564949816765523321179895413547704172171954195389017330957616305650932057273754972804579866092679482333738206525756884471610793219798077294072344745680315626432973741789584134872871756714163257196989923486193843236324028130723700416028016794343623598272942623600696309804275975206130289787861838143622259013741246379583444628444113311242016942658474062015886305966521916752611986862158785567607997575529150730035176909935340964449002586146225238449112341102513550435837574999745688747552857288799632999311748679302467232304362127266470159296848966856051791354208824741261743019633087662112536082623778473969601941325916512624735409887965821654878584470958036342116665311516303147334134361807767076538637144655337935039390425129919167752510938375778677789361965495532583227102087956809340704386188771875288626378069402706314853455712117694432752252533979048449342193851805742436334527797583743957090278947124977784628431048846810933325601942878819603824986587548247647495253981262595069762067522483847207116000837737254895900102079564186563692393235776941495497769157165467325097914525097116434563493200928165254501744290566240769573033139276516359094421634206504580643486819522751682446105377365145067325319458915197680944366342109322112209958591695279094743697597154534443851183694464476097994658763040964523685456916722361618129445007270557842122844199609389761225655158788066712991829336857502667092858972833077633086012926243700540704749199943914956946787239863859040598168248826511009531760053659531911363724622124808881120889390064276912148512716225300202015696341358220723021533969945268836408652316875364080002878082613111155498133489864024665174815472378462160944218150586518135596133151891185970249908074837495239050441476259029655010975807013177884618575299299493981205103115296291840500756195719387441952621548117570525250941950185735488646417100182851991031668810601425956719639762354397031445780543234535661048536898392290651510201266962968617351766892112876515502547749580851306590875886647173709128339304202852552366252067941718095808666253254710512144435334329274502715884664440398700515016468349831192309107433136809167053554053612172414015301301922804872236918093592593728282324509717356037186491564762418011744451709686401186152991827227986292523356935948950613838075069643130605174325253746604878527832027909135388423129974345558066129700368003786883011995748875265896839028105785569575935938829284149648076824116049803244270527831758141398624556739180638784268374232007990767456357109978159562371063142223381773726504771506188176705463348606828640427707702956391278427187814611723618489356296384486631200918306286580224268939664574635493404185307971633036678959098806341871960351334790161916038414820112253041125090014018259877330817274446858142972754339415669024677841910046251915568340519909509183289089796960612509508912168348972924374289141098197590886187989658272797941345126224972213578781261564753416277158121465231358502101336552284023994934091983547714239886251028315121941313822544735030564186312031770764486255372094491820895569896574457661423845272818807311292595152950226061136782279960502068541735005219086996118076029280068677672447921846204055981091863724924474934227431139597081312725298573803675740839931813448490046371951813127120308352750806887564495051709926873158464012496966915699167868424973749163392190745635460642295376649238873470151139756556696122166601527498125417242399414511340191324566633189364768019736375330244806859992885866483467103142592242201813544096416424162589273568966981299286030650171450685195816285436148486058521642648598212618297365892583833277219393271870437763142527026896882086834800542674110598111749128068579674344664890740628556335023329584645922474359089183553876725934286757119231969840579992788161359246505780515841610364948559671469174495754312376481307082702639673271009984317660683063727878149097346191397094052965257780630458016746035341339254933992832427216970323471387946361973728123047759632708383702199455380845927749943923788584677823268788757019741665048029897621803402259589218359178659074034301527088871402578579057286019309416716893179874918715498856415555339418718612497015739863438696314310030042711621207479431370419183409461456701635476895361232504197604375905598993449502031260343368293492512182286328368203279567433975402093149918071378932212127683965870753715564561269159823629300178516571171129345873026233845962648520688020662027454710070020818610595825583523155370198688576859794818729949453479242108940684640116663072571542158573034792669713990701405083076040306250360404464591286883983101850774733181961259118361272768269909345876975486968339924006656012537467850640716838719551367251862930319552741164141165192882724166790032810717645323625469951915829653980174566151872083739079366674463883661315369842027537596643631083885047247814085607621031596702209644962281041852054765638317982156059893039761340491911067565197854261733725859752781756331393745126121050038952717424791520860436512615658380852312500070691363346021844795026599401151214548872213622512614342956649352638404888303960444803777089073136544641318246279923215171489983995381241509389201115318194390361501653202271215132747576796784971711237389902408944454949971534782644048662909777633519520491639853592794806454396933535690548358436344160861529014405715403550237853619533516014015915227965037802504247224744201830460167522413038184305093126970493678668353405149601952029838712695367813432025634296143261272664410662914166365616614198402535066626682751634882503385393665324038704776405485753521773519444938027828435919587384192609144287664155780969207988105703297658495552726575756689844017012662711664122296299383731005548519254869098978259172190045134291943970899721318598321347211668929946497781069800221947593600381987782056279199964791051192587699584318762347643560979215740840671372908935393382390141993993206461019876911216359333175238174810566823427944019104148668079858853540732132897339196763299366724378194329807277964508998285552509385671231320943968338821042727288082147343121272206348610036903413249682491345320739710631466019074174548561128150598526808468068724079326487893670615765250028524674338750087886347252832338197328493791973672781005805791909588313532010682978970060610727797279583819160131882597655618225222086485402252981316666178284624611893567547883581629736019386683852681981608964147910280082899799636028344557430465323615349005992677313340330787414624510595774723761973657987755278116661753817819311406930085508689933873529090103651805277033737565282419289720960960255199126742631451163112903186904351005718696093508962166352872947942679826597156942539062557878633898930215431332413486645747345009373573760136928715253223070120287522181323860294929659305206741996921458561158497314053423377178217594784224648001841190228962401794200124027933579285540845788516582042874077954118209335001090980656500995371303930826334191230041651867781516974168597913088962196293839233842849851906369770392639247066966975491082480915082081005483438521048012038256243129630147836025077636063513091872391316274542190774224680989281280824805780391260839541131450362753547444231854754892858430205601059141774272020464620025222938891358745389885961871211711276758277770068488161107397127860897029415759236836981014241516043201287903878041818031984157533463608914763964865053471636822256425585405961694850110785195381238006867810642266717088061742294836863308138915223613385162387014871577305766464251469648256363888283991111302937601323483754030257912979673632700135629205823413050200952173569702725129710018145179375410261837151646238830201928777833736322537125995870695984763852587933468295504202293079155907538500330195885138035357960256394390714874795489081433089982898257278534300455330055636667532807205067352610003650764593883963824208688107636263431739174941074946406351512089349214871849414907313513998395696077425125781116288992255059695335184582301893707658768422168823979238158754224786870898541580859999015506439025643188908427988235029008714563625172007203316563409958892745110439247239038961473214553159055303698273074265194638355058281525163386988921280979023128217235439337362984530674095817334298151255588887236985321966033708131755739844382257905169259450409595834812716986140159077801918333657485950466449783111266839622832953574581050879789692959064350570850389175938284363067964262166046469413415399808513602414477090549958448209782944974667481142295969731583111760232085610790146223222814805711296152887095903128553173041960919257809683063767034693463549127121053920933414376009221860713684112624638590313041157713089569187754130860404971713642302084666786248229500615063779871773811785095267701096051402251260246217374806538581166278319578685959734264986387201861145153202165109785718124570133106665766272567626268975044649615263703846999804495348889556182853608721877981025465200658387419169471475217351603046213257866994224414892971723714514471263793708820528758806880199213979575153095536795783695293065214676692113589351660071822658948789685054223509326363600237555065219741304165571081349024161134970535541712328393678863155812405119621010045305945785762668795109300866396541679691492396173180458587441357525552479550745852638254548824947747569832632118739445650993868870271918915687409864492152743829765958300319117856757945115576158070073364251357598292762904720265197640423408911436410185267665213592651444238341563553028046316062161532317444764470730071617099526546591609646856192453819688020748598792385678346593230881403097813100633404323501816071358388942365747503888689432402152538565333843606332503005854545755474241696945641781011833201861860814069286707146609418128639009476508987986153818242277035161762367462406658945810967003824892512054024889018915132152472573213172393495656013490804913632882480121963149201288492680795248684530794120215641262683718981107750159100148763927569571952939337881612488039066684915649253546213266958042335078310716752223609072926885295719124328216288826672669856867374621970791620000821174277834825591877580640149870067019274789631601899187833566307017274027829321261450315507543181175627964004607160626182830999161398334316004814343968123331904482953580004690936783035264700235622163960236286858938746802309978354468420593794852509601721037852843095635674729676168554698083503201473858749959764977886156709218855721194508051542517723497467577966817040928140294260265687523165457355137900889548979878018017543349836296878122348235852538881378540777596258861486339674779469450375731226284332956772146043255127968072238222122975458402672837722493009345533528459379493554357306953800095392509144953237767132138176846531608049855741132180085686986630638821458536940782936976772862610726079118220302290448729038235906982631386837320144476261872667752711850982087808285972919600219732584564686070038936428749564061911931298927017117277772938732677010565659884346966186158034296630035155524945265539519641769442017388956437610048631713957757925190089109135004252500619490883972366356804646021487522077054091204289562081820664341920150713861462973158795584067635523823603889133725330283104429554625900567642169295086555622073551795694719372815512488520167623931422085298926257541066005013430079140079874843410614704170674177452216038433201710435699346280200516079108886298639465464152303277522531548468426977953034801090259034711987868843447574650369758008572817009954325324033805736547556142148240051052398142583947908844364309408466539143836361820381371830109488146054052734244203124252590068009400295410494719022455292170433956493290606843022519019386821978953723328120835889664454991577493951699657353129800253993883954591165046810029613818324033272767849244497320702424678788500368016523335154058462427253735137126728160164523146367545067710596835738404323764571571543443922312979311880588240795136465668536017938364335906887902788833321099067898201316912929790693021682858846499868277911557615835717559681340043224747076308460642396081307088547120793744678916653650680065016818975925433828690209793777879687249906618751875228516915926544126850101403184664388506969615627463471797708545056784394142186382548624826468725884319968318914892873445695232948960015603871656212876757655601706999448589018660301040194323948620101134661971203546277602300931343466776040618314589329317543088802089778501846216151764125897278877539175629095654371018858865212641184304521439213730186840785034005635576303205291470191633954226709781600216266895478885374937615248147497859623935264129433344351251964991704293365661362121399465822713225155049632707896447684980534215929136686346079658827022570973824120689559229700037888631021496293153244270646079176755381012346364234424378038400481299481585072371288074329377514275545488727085226287551683792682673219485007890965440700268751421309033682544565009822016573284388042927555614212989898495186016199278154922419582824264195081658240503999352141884480312725997319118754153741457500830832925361284481855613300371797304274889663877767354483489694287431745336874785844774297961408338013342062389194062762686678769676308519230465619913515990855780311869622567488422518486175119993384297996142534855870564732539174168578572047781390177433166929464640596853284013922375136589381070845745838054770627996944452800927602927825877055762588019607710438651408755753846497197415148568351594944602057677259232011725951847274847798098576379300825507213705547934091997803161919534717306039587436028225854814114920173410632875594830732735163365068999005301432262675232499142855499834208386562721662859801723720286993423818190736099197950530408207216674458681913934461674738895400658470989024795692166378329417925101047157077294685618232850426709167585941993886561098487274799969975376704331217890461291205190356536257057075694585201691485849467061160723144845474236826415596864515920853235494088254792083486924041517432648938091986267627513402144437119867651825306746605348927907843674183146767794987190559172109925358214710845562134303672259505020316616717234798219661528758319853402139480201618871196318282252834820777082363611553473395265360683354301835891263832116485132815365876315336580956627667096840977045419193798057409238171095415498901346419804941124265219121607904548801661432536331821640188963933368344535051913399495355053379672945331355971693151122201173897632474152754850188560809080614818647790476060291195830986347045664111896316937366878465684802082408465082405083034688319684621944703424189252797156722947161051234494340702870236361204990134030329775181521884101076278730940819554456168090765148019840020764699977212781949606481584244649576054411312732458081881417408593282474252890382487250149547385010216618549159271320514492102112523665743418519836450434974823999675969071263502631344378235599857417912222894524874010551867883830388263926288411426066379348645301147042375759399567359670205175386009537154725094487396382607017365328772227067911613016309906907359645493954141763258570411421420822721350913875337220172838827462603611247773934502183462021378595528546183875036971809807319226421950361781902485255523135722582361872305131059898257046788316628772617642560465393228447383226424673159853561987651731727533519076091611069176181454078171713945072823943415009467595029514419149418317738257245719047636720468542252635471373165908264851813725310729163409965190796158279999589076782756357922147690311006431740890290461794198001156522078442102461493094240941802132181262916571465406398450411731821017467642293461974854100799950832335254902485033360485032679055859684377419635384530409311980004255935107545469105749945952014048667824040540454471725546947128790043363784717250155842334598586513248310186206428997724067017483310401981772822138155450062255080201794686282963546408248765103963455871779255248662283162102819697455746423138992423309696124146457657879941609067554872557721416582857381567371041375923765183050021963078093906757789506557371334383855920631963977910328004235973319441813746606115104147768281226114052262782623345165530264422892334931400184201630995939445134362783474275430183070013713984624166671914823658122598774313995474723622453989748473363567193576764260726815650549346280128015662663550407568096827460666632593292801715899062771675916327313648741734283630327734992275973089802073206479338980991118105636598757614515032927196964987523773156652939908380183802877793997875551182092106371525077151915416143393061466608605408603594722022258357470336228294114382845237974292391062106506719356685643482927772840156115542288824433220286862340717493044703225181376999340189639913495908321709254946339631933051611877860684042908911484585914400075779165200504369040553604153495585435959278877635534107708467446621856060798756169061118182690192597987945896784164671218937635554775056155434222615602592098559494787450610102792924185521179285589611106667457862380095390906844256684630247565542343184470026505967238870567338017318344154779563441749566834874291169990366770646386018363232101014910965503730938478323862907756260210227231839640950857044998642166620805379250131835717638107977930065149490107005348964650649038811932859029604303047069683988264559559008259036708437875639366480457405812264611003477023892242211579427781339352401311898530192501167556876330137068409963472594831311088933482668054670519700510900059849971791748141159147344243049517481256496753884319561057148534134662900793395694737883632836610762818185997241118236197195083063026358174268742985926721844711604718021579380361690935641362211081461198678662540193338880982268436032147888556834864867701043378873992284446985143847018577534596974821407677485548095235534303642311325368499584905762079912697490447393328728221530436206009362923148379486941509090178718853482685849960266329889385490905753746475009464932080047221095501681004219741562959528135222131691676341315687302633484354679152011935100480173826448391568232260304681652973900487050926971154994838869795199089508965220455462084804275417924223295469195260571083958808978033926024733491188591214743979297359100770507458714819368230816079520288783081097031513735166088808030945935120430270977245247254268378907868075268259969065492064704061723735377625436620120111743945120756798842973989583741317754982464958725409048075076077326188736910380368163788435415546478654324133123799538310121635484997879098090877423438340380318998581746894553570401295035530423333870599051126783903659193717814818726196718557354130251940325584985337127806345471854252537405484453836774461904909028753378894218049283637303445396166429583400157944458845098876375343468676093367686350099112375649650863401950620372275582690987366229718873888919917746296458991083827826341076232040781317852781118020041955731496937620799629546414944983119060139953707275502437806711716049439936655183257058296760866783645691861512201856983415229638119132486946143391272609635684887525338999760546162685713877149189413090384365511032935619514585875604738318138126424557482567924610741960333653873594388168870886459692923863309601423830721532953085932094603417760637389021506154388463350203669748570587967518850690968359143971358107707039523068219385146975720244083313022872443831858020397237556576830678422928670337821888431050465904472497326773653435593159517964403948571287773151163101342304589078293548749704386773320128331416858070548990906981320696288681014599036740636259155743710475623040847500668510561578469909471108963704571956152406069847167020025582462671636046792046246020554756032641461195500433277138911921993235368411507495960363334331625079002516848450482547114703753264714321378133458710729818792706072486985277287887270863812247751491235491577255943310288235692101157667350920294276537095058549319593030328073569056912944226386904001969814310435976711066714985627707756091967189582332204940208549697492287825377510803360691048186924611756684251522594520681305282289458676702492085197895876723469044712839920075277393160822530030546191064410338880505257330030279835127125322021535187751296308270772378128416236473484650431591778295238392324931065310638723724558657363326637720871180619942265887901466282863993394723697121186054930289255030864566437486335770106048417579700929847157433665871901720389417338140310984382392802618147175692238528783735179786166704657434874384349381482851912175035589157055394491223339818015626394861780781499779828227212647913796719744430369891184291324868955732309806234206489472153174471077297472118045980859655601856692242996708626326785902578483236015061832120746849342673996859135260992875583022336373441033618454793071452665154904466150046048412721079011941122985287092734588241864224716790755252102797110236666673456886041393692742531526613204626933612896525073019294724346943005590149254697200644661336468571060846634147864330100594557970037783428338010803553131357472936700250800592390556525813847081504698403289750915419511680428576413957803309442988691728782864732748357436416892996367552176094661606922963975013071714766598761376759260879827258830650256641966257428796722050246495394520433944617507717532363657324146505408735898171270470928121396353867504107690765968693438784711090131748769998038235829842816247484657827451148013669254271983657777025755296748461887946767877090219404636734053607359799512550449498119297402143130886687245492713362702826019382475498767470918910631971214558111842154501975050995496226603795797876511870229947819370310136881493902448762041301203512523141269165281769600338442759470937959905557364203662569129879175601061627703811554692978094749305184795506465078418603860215758948500904944050501936381508184151911946820113995137499302123043269535596712105381021331881001294404025805033273653917547236881977503957055636575228384352787468528720246728234594191473155381261893039344977572924833156813114405960584634692918381573772811195537030136013243319706164690206393939667716389968548954126286759950871671759020037354819506228290986855041098055432853963868997111502723138504011094995291937875227648914957366192275690740537079217732298442684706908469870961230609345092439170952616287783937726124505568174035872285088274731425470904841233246591349015819820200492539061291951190829252374095548951624587278442341006154313928013758180229223310120601272320976657712235634073773017722974774220977911702677112078241753219770062737209798485639434458238723242960476523224960335245176912647121642028303755312374797254865941198963115809932534810112698088748211816815491380834790974612055033472971668074577812078890204479859677538637820976396861342583539597563148786646048405161818936326335026269292440012668556763204821614564564838362840376845385129625104139458103958946172775983565250165407002572210386715162259748371986802081626321276945946982154982576343754239720652683700936030320488328816568103197381394982506612585594104302707714149958444638311836615443226818526958003078552560620216895525355320123818545998751753750154865171581232660032973008283295022631288210691833472925935758557305268826847724817272783757177180077114507633193500957635848790614040028762286219356886693855503647255087591293663316101669539626779920686933218657393221933789437169520455376251294556144591207060432115479757967246900849926909421096908435776997756105537319083903293445063678717569278299456460798150015386120768612110363072026839329824411968015795741913277370321229291805904009131080154521388571107719465496818058224443536171812381980940244193013578077400065550230059644567950395030107504235287779773990725343630605259928892031523113713158412602013562723856209870332973481273598575425313032623323397901006220402689703937382982262733414025492367859895997147078133726688622867696878977243792193270128200900554547235474507220460393548020543222501204730418745891009461933782724090475507014820617044627176247532390936337042603047841331682822012847379486775304905910574365359876503211585857749631496510188007121522909573553504121385997065203721728998015103167920399441137477105307699477984356954449204766958384919167730483384367930874842112409114627045655525680107396884945278654184415833506059374075787680060501682880845215747950926240636274938687329405313319663378161810266049207888567664381285472338769225849973935172357760487637360448984365194367730829527782099663472861268010451925537833492693078530963848837103243769631585592290464186936723811172027610546024993389677414142194172012370953366863666932252157192121976221507034874701325299146460563466181158131892109824482959966216850107364178633299788083292473481787494904294964362111120191217354457460068115147904601023222301061333472505628475546640289877492033486961824523373058710617973692021175047658212091584710030732532762971793441878410744546623054209276439020708046852366827449894292281243523211804722194173428998166760454110947974358449623157213136380953576827473698719682946455348404728549808904920999886636326746692986991441387567168082093491670420143057695322099248080720164926078949315969491992716601711143773124278912425425464133280317023527913976221867404253955624875794857654979741350720962821989807925839734085980448503582854132801605503622829810576950851979109914942390349526228118089263528286259212387588344961936207661619981293237421322412511708471192025840029022602375129511753809643496176293686700242509647243022088079813102359119702433719603528257531270343495254646583414531173189150490844171377988673736741939024421509402209588103135287374621522032078998604763542632728562519120148747831222949846688879346189619054500219514778074621208360187380280295421110757642305036560443270996790326069141107795643794320809527572931062223093858774559980725615519499261266342171482175746577233546062400487354987046615164906970401637881186148844790634203262163011448800151718311352586504252325386956539447372543681614242363787800039414292535924855494622010970992172143158511125152522354078921918164699043340366259381336629923782840537570761498340126977104120141865398527819022286025871828604197079346657782896188210039354544870860741028062116863135240419606113814078952275270162688179576405680643897222920968706125185264382479218300931193112432315463049248091395759997724795810536108615493572320162468999390370252387797800287366441876147586300519174172532630951210234717903537155472659948808412454572555111145301593395343375535648134432470602114418049725937724522797317291676967892250714764838525737155596006218362623073014061353349688645536994864779303126098423933954430900997252553140426317952266957680495845229184935563201434647652696997682507659630311183781513547810141120366152187969028092124381790168376806298300082435895093104562001384760700709817697182496047198490626272593644223732870930610801247028372998720320685976002345581563332621374292572603354380579925719459818879244026737052919094238293419152835695393308487165788755105742375066651266556267750158603256220603067984778414529322366309701084787539019378820836225497261884059778923469035003023242987680264264498862048886570227078856380630729829280892932235553005379109780082553084600557867911776286510924358899647129341965292478031229308632664769295248637790377284086435399180551674066055226913786336259681985390842363043128806629038526171920984116689413997577686715678627430391188880578713132668529948822408274897693897489420354507579644218259175395172652575536141592060745235236722265513811615105354429595766763241957050172856478668579046004869657122753106708788481720342362175751529734128332396819661949624849929937040297844657714348627502774744918277922436876656236160424707830648301613611699426670801253699699237548493557367988606162509167040397759004971768532202275177948840110545062515175326238834003420044106797988930272548458344507080136837324256582487168784716065385100282325910229446446749781756310536538614629058081552409398328635433718751316781517597796533931571344369913661248652046805473355861483583598649393868594967467460006117468947050663226045035859256270858568669420721220197689193754512737977447215729532276876721037008169938552326306496004701473739074613779912770215322931835145290989134292129318131565122034946839491805380367729263956156534815185757324947421034618810621986659433535070263113240164577292909937019667875866122165391640812691355804952188392694481894661468437842708392375104822612271294704396999110697158876581142605446099734455078691623524610505305148279188966983068058041874147739495026505136531704506061093101765661528500388933957858954226448856226183316102347589908764453559938928458182071809111448433036533076403564916622191763213632705413246447215773954600210097946958838232234289168511771584779976920770051943066883086189981528711251793662899475457726233242338798556979712765020781192085451009001574744706572353394952211011331366586455300494215550576719155641625866450013497547808379156806873062266907576892144202964097532529138248101796063064688845225478038122547730561951394727437215943824348528141540451094249814287002951140576694246313515772505247048727118512340365831445122445482203148655416428378015035012848123814108485849763836801933897560607564147686010374432406708142121300399339033880646640424429834014096687538436964479661651872115748370810074385904044475849331264165311142494093343047108656371162062975241353134760399373812784453067821764255089286753330494220148106332919046498582948676884375432801516058108696094524352765581067038287342119983966138807647925311648105018699386678911923317881150567600359839092965139207566473586952139947389424498187051032070286762607745190262177579894291906434149248623932881328798932977153031507383217139859738060467158250642131193118479792832759699321335395965129400335906898674735044475861566633923351611346216344361452356189206937163788167983090139966832966511499624355492184219654438941778890710583344170318511831030299736279325535685865294593083656120293721677782835000863430376079054179301168615414198981761745853070883325221379475717954991173465599524608949205134467161898500646648003390820644883965226350309152793220595875486151426396453299039246631142966939778079224984181919352014494160016577810028007430475811091171627734661273310545745330218357009255986752893945884116907571670959748705595304034376152401488317209938181771159372919851285489685989961884237030984522400856066085986722486009991989583603064559096861767767775470885960965339897553267459178711418817031607484652102448314755971826477859107284422341746964697935629959260106596051256839485886339342153271729917601038694200460063945888399310696908252398992729054151897558189046641627456449919382748656188789087175751968993800918021972806802012005939818093227321736447634034604658247429657296815521202466002312731570769063591992467210135962399014271722790727077906246673001872926365815494794792888156309438266341735242048590641920035031783586986611846275958003592446305000252823725188675308799331821450749426383062020039034195563284853317633069862019140110912454524128246844361705921418680194001479699270186441797585613984543002162186720329080308869931319306611068384635645021203936954632014294258967011548617128882998258552832210515123722134932592792453917811632945367036176814873845506846065577301871926062933339960120375046422012635520994672484844488895420014298362420875000414775295881740948580841784806861770641999639924183267216691848329384029805911208604034377831995383767280962407533651950339172872209883558994817778392385121059328466036894186397830955288304406869247567871029915670017332174803300267305141172677423912642095794146355306935124585065314240326641649377559519614199052277765679613082746380394645287726394675292111983687437051204963923218837823944158355313286753518757776174440643621740238999370622689526898486102538388423235941732192336433516361386486317217488569167065103250401841567534814149444935820658732444775270099650190101224398497543498889954934675932854628315529402700790172540851357535240300005032118597886807780909780511420438572602316388790504917126703606396431245197634020584018717777576162474112831652559700269738380388625393664598704793918954364560534709626989667254338852799633397740713895238603114415762859884137945871489045130380057757381315446395148189389449883081498229382968505992618881335952467023557862283753812105051624993635654224046545163777556930950905305827100073398330402264278178303553848350449625231042634835627330395661786606842001173268577553440936930454822748496817641979081093646637735782041277737339320792291946637392359742556989033727301845314817065045657985555014440733359638067359439678465769872354640800897075282857305247375649406204869127485896034506215354275996448775241960589827923294538591811871644442429856220284693933760354593073759844538520055685700762708356567013292972853017802351354424985123123405691294527031997977969052635889330849770000319931016659101326608218859196914632008864113845947385219400512324249947126872423913264926492387903546630716228648017733163163421381283017694005267487525495589147659020888672047427351002993440564421495489083394620931707918261915345120488086829229953970297350816464930427185635676650303817085490483706145547822582616139332899156469163587630717367059566421187119899074416364385501078391424610692370431024348435393267407708514076561836602069161199337196226747030408500628627091972943394533324990979451389254913308079398886448141095770884717758860163130948121832003535118107241734700251945396063671033130031590192498129978716999535328561547966792171841263873790204077424551464909412584544888512968231474159654567314488889720035526784537417146281708264362232729849637295562331368875038785751768634966885412405209760005247404599869860519561371615310678222853756782982096515762661361087873328858056107559095262115409273086714053492301344318745321233351061202006429689244666148275898848987045826108273326254399981817217459681148201891612210209161043261962461785063889390902139016062691556765670741065422744108785704284923607115427232590796490498938684627097638758812024877789694399696692388538261810432199315412230187608307737104789823983894041365322842428619340712970603866376858143070198190634013242639877256629324416006102972479336823640617073778937056148956019676981685828610250045503185321878091575571578878494129594950204795614563706526153129475452969767627639113049552496334526771200213004110940878546845300128969679295384211175971450996299956286492469755450283606990841629940363516616553078709451940259822402384475700500385265494590533937429220750008598171200426314189522718379118281070612890300957377621857303410107408667873066051895887710543876999468741758205214977792558948642455466722713460114926864362120668502567547653191411663479458889277919078587735515783971694324051875779791841234997498384153625351338071077314390018108334457250848200524441606329092374582435012600837305734469124858249182690353661811563113494243211102944414418101498830729388940318349989410655742355087827675648625288439811005674354165483159825107574821532614385345493727129752847202929790702966261425714255030760457380651813186480388555827953733832703834666375897553848076202669536619122042610625931047135903707197314803536637056308682569026730958821587148653488685344790391996420247805673822209435211466227268243695029432108446664529210564992091709443924238989115739928033840933771334160180988892849262776058141841162237456507794243707288955166206301855061630418163239655296534847040491314010353854885539069683542861141398946113697731645304824354224780031577721798293493455432555920436514793949202982733004957123083384898658394555070982548027098895258902781686610040731830869304224929187315399924055039421257647773343628881341936994519514111444107369440421124781151032997418128718431129770805642295627329397060814231410654363935376196429443711750895486596649197592510755551789317779508340483683669039787060215453065954076517639165644253287894164020993829628232656580785572073998154402331665943782952012724761913103225239052700861756219921090787581236120006109762098303084661803881876083589602765160637316749053972944911646829808333226463170621401822790321914019938299479649792448632221561910426357357184681458807945611735073610532406587903091725275444815721557076498711130435142780884430091958493683827477155501877766721834074354632964912821144881416943249265194606380204785590609712822053554995760257239719358901138780844953222097756267313982974239152684130594082535290161599254983798437119204008373721575832267301588917347289956817992995213736018345589080441981694749091225876277192191644193150993894353545408139927470429520509826335160928278547467950678391012805630746177056256913417596894757560239765830971619205758974278817221119963155904227158143509284467078451797328923836099856956353300767700439070855010079994442489251816412363124630132825561632587036619505255580295550278438452019752453018888567141800288275721939838515794353694620228429449874637267165835011287427074681097703735452749536481287736692926503982445922382421444253160219742838372085245207933625260899632941392322982596110417535011344296141117812704951801164483658513340114647707887248707778882301553917848089344610065854918880401527544559296392626955334402714861831364741961558618174925178251479493605013257617374227580978677647173911632179869970023385340480145381189652515181811396307015737418476043879575227191888601486806958380092357983908173260436541985972280344504349954360332971859247285459480343639853014150932502721496757872133588553234810557387337870361437086564797598739847866890289819508019602844024518258094978415822402867644036598590396967185082721723336332538759218194416102361777019955110794290691719012637188405141962810260994172878030528802737245947952580908124810452192152756212102165432662935224407543645043411970694234487278382139507624347369361118802793839208638080408709993092060179178541789579020482129165443415384090811096002405515276988084473504890280700803738996765772787146440192629301772470561464019459020687197943794278986271278262670572947003001396562407546203793286610096133071152190327254647904450998152526421231241729448016329798703427723096048847314089269371502304250608219620869986631371190268835768356171573411849621563097670998888968927334290498573171040657821780142820424227269720646320260815321942270602311967675119498251666133623885890888978237199145486631006633348667570199498077166080588821920829295081481066918061238538015480801224870509650266360512679490195700627339910073695364503199065424804360384245326830578990609624221061879620852574101052554137949702025887643942133742022647115016442177165632300623608750215025233673957061528530493636257804583806322806576429538762234895220123748042725009553072986313116549506113563554350507614199399539221313236711890558989605150974301752329266810774946675327181477177042078389772126325847758481720916197799267638876765439681633810958277721893319289944119714750434946175214825808174792134370018721298067848879029290371457136815296194420721321737112459453242581102504385770134071177313172916563408447114152677358873189849719169847150104026769974641400217178394263129342362147182329137127030123564557390633128061217632024634109632238264640268817716725672446335898565600283448066475494282289344051124934137313681261145107373781565308423931359190737512012124372293771368187688972890759575196412796393597037135885960935301875510704017321095822883814563141177119418495157346828207314428068653434415220408802434754664830591115414401737160817132840493501181373412967613937806626828016720955427295439494818419458714509332590111177420043988959804952155348427471947648966593041101540124904611167872657961092304773588277247476319211934096872213589536225272711185377526236225966405015212638178989200694345816062762570732888070038970408879360470807845481626996774708329250122360634541060466292597423679147666195640609049921028412247634857713346472337416808213138673712074646878544197814039473033351270912689107174230074237522930174805180162388042964771748480875020590932371230972241066789974816897858815828237796366925428404774830010262904696950755144680328316880918995423060381383712917347599165855286205276680623887102498073445059711370467035307979743090767404276963798559866137309775717392771385025591932019162389326701041400269455845954635469028843402494069898687339371132219725195483130557763253465993642745853951633557279623951852317638192200758221345749600857248449724844375502983521250128987156761210798705874892711060016925708301508553416505846615602959187386281827748237400223085534326593486787986268424599316990042977140034056852509484219456650640094642712897814850842015542199366444047653648096144635174147649580018054448670029534900522867227063299384222041147909625798558127228169655447321975346012694005144550539262051790678879052840175593516617938156227326264798696259055206410185015919584613622333793938393454173522063315275579101168286331832445875799028859656723323961730269930362935925619482790365351424712692000240495130422664758104784415063606019883540480719621810104320076233488866291050710389705651041826385395984026860768917421167056055602313652629657406006036309966623696890722487747547017917400419630250336607396609035242518218932931002570542338006397338499991917604742116608793757042141161905496767881334766717472521787786577906945881667002597870978695803655895388862138736579394242763599652741614619289034776215492452896179187487409132901591448371587685588072947358680438728685319775198629686935119019987838358142727138293486464123041500605733237306424196878594934847396106361843018809124507818708965654812652791739347393075664699929316920553142270632990988707047257424140288674514069015071542805257919487164974027837556487813832415174196435114068375980398283550649174800394762387060186821559377614093287451943772962443966956605957051807624145509555621404220918822344764687214024930592857810043669596655148101833556495123151252331898653025431090731041149098850130767534994996907225770901815949460995721093014269984924975258262303971752509036931294036603490222182861134351218787579769050946653553940079068487141454333704801221704941766910068347126854601090754485333709275349964279107864155300245479476081180607761507965164005815715403204918116325425297755293169744578408551075712328861436685551037840463818233502742314652917675627617168054778636350772200016673912867010705044365474807581192731736506476653731811889633222588502441230485351803631639329526987750883513169676029948967505360640139287406828406506082703403873574600656764249481572195637797238947675771326909905968359443389734138831044500685046161652579336375275252763159089770658399372231543266307784953889170088386074910991936926617995907582293553901351489068775317066011731207975839006015323523488517339964908460475008874154230281484444354420014588422393026316218804065099554542784935075650719632056881301609181315985254025987149093948423799764114043186813098128929856198539524698028931915714140907713585474930773210617091994648292061408356083453919627477671024317431587546273964446637580136048908334359215308658188723383921810260253302588102831238641083841442663647328233120122937593231000088501328354501032330877464810716207603501444261413898459991070834210465956566375573308510091040277540654132134811988195015765910455898180412240400652391939695775630994479063015183810815882965121616008548665506749066319867776508601103598759375479913107391377521647472795674971413790138745501172851001790338961638962192481263276503148466880028210150890910637700011667156623034829634509612109532896381277762378364306072139079515554175914871409053731774205671189868094673718943504208479129465190227651634666867163641634150666221334722742565029722511872701488360395409410998110130577763586538376157684952669035453224560148905573185650171855390308873339018184661188498948159898689455753517311467344270440712005577296574965234112705828273321297708391592952625824781103761005931581155246249905311530520052830285193543134300033847016597483703695526483374522840519144939488083828494902285667859708297882773986620975374964209415725328982544958284472660868145782892180257855633858745564072670704420589347338542099095138164029562491463890404450304505223682992115455881876419637781270716430295639884010132390904790355099976354883284414492368070854493958768397968832841486746258756387294296976401822345787062521671233785375242562064660393525430634998807744501478390794215506657019600859145030381645309413262977536955125780018143101993748524225072040855251873219418973560538748427015678643830384511473588465775941717068532937634127792292143918984064628382921081299744365644217740758910703345624291554868727841272249228928888116086304684547218702769610904977386437005489037216667461910954256133432940978890048972049864108108396999890135387905539727075047326432455093064472282402074507771287079953607747670689408465801938453542873220559955465982095647983760715868906246436595144187513430688849041654489731166173944367044481751398930178073491466539597514225422201761622589632669709258232813977986750428087672345725586726326581258247836180981205635397690102958528441791334501184923376080936198482412116592069007645486815878899481044125532144893865280072012714814422098727151433252524130626843182032385718067148298339081850038494366724383891313281055146919988855214934399185548186810328885878522249715336684400515381141565007412333227441308711154093472878625154247707961109657269636605977790100288031186181645156196319413711591006207414659147131788505809566167315320895971605886487486061698378708146109727351893472020356515790046400949139808570110296129351821045027368237380263651290483722447040056071426762065254367134849531538971042287361982374331285425397416948288628124550736606916519861687179719312795565733485941674593870099035842059033224840562071083626317137946646603307774905798177805577490141786813394799306981641383128551145952334608204927306628513713887283981394213277015033580587618959771396623638213622005257630324547684385986709915773608253319278129884715425834586828900809026956300548973194476089922980972780506045686078895143655155036886041583273081266625177138801094096043291545804473741207961832374280266794659520385435369897042316800686392570570873703296935904270252006006329475905518217385076127542690671695428892207041105561867188686899064631238388124988207527241849963340618883890425461064790127697332352409808437222441015772280674010831049370852432945745598108567340820329881604790083915914480684773765765175980936552658698843475494680449815243701891521104752692530514493756229452017630844646522930069766985322836942349332848658311814549846796380880714012031156752927215300321161094384445562703629947026608667137219928947142813780539690021731598842635379852362349313081623351760923799952153389299448079240832757817847466364469331082077770549685628898707310521085538385086683258793567598416923155978705383276493321879528501185901978058309355390912417617323520135793784084188513128680792618420868084335913661821334812284875467178891607841093505375569247749577391055283668218996123795126806906126068337259146047539583435754945730188596925299763857516966926822352408073694357077310414478147413262560882883086683624843625217893705178207881541587436090962886020390808697754379641116345062091505257106306238385069358214193940793536596007046669938678878242307834558130327668237415849785942998322651539180858287548905184051437178872667413348298948492550568012343270369763027156200314761575523446581832079261096108530791593171061630766454323211558137712145430903809331382179464192172714771273157479677755353109721042171829900325593504039628441106854394318876164384492966330508620742110905029005086038464589059693602554115685673683916304190834334308376696300269306467848565308013111438127348000341227554927863149003966370905935723772513865784713630984743208498472986498649926886089385405292187694156458820757793944456666654159813931507248700301694225590398483971715329193873788064312400500298750872276984849714389401431625239824687115857979730008871525927770022790742432858324786357451669243096900792136008956728482983276701694054606604048475547927384423553635487536071417808036022022684181655907527070166081168893159663843626069902616993731417453654561450477812631058154187941917010145753231730507676096542441220769780046071133408096878454423876495144195834520228862531334480148617517281883456532047193131201645186580802002153696827636199378348565839211859020861382873347623609410145031232010037058820328403445422596958108761136218487932998036639159626281873854076822419776251601829216183096425743877161567016434099079188289834918374726882749243513839259679632832666151741922070527760057151029042610965567888360912565404476214944075200193781575328342369564180029689691351187757352707669601038837529616537903908242572170821003175449488439158914641263105023694411428737142977848866441583227956428562594054754410341596712643453165677385931218479236151094147334142259999591710172540545141050295285279477637999655941521455153525400152417956315158715038576658984261930734663638877529736839594063881826853542665462469015949049876209481927022866900620890837878645093546372630548699652885810948219566877127892583746951280117066771806221766135068463957789436030214215856891778336723385890410558325621749321391404363725951545421093432476370030174957948231054196605535694177640396754845596355437106518318794568588693399203690468291889167265564873604571944954447789928640033716696502863812530582106447324630157549246731187729603149857114807629509038497172827068166358246250640826631669461502403965955318572805070136302762850823149510085575850344036346099499044592204642321643668808100462722637827240045182435085408355425597469764849374666370100554301501128544577636788014029153196085366050378280032580967885811670096407974177411943011445283424809523587655819199087789612541782410756718963756303375465190425591700130456643179049190451259668125883617689782884016708657521430121677841759351614910247254131265868581669503000716170420489909401178832174612140427127546987464351688491050598193941086987890935595356189892589000006498517290692259710241554056798525795882517711581989689770641120802668130132632747246452853617415994390121703604455907551488477744676249363338439044106462386222845206520900630720704681118913425627600462145673077408400162042138675421002471028405255836731864676211232488610929420182674640662013119960755980715844560563695442673585816240298331027317363250019360084527786349269911715413675028212777519924036707857250338854607750483109242530384361140835043235758711915271954232875374969414179890483241744416699894278461987367279515578558395286010452846471122167529660511446568626008431778332629642414097567229841465031960290032614727184309837096137144356723844832927092977888436982570737331300086364016561899911243414247277328492980751758324297985596687253372282552446475260385832608644109259333176164911179813479529808545612623875495571200387857604229140842270725463269537319121422680898709081220621834141506180955142295920668106989697619239500843948235431796148865535013403655092577272355351966752415292821348428116345017931987123178917564218523610861270477904772879674591098909439400771159645465370150214835484848436238328410478092176310634410604961635494579042940426014902980712218125711126178552331408208227297885058929733467843333150201961492709679414120796211570344082869224225283615029906173545483815508533251330589011063147193191696523184006381838845704694295336303591740382576019920691791357404934611593819821069516646281939258653673999786752052712355351283743952394986974337170666351118935065766788336472801711290868145441043202761028148315781783248296018813499920077150667126506950975842609607787879981335571210123306146945576056738323539346784476434453223212160275705398000682398625455878803256070782821519925692828059094617220691216687178046543518746462237024049584362239743645884278413947029643535058481450636983902060850994382456636481221769182037101717575476445974900196027815240507866890962511630833598579910172259826538318637431594486870273422216880666871607457189425450312522881353333806867788590505154682684442902496706984409487897962032167603387317914124309906825033071221775079092972593224162956377024887796805739317548406786906635174508808675270750771645599282044366102943197896437920246321367142922357922239496524351180994538036335974976097291511038840888781320703061604917655351800471601167896750019918053001359333032418586227283380316297823492998249864979615630503316983648573193484697888598043792054498422143022924492367901499301222531344509164585796579996807519602537440741195872561965431326919721795022246121106100168624686703714911349742177756148046994674202708319325977251502753461736179610090585455905047185905930782747017378576517446683085863281958936905440108032241671164378718511734425028736942099275531958057023146281081713315226228444658794623356895164624202928025436254500261842091946529892601710194440927678344419580097482499282356765129796628535173270252733532568904195795190175124035220614846283006090017640962779215289178729959779444751965848160396815731768907347217659830245304280507992961211228259874906210302694707787492570995024801527573925204778013479902404321170031549011761272105021349861384979568581244317089662872900560112467264670355492923044022259814344270871736854366344897825972716227966807090441629500936443674085962520786162476921761874591041028431255968841962809377267323711878173520086409291394599497656382191514691325970933168267911612031522631325150297192630044786321739478292942902678668524891834664728031832246520158816554972837943313827681872394583694404866550388697663569024319411433006117452608745478975329918061260702916577997388477634349099511267489903654803678274286462112811538262551824114576693773517187707183828495017013248893256961485916586470177488729189789254711232513065977536235380106435770823277629831593849293541052775898246806150800681725531559321541827257056907355593006011980008249622130295823836922160144137804521349501386390812997089721094340953638732778723271386324316336965792484983342756122198981225265953143061967540874561436031323854064611118775551948234420637706446280637881183225464988036303073871420551478181908103208877501995867337246587649671684340165647452916243660929071731224748634071551472908758267609666711113667361540297899809963388389698091330917738960231339880124965713709460693756621419375869898199369086682407733761431001869612490403102332368457575211179935123412534365337314222538730932173247374049635641435091409878688405322322804153678202365434396648508738844624415390947559718118956459303868888923394506463001076532423390384585600436116112488078791095436717984932884487517091369002789787792647492643226145676023282539404256409817818624163252145417203715675462618975249752802147153239105283726446168931385095123681066128766393022069899514329212784456313424543826792926606647527503391028615562137423749803959044099589371685692195331934129477752419191497392575670118776856495761048855143831240776430020054172470491449672897311934653002735016586036503607501908133487572050888619121000812874000109338786344736929637812956297048931449399064216742329087811396632290630992294707387139071506628425346655952224890377992103670471638455886210240540472449270472368371525955356580418981078109039834657281005259912298300736619697078239568465669772062099259153267391569024823503919571770695848247242560076803690197656905337436378868288332812021456284632650782213014489591843130862559947872713184822091890557721918201424936579774315834190605216308680456637877288415349163615452971600719031747806874237441079039920681534480191429480330957071429900797479831190577802405223345160299549423169020609001783299939313589253101675914346723208535933073788388043316986602767953986677590755113999716732547555031654913474312849496594012277129657633735346165066810332839515826527530068881741315243327394399661910350935292635175601655113624464849315648564613289492256294483506366100038386520376951487662830374406525493433381484160190293947604603777134224606377540342869788271988047960197612717234295041429092344771520680943852369104692786829851536078521808594645307859152450565526869141562790411100736870084973663989948170996635937025321433125178889522042871087975252337141493317456015668075834521635537619773116650738081665727421084569790490779034140539082761341298257373330254595262493560553026780387061782384608619570438829661806907464131066348835246004062960603573567133000791023552892548287145920462208857520484845939198805756625780195020708557708192816363496807565090543525747652424258943053353914369165723455182609501565271093428541406751394189451269350924690899442115858426817635798843635781353732460703295020293001134512453205185916435697062474440684789883571837055139757007254047564123997071891288817273458552828835749095887591209635294949877016478432870157251211853057891129804020473434511566605120274863966411354536813606551961090883943252121608293633672070196896102979453343175927274416575832661629299189429955760689288422924148567377501736361601345639643540067238018638522221838319598053114025070678298306738259155256201780121731870544083809570500767642280592960600612938129409214456009130023292855762717760592587262645490211053671242712946350627115742988244933497856647086756198127635444732266663744353376881236685955691589621414367957932655538468607369422168949628990287707191458573928845143716846243773942859742200563884591692688116563707736409868321235858873146912053644389378576181784693996609613602600425526723199377081584991736249556172380045364262241434467925321037111811895886295937813879533951089964887983499524808406587362211083275138620090157073555700507039608923404044197487495411706232362136290316165974351667368460057562121259199829887485111007649113890266169031239710760043203480431736385858338452514885235089827756953013778921106918452807749871154798532253626464150661195990498920539640733366666854127598920715283851383274836043754538728140871861744686703810611232657784832757994585516733924694971046789338432181101835358474439261649866080219985766918924497765876196744188456363621136482798204337829971006277307977494115774709699108571547570633623307618158467097464236006114269792599542090869581403921912953675926518195139859702114255473912126995642437649949008095101911310702480027577533237464735354008974403865498835319481291019716092757116755653567013562729309033852447038675539080369704192101576526529559676212626972507094198497875080499462485007455754670290535271597488556970133050620691722237221368323648588280201778866318005488156168512688227528801225786794850702939084658671637612367311613382519572619938750693417846849080605894040305069478774369586884071611248617445771919439460686832170832045099532247694943393088472451805464858562049303287129300958556562970644990258982237432580095168082797258254170627129622104773346491906121703155920575317599150716904087307848903836572890550517891920005509942432211143751815618251632146356474826813601774726948861057360233197014101535879989752592503173617403855318140987872512465839865195430167633927841587926058793053898429721818325178262999033068468374575532877016979570579312167006578340698648005010872630773353966718631568481785382575677361457626813814879638753542347808539652176946857485504526765898779094633213071116204724447816098138285486953719861070197385137253649358291314859386606171395073299321168632087362155853549589012151722215801468107843260977731490352940785579678721734822526797225855080935551471387535504799073861107989391673179791047631227746270182272585467634160443909450101417875078730227896881972432279381206972807820146104838349120769719504205092929442077906772015758114642981317521882743443214986474114442568680197395413168282278143063224350472115073841975733059643471341486187128369986998324831022779645727909336557340398111758034990856387085726317536061084829890348325182533741669349675772678651280580240330157907394054025398376782202517144824512775874240402066030628320918764372717939915330828575151678316055663515181563207388345923963323201202907272577105096666749745274753742929962669401430799879350329687694922270315771820473745209339541439843337931807086044235288824978905701471542607690972826768502155183994804821065889680424266248624812057838188185793307161939220314476717781276315798580264846182029648047131971733280494500846070834042823691359827987371122381910396165958375415648438859387070551205815226823494365958963588372880973094966521901959805228078422600375830022317106273154074056581337853669157655346123711635583027855196690024026760479047171332188219883258306386408977368091312747515074228403286909122012336669234107380687065441531860405920839713760925784757846429699448537378664694714048183414943017705386744835256925570760268740751440002410222962523651915767715639548015287360959789711195459917030536353463735168314948219903759337280536063413147760233428562265551284602706710421674506569867647135968044073905243127572452923996767228891875631213893817835973521633489191967224678406668627256593031667392051891854659155832185368941331451169062661002437410222372629439429346644037407273516874684330550648366233084509760352301467343615650926756864686426599289279102766876270999199881185463683233301555847357073697019532761858436863048186198878505299547896399876983102698459117246122561886030503783675630128079478621582647408315955192075395466016135303135174964433687701676262704622669050418510055646204156382366560103646911391713854210270704038356168424993315199557996984778433078740435950796962246144145987305713336696299054881917705878191975736578754946324202403607447185407597493114778061590922512256382985630405256639332329694529636441240099629499232339714316587696356846664192385894281504584270561162519356249211254064385246949573909135817103124585610508913731856902948418710321097180395115045691763047290034780843271770044816395426409244156282820308742309312035120447853024573420687311922783301422382416251597592234219085383479400413031169472090484942544385618079694529352613568258937442105180587989924335579092728545556852728448845175502210087464257195114035470558741564162239736863767836333967525572048885449642599359827419165486269633131906571269018953762468630599432439454977738921440611640282346065364413830437677369381886209077101509706831243260680205711317886609204982416292514798741414840470887790219813537786390089362556467816213707997724909639912602313923529282135840671356453131280607198713637182394643870558402403776944744085088556987148351651774031170763049699821873583967092957644131824103500212872845626285773077627059826619250290320223947098886662147791993240733978331502135278505462925953923856394730543556724949138022856690458429212370486219760396616622602018679328043812081454577185172413731466066942851297529959744606135252803135168666902320886789958090685083418148305429424001505926624309648757232698755912506060740864824833065888964345093123530684355124065024038156363054305439054946903772828141340386836784025943075046572134087321474482469225335361006744142273266425874462963498273267213731759447249764696896352620043260256198365839446147513603719238580960384089285246013071631027152179681615116612085266322456750268408548010320656973701091664763224338832098882210481607088175629314230983615947370797892224587411811823053523993636486523199983097486821019214240427709669685737440484672005462504363001636313124208841937869494415098832061998031199594159153427994022051685429567440840847524294562017212033364110374994033761735813872679852248392060475412957645094558310271000730599036415279196058797737412154982819375916660503131798046211077911568139249165952293573773971559521788963410146896490540825001565279663841490151356804193760604838165117068828186634642014872978062257647101338675620728404131176282559370740811337709953219470556594533398409216022041510244301770404908081785762258323346902259596094368282911014589421352511873867275647427399030522144142258051972755219506668616267968144946597056964778166975997178228142516123033470279269373585165014457425390275571662356908528784034939975475047000834962945066680353399967802259004472536884833100405873584254827294144729509147322170078605484471724744350631017605932355508174458427820326924846726582241796420609308282247127122941892870731554478495127362046645861473393213468077747403737611797197538113658893174858577968313463953714577845484851858547892303207640733449506720349609949874875700137407971564251727636080030272057863584226324146162852173674047731085773560817955211147486969823904908871519543331538135068186984868028601440715328241472592360405382040258374023700549086672460766429337743001664374822491519048046661455095826167747286584952060165185072839459222157563897629593558200945236269251995034756612850744495034745046235125735860263072482685750241961596266211624795964897459864565346688707216904198408684411426280308491064077707882744874117807622300967902382820893980956752061292694154520492043773103208422733089947428823935980541017117182934298017596604870399783836248258920280158101320714480806695386214896956357409618262978080744349814444782964156611194664253894960304181157348105982555896608152179844031931992613797610296370765115372810683709299118004943019901793859381728668385649986839098731016152044221658430366040417440964568196254900072836930240023645421966856399502991620393840202838801013599070997741556928974783939760999335849395735383225685335419054996916078499362199640372917937517347545759520889591946102598613375439947061307245085964380699445855875249950127724186750429074167547924145406391035642470519212169550123225314667364852179485486402429418175283069228325132791349133323233623918646272695956871627879423166301122318453107498207809025554541674364058832564485673209109690698235407805570040984400922029135518435153303075654067187860617708483003586307677756157355639320666019792465626910492577547815373692342150358857031224994746038222878570135039621503312856320002877963565826450888373485052871426827598169220827265755822360491962097910198950979118695699068230956966540370932746230997703728358691979394354658488724717768749784701387886881537011934046123738496459933878334304335841686561545259025318604373503627307439787301450971171977132802083581708057085542739697330722683598631107743750814643955726816981990503143343430454950490099967570790188979747297882273316941944248429169807913593156928901519109999600422996892702081440328983865856746193417863656648494554298953920990026923079703405102843284067792147404122537524038644643012007156152881303791398175501736309327758383215235612059711394755358755507153923263808399414313458560853086525759661952135112713521584927775169650478598340519980529958297561583540634960869423657022326623396774290157565330455367476806281915857644230451514425687113225402792969584684360449450404334655018136127761294479769282885522933062628380286028130480986310421154975945770980693124796542309024977957442980043844986061084810175368340220433031012693665378881693600412194622469880440636529766062123900352191329626395878381254480546129898917499351981277638569727901314222899797986969642855870904761338852198985832093191551724289944841392023135441898346891496772452396743429615957936315335787819469761516301804874911805229851473193651281296961205553721432319917944758993395994931806860805359421931064178981192946342508741617669440996386039264581505171510581894110543507817085191273607201962972651382868157278146818241112955404030859134020637495853783001102483067786889697713016794540418561707184967059409650993106525762719371350051038378168632050159345632057473222218472061210023862073478846840067279300309182926123904963498742372845595144427784599684575325114111786569367574940959904502178185344251066795403902355551562272334124938294164307873218057460972932645942861176865590369745675379016790606984187902579090055671966528883578492650267224627672561412273791065603221062643071899660365657245912410458425444574871005106997155103799013159685193305335356036340104345127626664607053928347851205122328140389667736240098563150970522670597008285842057760778350870150958932787371131582949080833354128240677495607380970145778179014892341304278709881336896049377541297270873593250135565990339836478570816852268692380062904134617757715172012892474048809033194069421537012277533307301237852100143783577403568439359872333840824204681907449697830689992223519951898085309705828202017085016097963117788749847143792732846588447011663736649753151827790442672819729068665884435397288093175164473362971128040748293973121881926466472030363293958226933917601565010257235998660636037310495715382296897041415579114725396384282157750442020156330035047928436459679341177510598454887631490589558059396225260991261472305910266235557758025039225532995182579965930728959838894171565613338349120049903640132714846089101896135498540104610700732971477049653365550659421094607199744136030676516048724541658836582612461370111306773133646289122964559124582302701685508104073137781927582396089859455105117782677999494743038301327408332638277639956646796635669585585324418325236636422051192783314807669176743043428304372663668611051849292102161138692610806979421906906242927029925097590580165434557399515847723081728352671766224632156546346285591702882201925979328295520897347546023191085941854591631936525407842770654492115403482339926303061516292135255424750075033568783846872104487731354121576488880905779290164267759191835424109876827016402430676398561050140068252377351857917512082640501793675470496631255045328067184762536110879952540282208417738365002680875937296663553293537981642499249339750328335343836495461151251125534948695934900851115496868039813374233960441877487008128405605561130419031199584227388142741203354585509151699106087329824011483237556019373128983329733150144674293156887181249190406782574118894888027520393889706028093075683199333623113191636336061582957750510875916256335718742417278983223967612012129725530134519655485297766496855708164785424682126520496055188774033030232332705062143295648319456144542443652934952880953674824401460359359039976881991257312184862886951897541388882286181713045706633317687951308021474398986185187407436298430663772376767995651720128438253577290479617270406102960387265638697928806591997024992149712698326158847284895110860234577841536047099532939485254874504696723296324864179670644276285419959171019856717580977804605146043272651101018506146838832241382385277003196820392732689432511288571162579849870099235172914267965967943871200971642571640467542448103618808963606319219213808958938675561388161866428175574777715607990163764693766992565407985171600475435003008163067403384471739789016447942947460026932380002925366631234210959084644574925034004652332392522841629256027526279260508914105169201634354323884441318411864734669843616449056028157151132276582914235929536841905630204707742080244712502781794176458637351408440125072221592826379174993524437037100464113090818322315717179632950201598733671231815691205336090303717347690536081892185419171859390590410992216919456239548589339018374983029794187346726672771701454882521136638902335361023535018789553900714709530900391721464699571433846202028997136264871676494521210047091593506026925773049444859594283848026678227424551706058266712890386855451610040895005400214184581903512357892660705956504297029555640221799684490507100674473854175313619395053210999321656312522185391024627566677556616304099028662913418051771721158769896446889480746831449084453419348322098933653230669923151478398473624345297373519787331826593293081678920545398356451048582922668039103343973041375440562039702014493451427877640654358545881802105257723432829057996717917838845144722290020012704440763188334848672675609892169719333045140058184409938805452712989588551339057180422037335200937026981712868494807415350637207494093359668321325439266542842046591396430271442604425177597936553036545650604947462264204990383083847126499954811001106595631399081401716156606438675341412317515240431266277927558331313389607714910101705410873182762107065618924236681050769294444667703056590474993348702038561329040208842405215290521865819811207716494581841743967620540104168081040529493963087391156407037338192007816002710238370190301204473644746320617177134396966821494522283545344210805683462521300826440093639959543045168366055430019091919625874199810159984770899619284942954138420310590529901633382827645010819797245898271066324860616102823802230305238247477677817531820135868885273945396052100308054558378523546712819251395236750177265037492085525843064848163219393055968863818750682956566859873996716555721654954112537108888770277126294539340763361836123033237158168538304629828268805346729423663225501102382228664997848148351070237619797621524995901715482200613722715559309585788686355151335816817836468972548693787262887200061308784244359534588981648571774097201866156034724573180680076884134931869205515710570745377283877470650810216577399030990745337703803600735760382535461321179200890438622816766021702108243419089205666991228780068808489903626272733300322095850137694865522130064533107323363863181688189415201575971327584042636996229917444347879716498529506531919313440307144109796560027583909836184387856455139465111356636766342253856956105331193913136340481418144116240197813070039760180366257715388465899525444542049014078791863874120707902019637727769722657316923152864553566398903612649947451420314528148291586623169546618189361060729375242294295465898481894024092159838864785437284847230564549722603089692470882247840250817479046774801353412079257970055609412310075748821377399439757949942295031368488555080328746726195458460259804044922694478751753694582824640444562414733578475163780331307311940067042887214677268544133255338723430638715458867985309781656254313169141953378463958116532648872288533397698637370222443504955013941761645101387546976780905347492653667202052570176593347290757894051164478738792646556388575949741057326529154954203054449329120753347886130535799782139365710748068090431491118253106704886178444437677685495180602741852226148411155880965050887082268291370687925641243312286229817312209688451395411889944797560187244469157140085534876325545590744268038358772322059629073534144577218486550864407029082574252781439401094656829463325149643223221293048042524365303214244296236058362248743319671239704633169450243373153828292803799115192992607849121321879030168871224223165490474117754927814831450851931738802413692066354624515539915982694846389406370976982234471784785607734426300293351072797519985917006268325092358081409313230398367512035052721131334022925287066405106838172912629511629606052255659823175933209765186736545204684163530294497186634881335298263454453884611979467998861835889849357450287700544338503772213869635967121843343636000488699224783441620401953698411211475955305748555970111863679673923263448517488776467492795699490852192721394847495750345711805633702325492049009943265752778060940135010865659744312958110626034300686441869737349993932729785223126936483262955973830918065340717835510534505536607204022992877082658920135104955320659938008847585296831299537124302339164962614146842331838794750565523705661250977468304088720229101473165542822401934795175506628066339583666178713921470300096224777213828106691906648982164584827834716447525671752770264758180050152990096613932211152071128621007002410845060947115096390134560705350975515902061064653405609774126617892398588546882462415894954659327969149106573132822951211680017753775113338652586223221438660257262609923532951440106034010323044314587950129025236536582277890283350157854891786866286701618155132444014964873312305006734918025585433612070633383551363802458081984935268635715078940233709135888833051462600415753244499307082426273687055852098366136841900443070930217586204871139047529359471044821866013170923510606634045108643013083104904809039656440868223902944389606182683142417744889759898757759564821057585086084223376891436157445742118235200928484612994129283638278316105917547113408008791094524173324714310549131960699771206210157243579692073280735281986355850196120077952151208351845433480683663147991718113952812656823899349060330919872112496122506335081300521035700164705505216064988890818371577206372528945409205399593937254862104596649321600515246129412302135877017558437533083595379697186709076992892135999966181049003816754063973730584595667554686040987889362865265054075395998104551782076311982470739514321499914728442218772645741004217278920015704835648911521350731421077174052917186377750896538654090122560423253862086556928066267827399933107388567836446171952945207729218931489389757317763139190899034935922760288516536568014331098698675846188797081462663129435834848780355894309914271848110911773295848219670620526375499876763100414020902853878362766543680009941123107675797178251823023610371120924745358527325860354193879084535168314384409683929768186889988498030417741369953793337089283731855758367004188690966241147366434241464592456208912815918554367795754499229906114270093701319847872415723091552393868638004660986282680713671470395296450559992820548137170427408977357787408815647571846202686992638590484861973597228162867477512516270490583991100825038040550801437718456924349363737348821096928318045744993064989110123134965755439204012678365207327929248313369226631749116766914539196851953063249249330605957706137423521989230830884599564800576098124122246605155143373443269480970821168023859419421794716376811562578990201806411696618194135443479492989073077788043279786588015526603345191858733831510052564226546447325051769022339056369901366967673332568491829298330049375575972822322274036035815123732004279708385431938555655223178351218241149972175802256710601810545869604823932533997108464592516566867014666021278746636936027689834752231186581360972300999465963131359095182701834119294996276182061064470220884168367518260006072619729527425054323021795184976882301166411281919786712072652180949803262955827919600522352440547365283097232790620699875929370157936284697324273455967727754915915509747847547096869283222929889142947002116644148950702494827561613319964002567490791174958519280442424949362513309229167803859046642250750401844211776625039324327261829090486954620919926505704673780725446484772799828386019545362050478049262507670375641669359789603721932470855264975729105038276903915468669234012769906760643289503072463333724925870684170871088462655756330853051366926996365348376677850333170023040430326164047611409186753823272531513675292129187946745543982609156820069766655530768740624970321249081390566567834224533413572581882315404417709878747889037551346639533223546383503365244461200289943336682704265996686181701391441049861131674807777690119005646648161903687554188664506784571456049244163182423317672752419680826882046347157111772128687074260304704716411274222099545267748700998426436388367678080133552265898933301467466924671811043913844799152576965178804464982503915940086689773110149076384006309958435003640961548956869858655096293312587102192605696371517134259091650125076196912597705087601002980388261817399669386505009328124792309732676034460387956750731722798746023028148752242158688244199277143076041243055101233162912688119088971441744313867772690380547497309908335322141605538732514410386600409774151717435955518211222995450626443380312540469723758190713343020161085551212839196110687282425690383508512767047301890406953673094660443935349385369109409809257701079056396387758667515893625361120685266909592099336571758390738121344410095773289098394099904147036814915403297372488879713466002679783433987230328999545900401387183022831225460060033661999712021321552462912119083517156437377069774716209870866529133068643186697793316479366388085385346384759137306473434939883201550757662588489203839580673930315876518888051407725783374971158883421777415491504211365718488842101102831138911167907379432317850937447494254319676128374547521236180566405328478432815476918047600506500999548096130721015970075404659175417100558707283948259855692265496834676481527483895737435980981979033393573652294943746381183306698927095356483583509983389524570169935133258044352908793436679607881450023229857475090348431290462463154587854121107660326483997315644290761128985927918229787990240693866177039921745383515213868098502858969160258763705796345313418360993580236935919911269804019820879672740343634236097132899408528344410191075373794809690902938460642638662950037182472806892191897512989181954108794498601769568661902585512203818253152678112411533821770839704498369609490197042759960982722223100347360606527226105903858798734370148249816926961423918972931759109690564318834675775859094406246753576652989632152297182226187742288776442749506944204312680905743470390963178726371370146569663480096275402986161712482078303037449671410286280544792713006861920505188334811360168179770076929382784661310526489631396328075661046236283777817155802850016404690767996883117468647931113256908466953349869512501094291565798708479541632434962081696110402091210965744340616157773908643960236145590068105095356185742259022441566639933644897400575441130205769701944497103641194819722291267740292506246910971768722058720088605375421478262539937890410757969464212597332992441563603258518451577618799437433072153986485226631801545075630762837362310268035400946047577104077114036673440202473677417099885294189045028575232773344145683088382711726993294840918149625141577404945459236667392237032620273260573873995509981686112969618296940314188252046996461416812068976692794405567844602400215707033414401877508267950609240509229203579922098267273314616094747587594965393506538092981033037530740332423034341241423069913605427482990313240346709858646925157451508855981195248601436609873919664151552620369827086021699207125242498740235112612018765822031404061300756713947173585893703602552258110676494819021362524772370561367602297781301223174218113793036415404267716906401781215702233163514861179679546340593712403053782269275581002622190830323539118628387491716545200429771193016799027246241528822205492289235101233740989253340198464441535360976789856870939655347091633910933186125143776234202569868376265192404435728632576058513716639361454609245476851995370603900747821362214018686926370747209645716131793294227067725236323168698596294997426797306929837697167296106493224241415730141242937570442219177897312741787957940614736974414200722367771914587377484539456443377384150194625032979750449575668039665662549464741561515652280074926030715904384336627675386751720050243308837834661337632167635983090586531102639952672978330420710236188218124763626506551843483258438002865714052825780955158069910911443890763750693226269195039871779573564565760924336324411856227885370687622733005700684117905941771518598278648524123120412797501970591414407819175033653905996129639699750615643351453975767299735882484878329302103993539010611742780323809155702656616977706774487352564368943868895556416813647877778007874719610839902035227807953218953960732948961193972759190635189736868009250207378343670500384036986918445546609416267290763315339239761355980368953004327996604806112606750737820187761905121927138078577742172943665988831405383474332026111404169977709953344210641429039636274960372349078950010595122695554175193282575137712898691027127521321642551370045077682718437993361406747477758154031696205859337779896366194538293079748701207382729656596118218111885269938329421541755897127696676594660288617852809650737699982532643061474861580173499069791910527682350540438250004745771456241269286954365973997118741758322790385857088981056907542480233464356406285388371068669298444560222180518228705720336423939765159790354238274146441344727784753910613493624172547123628572136233488369026409092764905699660744352465978289345563973646807144951836784814628222104932850041506916612043632844546040681097102615782865029894711860326843622908752610662143209277105730387119692811362969142604891573568839128134791181184179843270357840369094264292340119912975046046377121939374499139009644644622442578247780334944037455726689575811129448153204918825717964466762496910685306288193292356586744222882201183107918726663763069935539027326817534914460762516282575067182779438869855584734462464887137973567116042080804578787939730290680576234963547288414495951334359194000805476861254382359959011935878715493139648559465217281798680349967045495796989335961751572028208943785028242929394451265044206926983446232646396495578192029340147420934017069865168770762694710762334071487866277817681108116982564851589016865662975734919649048877823127379784894679628178549218951731187541494410639665994196675285362783366334230593054656309310815498080042503575891056646810755035016730304374119074981243048607980617601383783999315789936026892215928666858753752315810511990851597699226450024478168767058393256656649662461364036378434574894898863470522162070559335026561997411160092087923912038352359145652895890849639386399618284698506986375649059121904669840354005442438856035928090457391030050811743942926668248027281676840615126460999513848418732557759956135936576066432105895780252134513183510564381664331498728273329982980204364541476599015040174435858030463050976359957984256966825648667071878615008137314743311740768811454593047723343599731862934100044218275475371689890092668157333834535827315591914169156950229572119128403175143687175621309192159361279843421789212253937054209518874381570171198981248983226820159240235826660860939722630775351100483457390447105297148338491198562009259555741120494937292628846488299372889626540584191861851038483554543770661792569227937057513142911464377049412577308113778478753560872134297461723853832232033193636456544898441578648267041502784963698327305098323240880295046494301755721591090799524860509132374788187864844892294260914198442443282684342680378567922623756387214739045870341144878520109604368805092194615246891342747165136344436642298496769995372496831638270680077280993451374270537442565857271886443562093365049587835745436160553936148685614864945177054680633983232466506188720937360668427182202126958690892758756723927118744666785178228907991465202612964915314416784473439927212284922789629826991078273147562078928459000377146385936634497346555999897632972605244470819782104928501908093216497826375378126152140826561706594863730354602856235231591219361008751555702845235150271682223194865064462101174576828957260519575975428949596125893370297002579194263652937107090009421009003237432668704776357670761598544592634940326381238904496541693870356898267595024118297322625928551527860828516703126367773205487846045836402017075408091540573667214045327019370350174958438896306280245851050250455229523512834714088671766675079119879630295087129603479041523423959027001069777819362635849225350992949376656783770469860956997072516830158326168897641199753478889210637707625488612807611068409205519978297594921171559687399030875896207084827273604495409578460577594511113422975261179529760811919281735556894201174368520469701147885441264804751761456161826987163992869174884083581328747716167819999895685018772209616476163450223069624683112262349220191153726331198407932897256892789222560352369750684445743510392282283876759994815503505300406870942088262419331019234844351967758486554212028285040434618733982313750230937226226783761534702472998473755427725220231330445026441602383768276570131065883447219720202962301834399957074014817013313570167144822075495059665448425068607878618017745909181252451424860227428162319450898834912918417570933882986290983876445756215261427398757555811443367993819678986683227354676336907161684219639599985728871274353911005045849825125095470617776462814046298916906861422567558398000687900361714232340599783446964810595494942366744745736286359273687636590847633355030681644530332826507112834541656885999078858680705912619423219873756213335368649976424873525705647485363147407200376306499782584738228483073739567572178004670531810353229193633505609106271351154797832233963721862559946874763371568050564455898330146731834213832648508787079481430682873150509495106641244026523262323161031769096848975237414257077872713563105090281771334233234501000764999485741396239038755712810457658769844478529572804698271798280777243427180056119583969604907351455873912053205408378835812129771638287781922166365900518672756749503497250116918057655059935748334558302173136799422179693606061015909581463136547710825228950455074582775289118560773528720887860064690836292464294195705187283325699305291266733410976349463926940396766659406802684242997119375984002336819742654588690260599590319713628359355808899764502545848474477516284847279184079631909855921664157267482178701262904639222211607482265566907520169045099148485447132322342493687009458602617021245226679466055744207550784733782794469084731944114036277929465477142148382846197408592471232324874021847027689533772459334650574243890351522147131372276980183345007288633590112490759353724523416268297714143871649740338772850953575272175156354113215276481635950330038558781151879072580301761043522862097567604206149850135405927841075549054401010067820541946206899907124330849682006269847559995042534375458573412972809341084591038375537363790758202713730266180984006150731796175128212628851901763139143440573064672894435469819971362821090869732771813534680602392903872758558036789578014578606064437718845422390849626101249282600148219544787612640449671065284396479956154408763522974618036515126469902847428489686537846792493098434074619122136637973332089146600239573207819555259574180951932794544995856815639107254282525164615543568851295062499015177066997019864172600032375941446163329175585447442507382474391699003028123115189190097551892110978175712776491779706601718228298563581729128741269016796912138617495556278933782768202092980427621307425924070341551454606989736305743507723098001697098843755573693233482018285807438056089383690572789873021403359142779189411954905702722985522929707971793770373731595405487541559793428978595780237432618043026755099286885856373769083678119662153696258296610893300591788739595162638002579204460237464075955111402612147913827172323869126630836759355843034644204185988213704173742755491025109671782348267105830542200732707412595531705428781066808845985691362701218477647407152179259228437515391532229628733719628263050262878313085583826239650829877986135626897658231808624407998447432491899908395378429371753093082122977511683758742762419015086113600232344124074896610823524050479080517856421712242932654296796451610410260139029425545388544217219779334758996762479521392266462178136344195908127147198560474632636084371580482913255553225352619015634928886786832071466258865875367760141398531007619758866729282578915565052823980841924962443579859120557898042488055115102485268936089039943332219395018463882968345622411760244227920113106578339176344150950017065334829600520970442987241156772590424152525355388515209590657032377188426355670109720118450001156315186356730722405164764363693942001462519203342686158547441547408539225141030421614296369664325740427200653766038380052915745267195359109068919926796177096214651483039607769705883111841366953988693032435236608508279297275135054595959373455277070185664474114729879191169049766568342493031987789927300649446356185805886512334362450002628609939409224043264114977691296669681849617202166653722253404048991595510281551668982084973566923541446423556493334602890588657280268125463357086240284523205282571171173079327435075846179109337493669509951906820109528886828293798787347788420529310069683736111259062587044734776429811719521248563851872585833064693790131120485747527389078656443908793360779755309801935232379640562019594366983495037246568614032709621349573542532246832088361089218650758133562631851393332658282465056792554134215550573706224227752637575763466746276281809986382245559358814667549694548451058566622454857739163965630751241936901770337515794071114831058852625742344449708511966472406603103344090026432752478981370953316023564952075141593303101436991423834786353830104329866353339454757363920254581623518505536679997609630057627554630421671877146561662340921769199384749161517714108815953418636807427691668785374557734054613354437874330088836984847114068220063914163224235101505992558156108953543459237252509505470845877750627505968935647940391252059679336799224708689013214071535771872052321249077502396440350977987114027031286321919675634817574525840378393463087769193794893734391820831318547384769640564086943956940046052491349425627100293616302167795341456520084396217475278135450086185214001975661787317822960434235410709731866283007924398933403458906942961883303921385189204082647885506418980172322371771561797505865680895501508462037362124907957029560939388064505451209690205477435763019435843933469817334800170942371278837387632101896288284400894094751527525119712755455270281564529908683063910884303267766149314097463655845685784427772753035986512998139711962813500823956200613062607849760747712455205367609186129628002588763591247058541782318367351576245171966486815260733092950779501308014820406602606405529431882013822362932629458634702247878601322694983053987624732772015200326975350279920181007715808635042805647190954001653055551444785713037954192822601020116863868911171549123092093698945775567299507153282308398927518206373063029032312107723458911377524690891525699215311235583308433470889755000961416905834268545073620650647307001516669986686365782744878588376760864701817877039524668380912978313415998822197316602512528063111120484925625032761316530512210512989092861943353530612567466745914089481131512996741592347002527273048345775940218853961352853806024288299811245346802044292419269768973772744589260808114740366735635164255035908490993800467784260195979309474919716976310597400717143758614918981728048601519264162632015933683589897250394120580931725768145052818108275883235842431972502412668044846716676839478306635416228319640531763137738164444794760239343635057828122809117160442869586222614911018668466218064418835560585524343225175067919419417761833930126192719595613980260621172614374319908669616127655723893778725175173023676037080799758536154203406638685417579244865078147827635810515454941886940035841857852778582954421436419197554567125065645865604631000969517350863565099859881356673928822095076436242870702053946445303425470453006020918725687052050621811289770280419534151936334044014356324385380984766449899307745733811489966527156693355117629789827779841387174145769639629602718389649315651251560713318492794664661262430523603566732867711763060686473137635933205222789093841471611546112116436574214009187554874907520578084955724188556713377221373259693799442917237554991400614116493858816789073329938716456069973941450088719030853708102231315625607413394353494447182869218795905791561083988594793331934311993087675895291411194692249196122245005687167772790326591890263219895571791844423741119070754668969147063529590031586289872217179891125863608425594714998046337535510130605775404156023631418943741944927981835718984143724594964516612949418019392968297712681168170839967833490537256772167801919608112670709942475410192174852076401786438602116964492761509468197431058705168771301303353852911821296909889303443444628117598289991023076098722401249314677451511722727235370799392614524811602426228143949042858538173178960145261854246255780744426220548905190854988342519685367777119887296390487036503658851290951150788087820109762488414967174440515535283213486262182453200379613209628815532957173571105845604789037453419764978829426636219641793791836661357131052951300088333501428335621615533727006149523849868344551962736521947823140549290231969416318921109902854187570038446049016274926397223485099733314335583686572664006484705550148205484967222043106365691035334568196648839017419478510407712208523850707451430437780091851673270562538091699598759683521756814726723563382966288222082143043510440663166836312037613071343559128319134583649855770505270439486195333046657393068564264834139150872914874072247751806726486455988661792401034732168129719839683325014341535262961835308342748269782033300394050541251250214308736785333578413532285161585913401760160924222184952228725232309393833403886466700393339338034313813200736961062713331655279360433441251818883989151288150034278694710468881038462503341738433214859715175945807476401167563824325857299248329938325468677429176909827125757682673799063367207110395066165439619130523513513053539477801652577764060528687207997251739399222713952965684895351040293518170503412711372842731632665665238742003398895562683039509964132982710999838867481101405225071281364665937286577905864037800239127854287685695453181366768906126221968172559070882898663287784889157353413326486875903052747349683483237050952587670422766689281167811713406680970857134591446751898554723648336740259286175800713659876696411393847492066582803979191713850876153151812815358110803676510383516058383799247401210938932268835086251199628630407683843862763786964174028154335357631324787364056309910517735258736209493131635452565373652144886896131742959850508499040696131243115204884308566355508135358830663155462519499587277993048131139886207525833254028286127272984717709471215818430065043805237314672012323911636640003414436992267184600000199669627513261451219304513456220319929790686213390938978668791685586205472214342570014745234766422837360878578779952470296941382768139626629384282179844700351023809224483464882258736595841761545807739912468557038090562493784033309537070332548612967126756131013480009064137453067595482015101579341127588854217034573002755326322871775512173782737509124306166079000722493230053455096823147354582380931211450878050724092501624365044521448625015905406051706986403127991561126290980254691423966724938894552853265009805092317518395179927253091441545632900108009823017493978947222801878868625163469133667017026207590394854413023993479420491808572834447178341377347602878085876633903942838424136458399172353402184385993052895503715121736076678466665148491679485942187069084778381917635034080249533108560151557198807662687485836414320795056492989922375928677511308519459357914471962691174667379189513959646977836807542260670897567656110697258318617492595797533698724647050868419299085353940856442612468938485212930596515628783310243501335475109156258044783581013237348455774713471642600164786085247198825895419817704463903888553433679399477183407531440717157080460653445362601822275491850903549352261748216913362724843138824248881153236957086625776208588385391167060216931218984031775996026789491549269350707496035621894740836729216468359847326194058770789256231956526664253919352222849576940385906728730988943035436333550702421580570762634824516252691622492238983226157114732504229841715437306129217798167331180663140445909261835989704559702139252196161789156066253882938664147357593739574363133870691619121919784878298090563745898634877927178277994296942513196510714746786239660964060088875845669747952787062405389918420320789562958779494783517867622877566867612512704322146178624276659742098648767554835329560345719467124894625031138160782666381711203485459742954239128340664726133529437700403161989574827872323245147475109859141438053889452042250844034976457340934336408891407328463321728639606307750251013467526896452560338590475852328375683489697955715171090700957599566640516024356013305965304370931094696252821902197592924760005554191767628186137583790012744379924331063967395646514112265309962781045025460971641134805577602876524035887407438988775341333535036359295853698918616102577026850997896424489243034170591466317128447858592468514578650638464005834315987504071294922545705338482761042797528212049917000241414266938512931697978487052531691531922402975158617440282580903746478074629244942048623790333309498748845827955493789283392752965865591786735962356575971087904823620930587645270709382554420544876243764574427920559461242977910974221170774829854791270498354117550820891522162590907960447210010491885644279265663620000635078081486154413480838613153918363968942805447980415730249419328793757856428999857770503315088877138261655433774148528446836193892550856828855511035607871303024328891812767150281184562666536792426213883037789847505824993691298501114809615356347347909229778276459986176126346647761209115104536266293906240317430045101499874250462337653247063434651479468480505496142780934494257002956362867572920669096401242160122159277911376906042789088140192175918729911413428711370640943594984718150515595134661986346370112554824498621639738298987205854439011174662354833700916136697118340920361588045652915713698291851149887921576689427987782829510761557260982448515739896776403855984087966268522362676497148315513641507917211431336944525243610310092574335952678812779729567218218925843425022663596525893184517494403781271587287948241062132346809864422290012240949554945721325141123107165995273460205479743730175594155865645051930238372270082684679583455878855220985698012662325656127339496205168064464883378938348320073175813583819900914505798032209572920306249046325413461733764075830328972031411144500075029272093331831154736308925277941800709432910656557400607052143974088288879737096952108414346808496011450873863528883671505993459286978299263730621012147184219707850725256987394081490151854193266102434573616171238316884521067253000713041824848952394532173849309651144448225782706880151693607386522456970934030272526964727415701541604998181538542869741434167381336382040242533771470075437074810592806033403162145045009243731928076269133962191971091980598274921503764809119911705259989054087911022116276000707921572802443699743187065835055265546796683210590220629652067695875768126956657010520000565540386929993250240352490543874729665180892164529402915612199469450125182417542137042656212784053808047401200083574977863867724690520088102450067617766216195354076055526358521994622136818659306714705796862530962998719658297741326728868447063731897298242197530190694324641094809905373282364365424096444829118760985765546478922228010913848008356677769738647196067371435189810702313902100082796269945984096190022195691650465849052651126682370153095144811342800186396902099269629487736395782464156620867843671911569795616029867622110568971726782069500553569226206683096288605930536432935219405135607281724822477180052669053378580374238870581821451245240172336646834950174442850360995581159468856119532575450202459158529164905422055822326142580796570427518019357936005396269607388256280193753898523953321513497720566252009759383209619766571245534197092902082509046581345102071744951809076142293075701200282786482374104775046836239429797131627360459133799410905939356509477767483208268728401982622470593704321079903510178628122551415342117171427033773008305889080546063515437211025829526449189130410763544084158804783098024806508763054226623726786874043863600441546551114019633855551196250863724839332037489098961078552624647417590580712255669161514903538836930530120348796508511476602396643145956757673879822410250133579490325161553103782906239268433421280922190546424847640356192948686502141625730676094111701137988494356140343545073340776776546873781824688026636734926958923404165864267624118064917419134375126302513209208986014124446281413541397615109566188646320377728314448795132523483138674046668145360671368974961102401996291846404756056686851411397386317092526069791023425244028065522018592065938153353320805009411660810419193656663337780167613263195918701622179664965630141918125692119790807942648980473333967815562414102808668212009407757759102949577115048123814856376801881525263450364508683152145313948590229430552636536962711876840747854180208482767590727376912071339616635285311344670803485254941594657569009562156574985254939128668078906401141122024052666446597931073861017458471883154138905152496053792878127276138078005299466889112286839249645084453750747223906395472516867652139973490592020377468211084187810688265785655985065274906051698222837331191680596289548862292720471448406580535032754979126378834692732258235887947988952865754535734810244839532494680002878380397663702198756952545418457499794317025263793630807721006809946007848735557822724479065492610741957926607301262403756647874327950681743249361262561064466441582129597431656354055352338839155373819414045241879895039703135836534962258168859617570131723522119235577466598786582664848992972097010795484404887123683929191770018723585486515118830874318413468189277975731179290300711225349570482388410292204329888647033734661235063961866156301503816441578299198608327776240931692054847720195490249982332804368252062888769804249336608191462346384651711409527061923608991353584318680057905683721909402615527466285287351212485940747797326579224703249788339646617797761927502381627593301899212437638470587271305447112035244376533633781078281553460298931081156127424274724281568780576425878983627535742806980974888688044663475733195731364214945198847502489858046106330763724511880271409214093441636553040751750418716374030442072203505074626106666251239288875500235622523612683265634935591274106318667908883916055170962590721312296800149480559982321899350623734969751392184357319977347179288328358721915843135741372079566079095118831478036671293031742333898578410405782893866747213902296302251236280381651942424992879254505128937834387367948853320900601664838065960657988201462569894121398187724373383825172875608560974243416559691557752375519018167690696666614041100057408448571416189479956364006034812605383911390523807380069526864544311664677270759932101990841406317938196698923511336170220160661366436928152972550234723641712191628345952360315108501664157420408496282765876686680153014791797031719150173075604397567119463355332539390152636583080315068700865830174402861603977109834403481973542402665435601887120322226309421840389171799775684968970115494699866505129138413565623426514433377518726636764938037887436256936486955083641868568572184959615964024760162926133073478615083851824773551974758251750764486488329446603502043031269023333163548999667490911714055298507790625007065790655804043305950394565331886132924420231224957794012791737330626106005916712967730267436930008020234383907428424515261493013776366278245100282235922318929586669851187399007066001478291695779529156064002949447306901578068296970707797932392271002929345099853080154623526335979952516428612646995105305582365178772816517824017257868356892186225222132168201559137984584457448211507478023773428729410583507242070293724868015269049298486569171328958326463680255517956915445567805805399569940130813719504754957225749146021743104312367643690261736359643419006659769177617461187020755710997945119177647970881034843909296253441957654033925218329056050945419144522915843115224370623359128675339517451245846055660507597516990643102222284721416064885595700137634945108755067229800178574576101714139379265777180568121720808938168553703466844480053023024205405762198370280461100031013461288370474836797738237129680204979278165739951967248061436839502293228328367253689399933182379616190962251561706126742515413665949875902196319641253345013069634235140994129718919503696738880160495431871520367404446059978970589878656431263415706755197518749977818935982326112886947254444927197030866834177424777084568064792760857768155446089260857223943963388198849872354280355072939730709575923111733346668967656644990932601451899973584038697615245066479283696445519434714492413184967701961884717368818826384858676804911330334769684260329192691181200780625146537826215187188639865491136329451865273274207782905498518889383683106252316759382932546067761129256344098626014307603314873195117831678492032883392261083404250249603390507247656343175031912079418618907985564828967674744760243264553287955394289147846721166074272235697998436112546212122469251220631026665152372962589956996480919934540315000978674008945649918904234764169394020837016237157684759830628389337846008756529678655266072300143786825201391490121323915927314457282298489332081248262477995084639556951688305242418058198033779589599862908879937093420728982955529249807218055858429065715020842417335222349698441215749737690581044779950658089312985400323781567852425731845506029930854304087869711287562126655389428737345733216391175903767956314667605516996597690859316264666846580024438333268546548328708586807752044731171323818018838231995146466935954840496065036062326600218588557129748850920835015995276270950595180780887291434653218065786032163114448126093157829761040362039811822914748163888120187490197361816682280666358135447100822459103868918115337026665790517914049053560419491758743504332338116685335375209423215665498479139170408412920094936525140390443826071515156490369758005711140192536354018753037329048624045536904577625051107465599045678203984041938218910796431326121422621147398601938940854958619073292878853426861855979515568415880568361443452823463763849608677042291158786201047911060622427533801765816164216230054317350714010261049754514483860375610461341157814550192858746531704834973288555915424855024758736758298728393247860359731803619598737058538158132942444244015771683076018188487255243011673570369528943737191475304553512967994480421620214096350538748259612765994688535206534114285689864179036029088832145574413353111479776940959964779138308692885249698043019569712937327052209894824022946359971959781728579042694642735996359573850404445885090762587387678501524382649456958472519098990157964539019232310036524454441313387923276064983873437565005462022155939973959763728104318687353099127956502362930271706016054341794242693391229027409282678809458754052035751241230003335091826369711530095511173286539856944139249545730881545445974044010976604673424596519125102129638446452158279006272962951133846364396354546232926787184291532544113814403682655888272094527187332180649916890241686322797679173794276246159088719439272615420723623872487019962103207784268449127322852483914301214292538582869208064363611522104450210351736311447185811070678129953167995778639350393545885057998944623916262439199862074087783239821287184610389364949922540835563153029921082331787472104971178222631884558573213362681177531425370132686279623158372422189128907384774738403789852781146264224182719096238491873705299211433014315180229881684645953612271633094781875415572535030715765934955367398634993703532877887817309063061015804707218366871332839731564967273197556281169637133206819088259029593078283805651903543677102671588931215574831996158580071286596223615408170004354692522554787397720588613840576653987280521539175615198677603884410488809052419023414944692628611550816126342969439145312532293776283923487723299992745108997818571303304643926478401111091226947296586436220860677979844028320304478081961547786595171332444159802966338360597031676707430330122730639441254452822766631500362936586864674563244215148800784043973208252800692728376842002977547650031532005177468026073127755338855790350196177643782145443873872484957284991488095880936081790371635002655455926833151969653591421671664292730875090195616460276368874923525096135675803106607339424357958047399847977231051798331467365974301290880530079690905317119058184814181573320654787818989796514738959151622514887619537388670710983379894740057860953577907793808588333651434225696549681102341825064786603727588142189732491694313755020385744665557793454744877123636736982239856666268438577450327769620962792913586973910993777544733758721947635552191283982788321810870894175476008064584317220748061570765545141404951531809654125171512663309835690501646274759373529872850192695005765728885084022716951214892948470642090951223420814157832322282073211551009753257560252581825333741668041771715732318155373328684339892164917403971570963150355423375139867927772585952550841937614445923764371554966790647243619077528625660881348014196236152222876192352482361885304569326972177395077058249652135008183362727033673679366339507276498035115127727653773957227100926746286177618797891483177839953085439805796952601122784914928426501861082177728178868663930038693353685949746486274995492565390065919381817104534338981622387620696896366724337168670101516365790626317056757876285072310634403797969442572391956341410502572345002777445947358942043242166391820241277536662217842304476545365245886340003910068161426619685644342124610793139415574776835869068262094581373270222656312099863843098519817501167337843962989966763072626190301328950929242310197299561688677747031994691048595189020795612451535726880788826554433839732554512134618796882656665783972829229832344523510260442533336176635960088171916290148733862685469467899007523731494829847576767913211762627387951873065870778978213643195995653117799515170335598472734946092017836100367325163714460280165942841948709678370856959567619168858563335070445132832131229828437865004102719512960184105399215620101161818961334544168602543337919488904229359844175129634070853853063534167409843125379576492072111728538456886661144616604752173895814485952547972403970195594165608127164137242792188028549868828509667778731995223897938222157986325246532412940984028100623047581558319276272757189539417201748944573117565061572948122156051297171140302298161162503308915324122344057960820097356030761902417352991422356090757434116276422462301310890001949771070134176426810799664164729869024298046362955757569462724877769851512191497683530604425075858572788285572165603264902216052795741837877455102769698160266906128718706520787750868725714479249011121816725886885321768442764016437267006910905082185748046216830043830700426461353847501584920162695720713109541476148163971625901483769760343166370877925387908455810117835488934767778042011463246735106605213396647470738159857357291862347789323659888364400100037556877584708965200286486961150643563824301350690661457315383792783791995425597068495310961287290316737079317210090997890953235508010826870124870313203497766236627302373343462608471327673069882108136946084808074870239942459959841988038700931329625711262422303591301686821275298641191364728172978413364037304553653555370087857499478084118566736772158649044787086241192239087551411984111874895635444893214375544313822139553746139196011487136293963707075031010728601257987349190152147962710816241886778939835151553147671037092686713898932031935750611307382403604960580648000749768409411382255980892590526680628121852166186786360548584436659679712632192804044105627233073768544755230115089080354955540646488761560678780356833736112427102586071669821276839398960092797740430995351783558461344758014986395761418085724690447317887880666448806328981199540324935617704446922815661091628901031692312710683515203465556832397220310633098753141490900663011380832892997804536037781963496267350120963697345919262580759545959833685208728575028447071733523525023094736843984192794977524242903102148644362354851024803082897966205522542058587832240079099133739038484844134398077890631750415940423822122008473182560617683547628684706540077190508460543414347619816819785075632305468259498058506661752316900689826313344286252391328627600499995584268003548931301563044278120791094907781287382898742219257354057086340209362310826227762241533025131455749166961007709850409809378029456563182302096331864489513863039227263654603049225776372559698026719291669231668770542201616857382749244944406775511788064753598004129215114540598451076833520253263612226501361218542387932983126208613073132465032262231305531312630007263603902055135492143533187645736519074536932350153427128908614020023384418178547037757497174511321492776012465441821910779542681776681887816842285109056684670937444272652042332231264625004658187255764174381034664071234913685392466461499196181244492899861855561626859684159561520464441265965815115234269244004998987105610287631396318162977733441795103016591981707419090387221550796935113028819838466858128655634689823627614931507413422221167341824445312263989451500748129000316061911679771550518794830071228580664121862856505070818344666629659908987645843962604274459895733207964724409663970243308835965054181383842071817436290284461793408807837586388984871607530127006140553239614942993462671881627506327173493873827974053082491768441298348459423773853204652651861194719354879551653965332363939301735835674463817204354269031361108994088474099312467383904704311540660317869666480612025261054829673153434053946978079070188402734174971318443063381057065035725568327288854553492045872943527205773059296201409678378501089559855970811982874230506088296708883689882266290689289029953767341732149051440332695322524000755611184192267163356510711839086356469065740627433514536286479318036336593294507897986573944070873880319524795518686666777054124138000737112540965986516085427686863175188352635506716593986163208946694970507766725033306171331678552162315143771481645086081278546598857975501606291262727640218551589498047018787843507580774323017400402415535105819439852956614769674285290245174428634892404198023388672650810216808270277555104177817837014091304284091916211711065267414568004884968742343253250444648962123590877579927555893754023830567363144603630209142448758605468758391081361641595410414836049127837466625442872861718976502670184232116635574034669302286858358525356024369792400089940819379275662288197036763054686621725579452448255086593334932853819023460071483510035417546029948629480135115444639764668882364087675108415610557396301201263985359549825862609271924809122078217866357565795362143964537693140769333622762296892062235991880060047518620300601932223676848167080450933040476846321633688426374636951890260136370524201705489174254455515260505848619476156129259738015079596192180788496738287496592327996484349633421513791449378996903620480660481071581915253145454550201570694442375168837540619881307301128772968458035799988706024269383938074464841843370288842872563476058125462977939222762128979506925645809202436583017923916801583312114242857140460661580555664539982093914494592014647504416275567303542492327693893201655170395583674399056055065890767828566566906866013185922468543521141464264758357065012398683090684131264766581662480999088356240282802449051660789720415527057167434222758554613953011715394320386799776687018739214420570880829725649641585755306551751814556738330372487066173043536166622681606720050551151107599612565750899278308901433545766858347936836547961448655216479962445410936812069935844724774343748812504040494600970925375860936376259692320715672011216312127162352740197754145661955123642841223376086121590821651392648906448575956013302339100310639090124743831698804601952327824659561901921968399107428847261101977677451252065277050393638174789885738905981037636583657072582822869196634956326887228872495952176490156721641774125631388033903133168918671995684757964591273324051897108743987265190639232032097201625911372646983234914652000859598385130892644736756486596250469711434811354214147061278514694300360867854458964755195173451754951523467483035255120571235029032850589922177925766059808242223298234768973966680186158957122308925001402902548060313052593679793496218751429814909185696647661385711822831660584700302543381572402202284316310107328441225341198662190386971500538918519278039603289326015252841110664714227974496142965248204456684967964111526023079694585358348266941234109691567296344340125542964569235360271852007806530820640117027272176997716491333774314014579514907679784128375835476812027256001777510875032206809832425575226372810042965131878627529831898102601808085299115799010930404463655578315954314092112421771763605445004291748838124343215215418476551420021805803086229114366148676025349705030572531846611793832178789546835888978204708801857941956327456131798533400831707032631993929389635529727461826693253821531721190868621209923443067858671026867929538737268116237290031591056006923595047189945611101440789113170687335196023239929293326420930647354166359974793305267030180236292359898621732550064922102578852631505410997196206850723171920395195228451490086062573415463272284399354871830019685565123260398390179308909529307389464808932090219587948875693176548488210859813408989761371835486612322281678416808457897021964268345055083373033857045306882250244997017596313788360761699256881010962096083145446982245752957098538012964602247101139812102898623202246414981080109461714710992210519039672292200396765495257844197316007246376692987511581272455392505333622825235353041902226150722395754796059109470822827830783805086095919209952819613268927189648531896149301295433216276425039328309351842857896807332327979514428728235730357024178228398992744171158366344897036065524011902197185776146327447454678919929717009193347981078790618768771588113429727591285269720593239418753545223208952590453593418138186881499809944407645118256796158978701943147729506821841338710952985970332090813396986272976351191346981070627769701888819035211888684899044075027962749910873652124279349519960567222790964371599208821786318050169944853040809247198843349845135046933334676770294665988032043594494994641934198504595844906687895529785007263462178028847031237497845623362211999429904266417367115416979561636639907524867286740166164519996805920449841015027913412925948536931531962341310719066878460819411093580272173964572653412271425294053197534371806934933063895170976094375203149402595768057666544128733539443985623957446582544450742074344712883059019354691428063809070946683629156877123398238025645969702680592983644587694478861502736739382434446238038713350187098478996285785817136527551091202471508871012469299263263842454782709693287554038093399620919553795753454509109608269797362016853419796799945420016594989720083057331329799272294188554910103642343646784315184634395320792482750338964854218032477694762846550234910333939713160122246646393561952016706483238277661964804188874589419847492002941660240839512363646185013376962509220197815742184135275089977912903262192029887508052908735664758530743561993691349141151125876601005761788793393651458453467520828174861832708638117776803304184664424038006569530055987870255332722427802401428641560805810459918670254260163874286945394964710781036703697981614708098800161714927877032462300277283130105350052737220910456153530069211261346018230090090986711336068708574053853709014652751624534416594254089523404581567880278238255727776136553388397190961358700498115633982716818184563449159202861730774306897574157891290568186550568128572723270383420600222256162052919287405974476589961339241908937261785815333437310331154774072025801924876584896791278793990469266241830362997443679410446659799979447106232434175607981834911312069567557512463934229890109969898904488640404785517599476323131384148225883834886497189750745478356820979453719339972301998958320375273239788651791394847826018050714768218594710352856577956640315141819522891883875764501770791738754789117780527661299846923328395893754361108000636555184600406034557154911038384381635874094893463739025613151116427742892937943952194035445672447278402565782931019989780912710138267265198069883244192554108186384568545358439354899146207654358610119692759270750724467168041170124693068746466131176762370490555165352507265750203467607061668783729769810235765462013950692913699679064886231608804596858419029544492997999858754577845922297992298784411296208063396982243596013041877063155332553397359271729284747468967438806717354209637077523197413165268356117617735487902657516311948926160672084094611835556681361924542636481544700275719822455401913341387630251014272176597556899459802368291951248604200339573796611987576812685898968124617419677594539710213015262078265983782979524229601075825741131833336054818353263348036872222046005610335256774983911344320316741371186929477392566820095061135012286604692872020372715766210836818545718042258476246153964485194884935499182145093217562746803354394169187675967021115335592986067423103045382391022525853819153505237987263670232338500385574339496638628511732787491992457322955575478093232625856376617550796995171248884964026932931452147804888814201546054859280545587149451149247350814750387599861786405702892476065316370823830379020194355712799538783400989579338819076738539746705263527298667962409929531393866094137378744299619776645603279780431253579764861886670221616376666005192750918310523076098561114040437681188814013910424339055935567210191519745481912115049823053406768747635502579635642423691804019781577431051802265201847930409441916108978049776213059683533943742609591221956989756916942074525927077030074781972684848814409716970552999857223761923736447323087829229071142720218318654796287248640945766033278732187882177395699299434386997837554824660545873117642510339585079935791725876730404505494662139437017416014026103671791647665450872750565651049803321631541440941846314205977666088359909334664322893908788517985731878120921182428430150862762901082267788285569993924614817794854750489386668204715922251149509259152198620547457187259638583074267631712064415978663999501342256368467006655961736031554851479608239681799293851754450404673164786589780813819420785289676466581909421509970463298231444806993448885724805012586657473959652533387339997766056863791953679494424362956151586894284619015644453611409722135377486693290073695790312012797391472230300275927649270883083458746620456297010681934401936584166945927403198371374648416953658810981038014167729480454555454997887995401928103731730660955896428467123197865834832092519487633189062140698829829461698609311341123671458802720994115166617618538699674452719481336527479040770884409212243318089732419196371173912547733251635396704782486030171494705017372096734209308725648274029753570203698183698879107701909930741233849360207927390322040224478359212724732006606232620286103759024329448126410114225541825711331298071426461969956120712611144924002561703400130989474830888466968698288384587482035812698348758454738052167537839595858536844391264535678542117243946917819854292865458627379348077024025937223920711153446015175749507481619357976403531650500038683430467974236390643080768937146365907412034325956942449129521858200511272150120507602065200372493798675424178935108002572197586056571846825305690567372649667865629959719744372888581704234880316341119279006039491843024122138421545602592885719976821126395606440978934986686954919324512110195272293059163691439172831799296935759735984705372324789929207217159713960972026063145012854293116917603076139817550042951684292084244356477797655475984805585464584953097182325176036559672746946326164414758516201829015744714014323836304183486627864438331637846091655584645453384007586449037391148299794833650439122818561492597836894546014524828376704090585319988014848002847416749172392398913442647038640682247254096271981456055508402349796494010920769451496788362842471332048472602810001359251360998500082416238621038672961249364452208546419825229397406002448302982286273259883570428550211400694491830550436057011196002181265978813569732349887647135246045161078598841252125181621026000183594626111473685685115967047926665297106248082383697779388901155270693333635520976374329236613901447868357701777808812939509752616746962591241719225404782090695419597402855185125504318985460809412758245004819867731872268501607520485245699201978638751587310437280811761829339057963052687764938466957937032082372716881014545457473461650069720967384669561629005506233879580881562198734953076113301752633479397090193080968932746261652398432603658475491005900775056176644573996233004561151867987995047180862957061805214967206228875660222146231003385581081935767649433065481819852598253784550511494386914576331620170355673937297053404125515547597747036808632900812709047744371910981381280536684189277612848533164578958203614087530655038445158064358348531708918174109191149177020001758229246323276053983983041033807125180239383427445002470658178984983822316093309615201530389158867040023747714856062698197241519376798362080174840806581700543802645033524775799396774830190781576901400711672518593923398196370652143173297487254407179865887917323501203377765958024210211199697331280071406652524942546216812628373011648495330059791694187603346348914378362332962019004120706019934102259613041481302387869266270954407333854290659653738831553932097438875148787813171385494474101382852293479204885687964214594742459099120748180100640108594807537607851041976437399448774261582110181519185429227302110879937418572029841389284000551863956997604056679695536122338075015263048229031605221296560187172251630245483912470532337460564846312737652813902942903529782372495141351093427157836765638191089538847710273230458214711398122027511982455843355218401152386145282606880864517575952879716908668327206956251373842771487399944600835607895523535155116071027764528897221513952588111598054337776665553648797383735344502501081574302725192523311493252953044356744654839150493261810476681466931787673024380142295036508712848278467399806447440907242808307263217997630462720039114528005471512649021869017143535538267893747709267786606599537563902808812870356169596122707206402138762719828251459808992880301941756612226874557752960401699375077498767757649111613625252491510474902768187758053412062438558055828877524381310029542653925882775486914906843647021180548193150420675693077188954930909834106240971722499611570837935322243923021017389244562615247141767542444748412307108980083012079212979552156611258053623812963444270857457791659505946440278729946998004428284724819261169239510103647451229865829548962200598501150271483740800219351614154450745417913781818511236279495516112344641813997673754130666249529682361751445786933455474973208769701460486605209061323948332366222237221927285548051327006615289280220169736652727946292377798751945502340762787442359089431105613733151535564810802304321697092394317769197812662428966463015060869563049203007519578472375610116326229507724118924060642278188376849323234214911709670962191635267169419502558507127550802306933779808065552734960438150928927290272307246130582919017033370450238666583134769545842176003762747065786483191306734689707630394202837070169516493492319271628945174888008135485945700225233294722920418882360076036384252218615159157994791729916418320864989430877473986928105616399681117537106185342103399217016679564076093687549616340095134842749127539937376674066132055761423015373002015742150380107224006981605340973681320115415940877982771988829194272051872625425435269134305060349538806850813485158053099978422969488595292046187741955045637837785170871757932878829418880711288813647278597043397910693232362778431169240390800028766295868482389350979372437653216448206064003197503952965075516625587424088866769627663831411222665490745643209235324958430076356793632365180540348258409629048029398358254121898253929164816600528229054766214129599325034865285564342157728887544980243620390688554857027508518715218750196783204140549706504488853130279664339081762503970322749069071894391241894423358150167854543733808139332750780710021908791992523563599682056960749950432388078703294254840869641700093749061911076952508175029111828937726038953402847698383372138838424453696023568205521607844872504486544621357954422058667103690425776439887425202918531446003040239271170414183412165951745290362022533112360938542586466435254386933972770926625959426944609725215786316260945550040662400721466896483553816607240585078357036225307657446609746104240546232746586356330432567727391099301599828468361386391568829775542207293408626236987855957138615119152889800748261634201755271205734090199814942465162927926977748112321263669105866165338053395151637469953060001460135501603427480735322634561517332087597649167115994454521415209202502681531070256063524944107430957057329302256203095604052897568045718414023839293973335881205988559148777461663748305465916416613242435792920421270357643367202461743269538725608467685546670527362721122358702246882737174736298576704305767091984216379832191999076683107760429055775830639351962687579819685252369249920270335509384272368361870080718475811330325083934859001460752223000186364618224543398855043909165507713607580715324781800164215043754804350886070175644355957127056990249665097399427099642749578291163893590283596493094805187928146698492826817221073505460151004811732378478492961267678381999240003813863525425586724228084029558061759623276283517635639109783093474946104439525962020898299116385653444164327471255401860649151641387709126577441025353542109081209646164978466258653261405954865871318511417807548270028347700633718481660663697682670286878252556073539165463253546369422658229827103451877112223185144016834399285334796574867766329553215645139121771624946483961404045949259977542351842118503739335832726066807429579072171527502945088802218774513945173296267031667885595589918800113365864778938483485144125365322630088399006296343161134239222895603579354986779470681395990651387006937079539058328402200842811566092015330799885682111961413109646432884845870247209475302250303032483399018587649891890685657040296705839150883894508658455910082983824573885756317375304814070114314434291971125058401281240107174412447709693847886811350992924912426161610747284165217175998404360772855010570281702438560092150262939235929878011383674251857421032928287207473002879463801031111979699689269388069403659421836148847170428440156950247805244553209008482581080351093850577811916061991624381338424280519018340368989612708367329219816845271400405538188999611904482325505225378374389694344757770802830836976150750454045930290487378401283906062323801471954529647276781803299495701004133207852454456261710312583974997916806880837220047845122053149394100307845512814615605744960521754561186518056391628563623159397634748570419996854723453370362274524923941396806645248481047957174115651190259459447542550802047067463355218107779580108879264825350754256489694641773450007222881460270118687334897518864265747736080369012592739219351196490110449029855912172178291627688241956053426937965786414549973915615817033741256141470913240460273831561906575417039491775059244750868848500213123521903382150407405548235514030367228118782163115401650558342846689089098677904893601977625999500234260059939311254283999753532629040356633371287610018202848322652903880328405761022666113021690994821242384935565195267443088239335172660715302265258765190062937222251424068130431157378221416172604951496917052429434468262847284240775390347273020452725062098193780221587792658132301048849823660741418513910068214664266617966619590155557743795797907048126714201382870309647352099701414925337152557606404298136083741749017488326527148735158986157925183230508164597893737714599518755131394013411437683368960173252258010302343000841022198917295127030319785568046504191881343990916847420038196718113293900810645246940100985371163721864997145680106621446295102860275680311699485999710410432987134376885686710928532601571201485993397469190939627210686692031934462020208604793741328681036190796672622421316662899887141986604854939479307676495507094592842679533468314429298034908898980989772039387381728323587055956596916263920161923839519083648186557320148601555010130594794135548450145212876632245829645451106095289247718863409513245118843183869276906541455830694789390312771205884784399658806045222945921058459162971704782745295282819074954358369091005275870121060443463146519606250680689167853442224995614091358131137993727771029000304608117916645183695806942373991542836577315704478412325599582036940704125417544760034664787709430622939223956777909587928020115565861718424420185553159442552882384630818249452989322253501667501180759210597043050836641046210889527107082672137159157648736601530887547174743830119744616596930720494426504829812128204299165644350728941704179685745444423247427215768397165064615816015663191015907731576952283987495087407931825122016786790988453765033084990518867692608428457667985171914149982971355969643132392882541405966130979621465330223549340177831924180577709984508471804131308083530220757559194982257071304798365307821501957622950427248188566711013148364742106312385211989382245978235770372225621038774117830552468366327113430321052056466522158568268656801980871109696873559096695410541796731109604666484108801390041685599947247391901690212999958542373766580937852762320482180112249863768373277532049941368301581983308886705690847655851541026021622307099232834179360140319378969438110487499610304199087259378940358991031444521646751846079531669116875070907821528817077815147449290794856269476990773081551355659293167245596076545929676693728691067435260364169145521978279901177691686384259757604721808187202294546082563632601282344766106512087297344274045230133459268982071394864671395943977498803434261014040608745274072396836923850830923927260247465767801394600607899537978159572208553071445514944715783893424485848026720830443250411402971876610327302718607855612827765710687151456037192337326280977744031864620725845260251901387564490154493083157052936182467915110356586255655274215473978752753178644144494672464414626953305255204514124508880647429663823571687292037045230324519220611503558161829011188545148995005128598673555212395521674967656207014387194565516065969216838631562582430469247914828628982080954460350518405765020283765176905569286416689076529902261551832059201718845451981062036201040079166564319465298810252324303874223654116320710349110214642386963982411841293129283742282772349167131113870837976399616232236152643159228824428821980610516583744998031200584371016066820567093526158690540457000267758569641432147295775027545685967102910056322723497329580945301332762110007372579766251599026557641659988788015289932702084391867808121232917737518362427520003320928145998245957238294972036734182392232724246291285869460003838731620536057598741825877122445463577696236922041867596604830113863503060197172825854513388306365720100576177920312981396342348509174636031912454965440199786351960357063183595807728755565674096542239977137571725300224359827706382939821871751828588910153583729517883898863520266422045543808086029655839119157548399351305564598582774244872959456962224899378332378445734782778312588737905326347479077483511783032959756429532758757176454134380842081849928006942728015869420769992532072525904493738837532833994364086529973694755697243757950443305617825969084425767107519033211458681182201091759534822621926500959623178752804049144203643488693242550475696734320328912710747436725354926732703832955795847968037496886982188222485851565637514799879864200698076090377366435373582128566532800815620220882991298661999692368174508339370375788092897909465799743657398295821397624569486474844915771506574596221676390429860728116515762857077646378469770943850100690115717397977781914125118401675768900346385245979324954589029027548379579381238182859658362500492386312481733273490261745338079833159345670266926691337206521287943463110325149112625574407698324826259413236235989733992267129305429165616270643347668207088598674239422783229189596515278484438204659787038189812909135512439096319840444692962446518918747624527106977456856284898260654638435343740836954250208002524956236898154822525843821195402604254615222301672961859584855656669695829847400184616257107428040146991694436446110561684899202881059945810035494868020720245358008364874652711895496704286903028019939164644906133181848018484488383528180379759271179022539021944081456946991194720136802866097139459458706092296755217536694737917096146948430103779887289687365608751987395968940456795324753569296095078134623857583629102123792103214158853843250119904155028892076648218635452504654932329470308261546995017112743113005630270343408170325722562788258926137762337400763319969256861059008500698905713883753104962120891787069408828101792902397335922081267725874595781724494564330192592092622760478268504873316963736076755183678247064502381213735368537529413149229065112415598981657627701885937500690681496862507971707698511091097133247152022186778883316555025456320140438346148264630657291345924795806126428533287611839771696254429316550178399058148255612507726265617007927921836570280816367146448856080162428988016974764656496513829169295600176406156361005193144332296561945538695276210301597552525946444151008135466358589701668713506985584794659043363492065267689223457089693482290364796459272205321391502780141480016121173634092565704159720619775125048921000123110229805490698186202453442822897053763412017809670541085844019677189897957844188295485725679483200095895864286911151827783164907842348007098150957444608158104237604268788313805122751647999177166456830436758977311357572170645369497354008182524231332030683528200245060408662542026287270446618594278396767439058502864124004171061538534429960693183457692997771475189233951935834781214730454931553002618672982754639200389733340527782386757180430222494130324120207891528323320355482078406204026723300905722930777667671053715789279487966359575045041823333148200979877234237813765433901498028271819137167565089761195274404153108661963716177675787814346201697630142935087985079488012076145902726791442698423857321134578315510202239958589486663935121562691033342707955498330160935599247090619097858818122736376988612045169685667115576905564538952301888508104218912924763632353797884282275927892615436439934434157372328916344351706006336528366150286346774990388895190863889737506159265839479697469591753364075125892895716489821380471386514098832122975680874677678087038200429359097004828107582369785487692096034524875706663815258184231570170655263969434626044505838663426749923990291992966204744474840556604289362220177495530674956612782609077289810073920072911535958917734269719519742614345868546846673649500940454869428155668566356255100365869601647647599001817146061991293619729313849494147544773767974363091436698095948652573942108017203285752964683508872782292821695003140567552130737664656498677095136429088977997598279668976588575076240720599347284488686688592997743366358266397476162280717461244954959816472454062092372486746140834893458591880926871514953289793793455746263960911937339080697899696061167417763573846090815540035440369663891236386393356139961863050985506153393052478196238458633394677320348642203877484697313011864355490942095041464699284376372978267420088548949084939914718813928550072315310026227708086603250318835763165094999637465383928167589623570916615228150005531729827311428667314902038167133016947610671934498234054065484505042706980562632315159152248443667604842097518174094001324648839877674218830914549111739268769199735344063497649631769103564519318150423131239205473422009323011203331104782517982438700376662383892879008937749385800717521309374413971930701890614319530634304325513990737701916456995727361856274113020285653638673051128776368841531571264781491300157027496902284848670772991563242068778655094344142418900463792238780907258065404704208285980059385145107885559931115201597387625519832630486217149565962945805966941094094560458056503835688456863975573223605497976205696040409082184305156994157057194163205191822507574984530668264057956284466435865593170540835668580228579964043489978764441323654129613210699151399922383323026335421940426513893697610359976446978196368097922136106143866137923281426721380294557634881935496461552714236014240729616964093668079857574512482085932546104711722267924936418476186371586767842684990315529194522697610404003722511233212000952527887953989125254933270925110332572940803868150204732855931416804571676954681645172699835340840873686882837370867242088430563123075169022433609769072747872688664538438384815394066008551163550711242023663716210994099988229878890847229238246588828307202600038545398024263832524511821264848109751784549018799746000021882672784136484578076370166013112447736928201133043430426791004965935064032260699378516861131208228172518086650290184276580011105830187288353094524656939077979522533544859684271875890541167420682310414197375887147990137443891011821708737978313344601568881906416811429887386862741395313383773981908783360742224887126874862909466262766873615236806431422476403607559656462736976522597247285993459961636566423026869311942200196182868972547888422018858468232434077543581926838119710912810479403477060064556793171413226007035308530044564594445249664630493554759901179837646610558925196552360606620216583986296578806289867818652608849057892643259170693835965419328528102835447323764215178173498038399654629332328535774015141864635411358978354446840751581918231367262894953033666697681532109904009546713968874830104510795351609189085402731811133699021851858522155979156891907737501397897039520146652221145661894949671926178971660763411374627887103748125836928978589464603086161465002244579119348079283875370110413038853537796840107579361649439704137768440913184758821132318826700134135833649302032736516834571273917154873795998799405355435653959841639060555767089696135044975937749343598524919702084633881341081933273831927762817519039678681299790749725437380658471607810311499405484008239263639466451649818231464505444567366145060944726296234929025487544729076168846300236468942442483060150048336956453960093583398639830118763112114061925743804113058203356166244359794478001887467263204458425613758848753593885531222390813146214106088289431477313925558049232709362982679017576798799488165662722976583344187826980279953848236623209513393827899817911499225655107108614675837073070269695589244878408282710689442048362990688054226231829606518375699595865756474461931734709327715548266759345308143621550081315721815982852270099941639362319723636369033131175538171506079598913230121418966067282669667830450968644783652535129652716830891419712412146440353181614577576125313369468856787136238293222538180701407261381376029565260384788614762889344281669997387979851001773665179216444907530846302611468012165775453536912594002264495554577516966976416488576890005076944207979260536708918691492585273471488882677289609902809579701966545646230761649964654168099957035217960138532743241368541978561195061390073345660501482004344424201757090251823706390476639388808256365717276771103484536574636903322729924928239340612732098624673075648507470631714517242105380084088099317794226505257278428950867245213098596168494592163058387339917972094673974069546420344331867608518740935345672047467084669904541377456430470367633977143906767048507014964061768389234832309245118307002492145923170214131599022209779968559703344594063426143866018745232179159036100238311639815940163124913050566847944050831156055837032322287536151474217446985351788267013091617174618712746561371105076333011483004240785798012265677537055303820127845509296545593862237302626526958555418751864690997129522447629897302470229967816740144789373333595704375323649153387843072385434692140003523405603413560603078738348707407138240244504138544018458502200003644727299119196453279433136555003608182135056251200238625865050167215681287969644825055130829744978817522317401879495485569704217889599707894120690630425739005582329640506486203513738055616723570711100137452004103653975708241314121886198642705081455096360235922074840756151645262179009194357660767205056104944189067578177863533797445258214278143129464760480159592531571252075079497618191674860862410976755249770406878878027060499590595147105212993808218333535882653935693183057814640048917369668427275359320444131788045342507642342040606265174307072844842359281983656557861984396714509998528654624242845880794805841037175081300605790166385543375151742537726713599329858119023788058598906265757394145317131686205458746357014967563680431134593824557106530146239958758206451271600457477151843633583323702764428066719746916314980407337290071132799785863630082536863824450412359995542331378482148184605707140380335882870642984062801552487619170292746458970002703156524356595186025612129546254405931965662477037345773131257498418318168402878480388112498001877640120583551770857687185550343603413237546763588079465560722822981117571773842692382000927573427357845162528291214384360615101308841194601768488331505332571150516587068628467068840291950629601987381354209089752834317833119077288479045748474836329335361921213169579640194277183598971512992479887537736548509897184478677782183704046968975789047152470560959477756500763037958607241119335208739360655650785469807366814500756769566186859430321688648529630329353325404461079383382645698551049938790760289838176943164105648583274817911458077012889365085863749707153779624867078103777710375789908376730386905815218225629124674019678159597020495657710411610458583691350500719385596637279525269794210683608038229196581541350342760592734702982722564367541164519256102102415288676451025555499537936941542221244890869422428739323680898292375906118081975427035079890071798508633133316303972745629139108445682046523067375662552687415890087499128713689580319107013229586640998940557128147332325309943483635828036243664344897978008240881489457434273837384684441338372528992313935689488000524692292583376537527116621948000278226405023600208146950618246066309909707107849376594551727328853394542154588982884717898061351634635420471663762579176891980355123201362629808473569965307299393361889838374046356551018667272196818406581865738244608055875232437301579916316429696432208891066396895292447155445466817171443947196428827243967727391127551937998518993961661874826962639704198422176365130468426471714736543938424347249121793685967267395665915060394091143935429741220730250081884238409733869700168590525201505519549394256942483774401362282425217794636220474304322532488956905247641667795897329060089291990009929116622266256650977257800952483084557318609525735279810973066013161359309302164886943140443997535047153221006972172507405947414280027691041204582837023929945975888118561623188569314066113157463330922026516782903118672259215130926540837384586928647871539394129833685862550188894624599515715150892641822404785200245170244572867609914880927428601161855879677193284278114468927101983686865690094762725972300137750650529176397912014926216533151257501528318416035017232012031754176702882932735635069840989947474796252533273927262066360115400396290686386041132036467700627332711317166271423592558835473098591735517639304520231811024132325414122036296244162282625908627800576704037778929564498791614679994178632755639634760181271087040617692390216858134222966610276199711098119585374208187529385843226080368709647374548556137399556934077394192563716306674133379949793740783920047027494730904374170995185165869372501740817779495040203124140996665419008894226093081352577438063455631791932144534893900792025131614450951782464774431274188364749319746776248822587725312975908477860519100804069463443530473869331068823354426145558931224302775980487194862144376485621308875147771566818193886385651326698004800111165637128317516635294263249731178731450898661422583354008278582237584905543316569863601630887970861004637509230359857027735133161058075947069619409198101243396393433052143719160604115679391501715543297086042952905164970722049058396072569271727048717974894758732120513253100601420949881064093243942762150582885980298877173758902132621382308469120833769117197449316675562601703124273821721557722433818702249209209063479886176744358594427207308416836014079223437619135371913263192197325762387839315519290821536174121357510772106626172682974493300945288840910308668540921634606578373954868503654227821724954643068088214976222819527682159302502265529607406827280149417858328270663291249406766157057935748802005943363771986368302443512216092372691961486038881845963981480420972178784010926610476544925146109792792138124093897881528143247898279637482889587426602160893841776988511889103097754496161778517523358457826263697955846733315278205506626354907234514809712441015633489710758990133457806473850609666653328867616584514909595623722719791112623258027028360741211044058993103461000449304489193200661185863314627010089392801919023624609086210113236192583910140353418491633520485043465428197718882674739332439133933236473946792632156360030878138814121208536976415527560294875972590716564062360636739556923896644361912339143650171505552994093449428292348322063133838638688011879915866939313939098957574651216255459619532160634201975164629172847817281945014520198289094926560195896148549058641154796890742423717300972564203594709531725685960194995113624699136473182264737997477282927876510977725333416926831841449820110285292720061394332322579882713921507869432212790213120046206633677175982616875672915879452296781064062773095626988802410228851585029429516696190242581848692633589655534463686946416703630976398499649411625451410869648479353442216648800150395567598457817926856822197778337460049263902416449142366063076059529903347594018055875998442935748853108709548469050518120537988562920895024508897168606836012326902423575932128566357162131043794132831379571067476707260864987254084153164842800435548481040545810176998885107930026071052727296503204563028601420791494120221949709639355609443869289549324035501175300730416049941370031214144371960368856625538181434815529770289690310662234015511519205285858764686454197515048670183459430284882817581761068517589671850000873232499324851564773626863368268398274070539524928791387907914275043814768269130427055643308803468505302703744454779806374302518680322011059115896079487423911087625790004800591293415499171254513885194953838793463917519332198611063371200456479058921490355798066114179365759467716164823622165881421309405119472997503921136007013190704085664875829918158070909116438902893214900693292306823976727497235833580615016273880386860048660687091342606208446815530735609668914586316008931023066109210987595757958708145720724847780683359515977220877401858196854927737436425919128219138772818295034615640830384730599405321380195738153826592709314156271391906700160264828674739281661201756556835699262374634777501911800576056340734179556352872051393480888829432336602387351143004162943150303349922974220698953470880357205982416508917191041928424341492915749792029117949520220440930967729397225004859635035079075533199568157802289055880450373339088014894377824396866083077166320970274162676564084171292257277210142288783375237312841749903656260201888324830635832670158361725716242383796652988302048683337953781644458831075631140965693654017134844211514210870933309473557805754138108810085835129670447105710123844956813663195895775032780090575078127849474789665387991645296993132053611129641959473102103543438068729308243590093163021650592607656872910440333644611689154990788836072149035168792196700871981845424311382129800709734624188529696859580236560251373927948051501455774305160620428196853717618191736693174041698512431030470341390615544402655467564095115618123345703688640668021748812992963128668458784610542684400860450038300367309868314576588338234252287053784942144852952875684890365062653444317192834606381236973708973754787517861470634827966333535345174984253773897670554721353128872837454684826131987172245251009795963934138571857301015529922537575807572335046869033630440597527746682716437707078143213191026829876576488167502405691205427568158839909707862130308082919882312978993325053668135245537777332106731714491916799112789675938694136822771223363355881521787920908550830455372302667204892161425853721072079321824728434796334938852181630128378436724842360212320856834894753293036684619641158085631673308670071358277648875517830140897219137699668617585286318132768324323908890546815071415457240094729873569610419829101847840889189798104483490759077117561098255923994188750403229520644717787614128779900790748146063775025709581182989763482927985349217330278429802433384650558468503032263417662411402819965917884294667039502609481877071333667166813497985157738789417942244759968165220615431216398959791854236847662085917229413899674015574897079808403650365233026084182497533479508564222944127228914014161212327939566787359924340456722997367704829082257293822038442058779792402746572253311803633205102563913649428156511955878353073754438610667453356854471539027261902043406906174404687109740755696136152671990141285775719998885839438979231403655292174539824152433491317534677244322096161152902367219991249295242267573039614592095115525055726001742357898118478311919890159576919854941147237934505031182542692665729528451995094682271807589187124166100513471306949240128683822292358454631857242081302421400028606040075654952396803358538538643451022578884283225039732476275643994447302617689882484886010894366946580178740608079546163813958177375020931982896390573407095992815929821687692138821656141563581452406661369256471719524719277842233344967417446916112069226494283277656112361337479519952226883959734246261243952121559664603455516845101361709250984616036465451837013384676207052180972264376622985517437471595042490672178452007780572612759304043398512633507627803053140736855114783356099689589614076654600081862700594320259751810419292791156341949676495745131422007591654034438198367827662076602591960870580740897099418347069467599440630429714582551691771841672142060756577900359237707254021401995898264369126892902672068230285149751441888793530124821025285481723895462081792785730204139760705213553268165277955601404530511443854869685417946262997176306445302708583489198474693113577913698430332742246047049023591671230286378962369081707451942817053525223628737389489298722002154178962139891239410167987619898333515988446235263630770954477339449321804224325185592225925632641447911840043651521211066028020901485173908609921124740215739119056752749132740337521445874681129031055819794742434642284389197398549121195307022935992138022568056463581725680583163237347405855184578642795524274669590998922742816012038606174836508987833810954213420293392506357243761452066744449377949360113449574564922935207549610556004124362882435368141849737459495934873491999367103224831581070098527289179008829602246927936886501960132672684223827809646622072618340033738089779949568173991050522585310806761492647953393133358203615438008227431329626891289720021202604944206871803380106539748116078913485065686840454202102334926723349325690068086155484376232298013639446295748502358481427119671891446704180946382237465920765234045918165355859117523370355737284918350120171634569648566677878503132121821836408438469522683624979204822524198752881933251776883586496804402485209370826093280973064081271101903214380916213113238318901329089498399323742613483959625179497783641208002414804572322766267118225184321819206253675348751949188132620193523185032019266194126684206148300600454927490630143408404025712252160738183000251242057497590141766877170327450964251182097479632961414381644860340997313438409223516944083429088303453254759159799727502837604650441118997317217397575091742166851799919403495537540325545176503009974946654241238074339034128714835968536165088811205440958752764187174140210856507331337057580969763337815064030589566418880408116811718896754995989993597734860348395778260932394322404386613803347102778755712054048530144001431927167590491619903992816762765183509371553174133172600283523351743318673363839390758469011000847661102505723110240611734506281544669409676251704910459237291195563873953326468440009715416595874557181581158656953444693253233592498186255958942545590718268941551773140626974557093233915301024273608390851231033676084337687985514264603926470218392757421858675566316314883125666011833238784481174596468791485718599734085444774024450999008487956120109428130802328395814631815745319693280715584943017085825752354277324847899588702980829668149339502877690031049395825180386858910056623107950594096876990843021166248754145322847721363495449378779899001995882886199773604963676436404098290294436150232000427458091657380425264961547273086865826811272501887228733263032423893257213231021014275131128191644802266807316281943201673931454938265492820438913248193037476657361390825242024583730003934089508750050403769028296736307086223232256585925051594465997606959749420925794666719694716633306403989783497630563303108086022771567142434239120643226922139925937164404854232649346874682632353917349846219598340059013459818548364372793171693011629925100891027011468850809614081721779838091509025707628479062505987655685184533644347459650350219206515298544098488336811181681218644213978601325172294233392292449942315656545582531755239348206721932026135505642493126480897133432942700318873019728920653663801859312816414315342595912837213353355140432305578364148610032589262497562774695944384999868994302097541851778487652560576082238858922090313763707599102083335539672185626120730884099771936507334164106004642996815303128759522536304300331002768089368142241734877487204027769689025233647536394105770669628307994984957507126160829297949107736456390549507462489181939272124076753456242146064296465256479607628979865951135317346723818030468414947146682058010230451527003496846014719270368171606973926775460683023748781804046420693403867763092476891702203315380942126952757487127989671292805908939448143429552734571850302657895253234126120803674319506762580756793316669920887723499593249372062182479717196572957746732490168851833085411362951966715894021200915962247878848204374971952385813575912421535538855959438423709802744920632707201104947587501681279046949993381553936553346040984873361228864679285348337123808416662098889848135513020751870066743810661616448466981805780233204445196681550413363557455034295445172004004956570550937572315632306064642559506172080505509217401662653649080242757779060437443467317498962916270841085041278727187076068141581726450125936468714336197633883313810601839164531849508235319446465177050158166134094246024999730771549444705467687142037380052828767666863168895332996959071639700655963741929910177459250721806893718324271619456433542041044837444364007554139231404593743814674177493702238247272972993011528151602741009058577023593792277997730126354051760979427498217980868543804274128023472400490220528866521046208201076546405229528935151612556153249499181464916575677913008688627679815643020637305867632987484472651168077542347739231672000410462010755752390311601418354723458216206052506346835459986261379576460103429362834889663506693849989907167885804069657512839439148690579385296367924588040186832064221249999816813966321378448057402155562122384183061126523669541065691063842930733796012109929012308233625259099403217812249523786910576523092209380870495025752291679780947724097752759577935119900786871593430338542969500950993318637103996770899494063569654709431207283863600053077358477327452144981890530008296927895831364276878909417695341596880360732317626840344491479177646455095273859964224985679636400224309223780964251319927805366594956207069021490334041513403492720955131564205926816698775905344548568421397261046725739528293474329661720702088796686184404234565943434870279514140138556665117141842684222934218724501271107419556969045264730751963133974751480032047574450939032605048608259890106206327805602815669886954252377664914389006470464584987030252612341183227164363708374331582715075540523117660788068565351392101316027283682735074979234368265586724932087921808003652519526282321781129240723928631929942907612756121965208217787865131609231321368430048288386421883532117526174923381364118436564548105833629950752211990649927531892448651906607598508098800154767099714114979622249157413483724156540985507918199640926265165748740058102914266569328451128140881058406895260093979084564561403343621808521047446007619662687295674283014786056154864854236309594218949223834788889690614946608918075688494947651003902373905695795977462103920055695900908325111532613731817554277325000011725826482346550470556377951980460993364368889119688364798073164072265627844766744601823950260605580993126577907368066796095724073112446709491006974394189513564672172737917035495584882479125297466125041787960819833015799133375390892808740266914759283178476421014618256037518384690245970268415833189895884142160687246457241609176340835466686732807695385788256562157885489394131229171108287503378261813412974930932176834187331793574683858538063992047295600742356254768363059369429195670919926571407121184002312707674281186740269876310498831488370580152575740481083045522162012800835712944794425109865099375694537398242199962113005439194102298363221630083063581698877155146935927042506793305186267739001387082171477614519912468870791095764177911458564576964933045414516975642146591236033489640359662806419250595025181575018646632151330506810234070137688321407822381132030648701391448539149322560425218809574384290631359241255756065921920709205924523409306357532013654123850869775461759509637415671450741719758690791306277960774339575801554230262928476455467513227999566016789789103448082590168232983223454087240091583601123546287781365397993938084507026934660536944889031120991629609441589489452732605092358432671220810821550770520077246231451304390698598141902506143662391294023393024676879365183619902886363737668351207653590570843143841757877468748568929094064654210109712065056596111907690511740699494984790591603174934882601399015170451502557493077296026085366114948492328144329880712156829896526428760743641512052621175132841551093838408877808759835885383089847775423582485476365560853553772826699719395808490032918029798126806808063634818550498045925707424265674091605951211941963239570603662011854014685360486755470961254367682557872633708787059796321131093530326849942773529014536098565435535914758941898384278741674381233452592296879786098779529268368461219885433436087054261675897452090822329159482914805447978048821246393036236064543002699268262096626055732383609946775043613074386788510655961731218745084521664743817730165042984650377594414472877443321685437019946979919340169364909735301687680369806844753495337771108264039324546577071716159254934161434413638373725345572847648437667224635656670360000980503622766507372735070047373537268108022956143836598580250203690987495028039931545735763545030243951929653591525573978343841361383941317915527532984541844311590028224614158306085707353810787398102878802770194925310016729813684481046917088140387761999178680635295290245478979666078653844065222795763036476633147880928555046110582926098023703029394732068766987123438243344550038250864981201178466370225858909485035931360024741100218342973465345493883414737318913734396385004472128605980800177997155773150435726957955877976119330276070097092601834141613021874559328640534443776480884018911522184993294489867801626064322481526836256890131186896243967201296698156825300138198487341701635496767009986423633976001062230955686247534067656114923532964910526808298075623578213760506383802095283588232254406994863387067658910599615023348746539705817921814217083562450423584522681419150292605545770516725329577927999577388646421741271705103587636390682525824150185334657163219882714501802717425287332517957059042379867072122047343498121826731031070374349303122093043121182791367464970561333986405991180536924262561594500055574736542636053365399383499309633029534689488059922842639538658218319770600439121176708999046262031272442860672727958982680913262751844412352580507232737237202974944601323353677086227659235870571372629592380695308037369355583104525752505348317478559098137272720110024662560084290667187630487262183755236155252895105032070900245531226707636852190766064054602467873805951297187618256710701572172607961926560054207904369058174560753730003757122307228094638819133626325276620773052675109711521696997143791983181571904428568847542855851916476475234197813754030977500956990923829748329416700836519583256804585419436372006447733306684424605985858737984600360768493773920479122565998681323940590680902118605665616787473551380255984155484158629034220568562934427790514252014451406123881749218147869481279770548070025774731659822329188463807907417909783171914415685529771103531875387280437785394476681036033980546526286135824956363918723170960283985783461550635340533403201683354517617697225471273536586765433059679792121480837089589344166470189760760429546574331428896620177483943168585677151039670760337873350254830712871439898423072837140993086938037425396561146666782771998482006535978359790349612877946047091142895733765265704218131766695300208162574778049174126028236719927858441603085802060898685398440331371318634484795927427878055985746211246745788906553354222790349186748490532282878036944620982135269873441452234957888203184443757566092297299286205160160213610988160000355077702185200995609465000941558793159945363369176565619569389528920290471288266100101975962281980390822364537089826757418218913520993585190463692337941531030802621101343117050649190920694630447404086901041125496480981166500032237021057168764067365215389504646506845260233291637727807129199362129793500221606651691848563153979405863898359746904774324755466335144957555306027648425659654182720918863465303608792042242413642455147303973655457524060782737635191159168702352759936840109736018186739556396194731434615354112041960260773129734578943155137246072798551643650150452506343083935555339460907122825974982032367459256437848500596540701663402513969565992617590989869277269107468761761800767219718697693657868200786136158403215698362191503916093327482913813758282429312513542287534919046515168506336809855014304476534955187844985662187669289901793332119294317609201263154165873230230431137490685935941347785326330038100613467094233434987705145363458229152081856096253051379428673592931085883630931642070166809744807180604282051437222931762712376015404549916697998424367852453479245077397060205738691722159642751668358711610956331381657623987808638405230914024938934914951490978048610110485050925897050550143308397054801969123489259880329106354521319942213444023732648305899613067478767795872570757846121163937301186947208043568582659070659117176455003234635799140901617627680942088182595953867942110054138658951395629885359936828319904024813886848589628174209317120667955119805994515916266245781045112470246311200075189630053119728881886159281983502286788173301133119426019336824364090383511144781782845648753863662674423783468684065115976940675008043375398646156250759846921568833416960359027162478942105810373016746752483989978014172664638018532768791955676938433636419341150261440090171132061958962945614717780308958260751239732064206760708108437544624227461343042113682884078197329536575529176477524259138710137802747424797992343209225121456133160645145709516020162909885601004466339999122744919149780830852084471226154156626043565506569511327411489484693566867853047397974454550260344354882453060131356456156008034079668226718771618768793825947969869745635725515390581567231831380417773407697197406269165871963210591452829438036249997167818666508488219186652762118808498561143982128090779369146094442529280213181547714053880378779440510700516907100038204132276189058800822932760316917477235220534624458620157109837305374681858984220377292201181552217714085027144731252593822450107320584624931264506713781397843870716335936408614637314533203228165254305153699425462178247673638862711786779024450141706527540667252846506789011110544586155754997278738549450458378294231301711733927473896290213183940913778830645486702578480637105330785827440408783002483410209713861606514651870665344321497234744980564320812756261127986661964797558687937634515669980490691230349260023649317208804773148661484685810363262913279963869460678857384352971184317983681917471577514067878019628011675001822923298782857360930278737153388217708237164318784698734457270964910985142800594054084881656123012737355948449795914168849118389932070287607310455682477109188475040182849415183419536217640672855755417439905874052481532861461570431562818332918808016729613011275164857424546787667839685465037168817250688706612106952407799398079557443205280735925958734480396425039409194085433449129569397046379230310253971418883313953649977914396810124534462636371540152827000439419154400769956830078786775245047862893456237582917663857720966517016079353177194510683929880385734992318936321767059499953064495462331578826644391736284180455044621375345713634756857715272315169997699523424051799828811812962075283516967622271248689871315629755972449247829968643689704468554209839251024091293801621963506667034505237664530077208962208124332906850114007684409841654820396360459581182555725775242739384739424514903218400885112717539420084507906922936748360433331717369684519976114074796219814617129431499764487929594643565342336592076814263902517842303390270736027974158867390611323710138863273068604812000171545468683097438925378070266440441818802480895520445946978477188259095687994237052784093520279272692279823088421704536155628535840694752318421979638017988117985287888102673493957627265491320755345124467199238721712784194658412094621245170748200988375921064288032425201729872053583083361435178199138902439139177664169957734119738687201304751295491378885743701809686659943213064866410943216079108300239775084653441477087750993907434402668965962188578147355394582377437968216100769639214025496727997950189431644673852709474716420401874163710847068450404343416477789997266853472267103738161156672703588983066424021938697729324810128526531209308524949611729062930859094630164923095796606087018601458934215454583868314407892097390453563580295162225686189692933288133776202295543287513766923651506162729210161411650117048141893048859765417244513693130624325675924992017759160349179524320790885709306532003463186141408261771228483939616282870723943453329699727835850425666293920371340739451972781166248552680886027868697622434187486255919296323684341339731560382850392435750941910465416394664552527279449648553568934130219641695399799657921730832674819613616936131184961812621722694357230198263780847782589519136499601737837443852443362846648683424744729519593409349195841331400528621234596461923812560822519434423652491968792309493295849189153891037559203566338140701027125852747322099879266345997477459927420463430946872252923190492151662228367773488575226862275054562369783684815862710730901296467311481156140604134800347460022528677690733744514641793761707112011357854514943695912269303302997548581183338545373494597858040306023841133289028696317899944382503930001255705225756554518118421658473680082265656681489603936994535669996598786612047640806443592075397544242248135056248586610242668509510501760111136115462097453444643795506869269269999029950998580357304260590391112212238715601841724439029867475152626550650685264011510006052172311870576874362654241415349666003557673064603224669647797505514239122640839732166565254951187365586512408209770399934446828246461371806705563852521771243259263130383875514067574222792987875570544550659166482886624451003133181781921698861430373174556837773168317992589345674091947501886055618500343289466793571504579457394633216327862914752760389351393595189129201294482474526148498330485133744320636259484127171427442810285928986853658642617422649523968081840369240147041557049091486999770117753985990920395416853867210983561544673604291066257011784415670428058631808285567405182405715358399845864027391409536936100228394742236559084651136828556210002176700579403768954458294059680093451943954090281377643186364620442562611757518930188845323544229889180397682431416603814901803640751469921575846370769635378648279384420695390503901643229997975904087585428714870621704483488039881391743419276250317078561804059756708275016683641908820800713651439742504373472159340143502950844821743082033205423815027536454201966873285059893888975957364358147877374449229486713607041698321199364494114799302161882040115993018834009330121357159346213439949464995009958322062426884797207819229361569639530883266539059228162097663784039916313476910900284172257427866859376570118575462592946268311138610475504191498023298695699920199922809300355606224593609147247340474027753233356276181995484884488957787804079282196577565965451159258248937789054501882646351427137488246386313872388562442912693276316083208691750920262344865926327047508487962595888987388815378418537925207354117993994812425226686530968841313746758582203303126564314474567466581472355744575903049172990464176856105328042003994796356296664076177594680571696230922427609504528813327283871825516597452019162277238674464185923618107183185848203907536343885992386911446374879596592663803011238972199171415798182811038145864898659187281673842567589884217919540298011786746546875639996917609477833130366894015831754295477194002777120338459667945853195580079068178387615176375082764554497657406212089720779756651755024862283701062420387355637423335617514711158727279352421231517811115531861314494235463784742102143635744727411360760046423119644662607118573472761931127882430102744459797580736942181651840417937884567747832070590649646397923398067190299690645822866841506978549718683339273497122248662375644250816937980043703625921340840039368318450116621070917447158780474285870037918988717845658152178907189780630881421657666102551658428617197136925667843713684767194344017716707461710695591773275640180607345075874391771782197963812271634543087022193118836351485161032437982124542318950052358298171706054090778651498846521615709277070798750123836946185754737362423937377828902224632696968036320901476443883768535698059107753584091852346296325406158011252445467312303145329289698692001397579028879770612180829030685558497113666791162679475201325220206100236518836730372405010584291562717812934918257971456181310738993052241162160905659295212356334990357819807790388856077332532175259210624177052737721575648319803880532664824620101751224578908709334471461194588922114573797287562454151136530559088145899365206243521924888820765257093091215984870879177262267940660682320057205786372766169689118257530603343831782650811605175929579938571310861589772316398451539734332485754733666816882790663540384785423507742414281471600546630613403497947697038144836278063141108499846007960391684892543207784470083201890559004573683173943378692407719026468354786840511401500076854211495978652834360512233571544693887036098852655773679654057016996137873798869491224621033644947181365650301628920639188674436455753641589391899843377113986043124597177277320442788823343788933739316852097027194147884943737419116729093992446145438528519718704368475052380458956170128384746607521311897960900395390479244351265915205375720622823492572398266954124979213457325257432419747341598470711024887694600972860189988294508045443522507525637515650771593194295876041327987852509310083291191376681137656274865423194220086035538937503337168888802078667879238149371459519841253386788797751269718583804283706920643467494548947190444175672212648663940063096072796137495871423064194128188621415873124690615858660652820478499973192340700822468920125304367133026649581829653706960905048095360265882559814773827635630497271518795620623094829292886680285299414107600797472120186692845044079561715515367442908219809994267626458197906892242000717724272578418498451990793769573547944199597201328243665048794261662773409064462549397749129226819180803443190786932492244982069785815515634837334395848514301854683671893759004146653630925487452963405242552149077843872424699342434808821770229849031018672984259895137024760590278426310746181625097642584976538824920668425377833667409803182979536701127492500643267933353148872130477873335350342361188972375408131813910336729701130531015584610724891233678757000134010672184907990904587029284924665534374156736693006703477416418509532696800963422787822774456401072607835627790265063891165146625775697588544498090107075442010229259364132792002257578259944865157392999087158511790149956882213401949323196379844137144572781768135902909580909880740769471932407749607435255894421137687167931687393429713668051948548185728646963173928308630249088992821573081105126466534220561157132532062239891720390237229810576309025299830774639534651498117825317736105695633379044853733487055411087898771941873846549876124316707915414733276476091942730119672450157184397609461182633149751559508685812145654588156756663728769696597842037447545508671712860390745272050306351377358444195963188716022973127287694881078083854755432608845031527641815375186360791977340463724871491621067079512425972975417517755598059992576348141607965020245004844794580564064628736142880463298890773986588122078554654558550737419777365135348917479084663203866833784703521867586311314549247993707950415160101982361305808780678057929589695477638203052257130765455314095364767725261120305791101323006855415252719957104431766509748584614464061775856217159944781849490169593856067119340290083122437207109777378075949353569396715698441886476259605417294019593843900316435783967385164011014084483984993307852088868504473352225887123448468890811084557966382822890262927557717031704288336611401313505230890791515912945133659717008558904118374351807766320681328050811297718277780546497160098286924010403091306591571790800253163032789379757025004056426675114001187442884120079212671399815873596449555879988286402240835523262978711611829518116905562667001378301909238989341397844303723128622147005137259611547267127751257088893330541468444553907385504400379930339101454939422085951149252680959071384948814519700771154968905579706405494126200719276403312606515906895996163724582112615286726326502115384354164523546747297191588314589084943561390305122319840718334990490505136547359358179551807046482032771103959892799690277074092446824065322397690631309475017567181956712818688281078056551561128003570511336499311409372474637121007915119671467486081729827020974453323115739222780751006703623312411632165392481479647947349314564949421848074057253882612080497976166975877596693508694354739834280805485460841087839286456908215386715786602936938748875413988081776155203075007484509326059918926588602640077124741480231819288331926800236487449871233310527435109390380431829633847846337382046359802962073739834931290088499692777135340204397545000468203271092516400571106081016870490209180368770128847138177212838424046408425884661689711323279719689522300292267032154862295730792066938343317891176134392632693662123573523797394076759182105646741030241945235165425533139334614725365862172842088490461040188734079975973580811718381399203513752723463926988148882967041218472528136725024831405078075878158738801688043758657500956414018306941226537489192718245465974299845855896911237051734475986050698357351066979926382492612223222478154345208247398598493410037400640211057248905791507255006922530032667681245733033050892451118558547610707473412748168584965034068934287455867279494915726885775690818093428745797545793154169407078020473404874323952343635274557821619850179755714298514094166570262113326897113636357287291819081734289254887629229596850344755021846790409542558311699606863004843443742170437157649998296508660327289057377453253117660073868527511620579219163515762725221738582343773323579690835550841177651876830896379729760241021403175996924840098144813465561226024772862183222331805922615270327805729330566724222831553567184729262495499762449408501454099831894429864398782407670151103736737592889535803100269949493518825321375652336675078842613209411902398436476394132110602507186188556765118105740023981879483263355441676648994952222428164878554149914836409514366208268111787897025316187374488493601631927985061072199549795935126179433541512678126450821001014927443922765049583691679200202228735077016839950505895505769417732424425894135434566407488147316786732402284564711427551666823233152992140940343993949514140379403906921533106878140401835336419472702988109381824705690316339748394453805337656012493602771572101451795007119593696214146708744130166301914314151148404462518990833074637851302096757228888172572583088891785038831904918596215652829854805932700200701128009571418387597950115851171747041692216843160594739689270831320462753733015588654769493523365504121678342403831409051930366743400311980759959413665003858226808006173776166042485747862871599712888376044111199650879590830137868481956128744755429017513389274023602332317135954490080192087351513082050730935489738168684456934217460182524795459214552470820248685356673442304484440968004049927609700474614257585753029617731296335659622053182392769948431015503165986696491052616160112478446884724710603677312504522899212647571124397914274272349175681137186495487431235377423386546686452273311762495380775036977835518636965061846204650702880526410204324339985843875833116999067528691825955277529217159157644266375116042235448629538452707251137509781449344758336843471831261731008737998845068754882064556826918175834135824054994643008643568784701222257329749454169918388003724910639800933418444918679897227587110012928038015380048645829676488271556939655947962702012237666632854339263971736358653955494698812893067602908225084583201587221943521833153670395112549016874391911295789177973349458430754887716305837794201687914166174027787321220567051439021251455370533271169571181033775298810406119417532356619263694110431102773472345531546494191034868270456717707716833375157395277528931750836936806634733863605864167844603877263805417575089088896668210313115837934042538480266693834752044784452169289222679835043423313721502812325459354393281600918946812391931135774405128726987125369260063735083220621541087991209188819754695859421399476435283277920208531984680109031290063504615529929274502330064443388899407677462071317094379519568804763290689875621882390872511338729426184865370568802491477073145975712682504840921307775075327520589078372529290764782500606708406600664110658674801254522441403937784624834770476934524685908903533244601616996957362443564706374781437413532353032481100962337571251859838176166310951474975252714173970989630244876763642895174057666485047937385103142355050257705916048910722485007101510680730095248944684116324772119672128804472822730082500057566171903670386519850468384193131146359806972791655134495516377985148652471058466439205879827706743909837538241329033173363933939873254337735132533955104417869092576866351481111744006917866609512796648907175624859167480213434782252900703134805897291011277083227134104284396253424258758458925229682193409557807163276532552701741800635628034872190687687119780124011488379405160304063064672740818622617275751806333657808103217388823415308283322604371596533852738381797635125501905434043254489546263863241471132073228815704451785469405117725768446102090918688133364135068194250934794943524441982463789212278354752856374888175935915031342074312034363468438850202041278525993752263172669969632263173027553467532234760664262798646618523820364941136071027208288010585112388188022297357559450617702585667229808222784826417496486560900438750235986306364458586900851461188428130466913559359864484991709990004818556435723271727295025986957975580689189888695204770958936775632349461235981668738669242259826613499777129751416906440431540637100395572208354997845345910040182052566606106085929012474613089469661531740594268832086086401062420482558571390069955506739160581155792277903355059930179517636421677558020925198665119457142771391954416048104573064004805545323436471909796816812573042806153525207081895955539209754474851391078714581503221583042410683594409636541174114868824849509357481465893929866902488832845349764335415437427203140474349592700837397999335591552792997498810196599008708088603145044670428000341466579978801233160053322629344925749792450410015060317907115159828937862005145720414313861980297306891090253304864230957586272067438862802001107493142968805897515124033631904784762064656405152733959603981737865139936150462029568458081701815205992207943830843008323425721450396028678903360144711204800090612192539765299122509552402144952156011733170235515842948890310299282554513483920198103580446993365059394146675240868109609263241289821282488355115973686138587221723739418408894733328648891098678827156937113267754292082956929918513137056378374494868094349072933524544731445384780526354542640640409759686029991587357570201632491361750372693725867734460065472221844198564805087228536483956519269346321482315216850813879355323633302267408980225526262710066671266506364587397881825448152979488829940192463065953190140678995435732158086959336246912419905555671188110872749302537611499058795826698491981675225972135898561902642030008186729170768339983746251816131880818496471124160236604301358113371323959203933113616559792246332975646544916214820541996234847596741253293117287322406139715332949118607790138578003169255451959613271036741904325428228801010745267455071921889650985741683401532602076470758295850797888402607391432036226406788944879200509416168899067513444048217634799840439127417424785485598007707736312806619929454387175324150457647441735267922982658639708303534644852424401250539343092264950342347377158660646677673930757318811335094091023485997936427833193259412354372995065608961711635888771377722713551892030356040223505636367570896401252163817547435141960081870505075162437511929487690903318834766494584727190789542360778362307048796681010544695923792802747014422693393734421414595768118124014880895039266780379262416472573770457463948227104154910951455808515717432916430540329242746436465413458348650074157536045909976878315368114108374289351475204783366944476697755093637405139651252705128039520569209919826440613360978803372379319417275590230007124171504067461165395217872145841455979365990039075823177109321588930332031070208951448895723975215304965433297005314183467061338865823267117140710867170354691566837786972797871042327794712449983615913018113416253685780043218066670508244238541500793181829325815354794817243002403882007053560548223075833221608107777234401233209952904560743977234008495848966543334323654581419719648826520834465891307391978018212540416937496977657367769103589913232414263783435562313484738658974842106984451359425139203489773335517743912078626788209472408406830188108089941772770899056300620027393542160549302677753315073572296647723225085772384314309825419658873039522797851871814637918096556895924027508756781266953219146191301213984292915983632825839058688014781044385848538671669278942708256813909847810606629968813983656430790419743924310756941521960700471200746558509908812681347175884175512494433622864604305356074104980463293023737463128806544355335561444508874569205367670803090599024755855097638946600307358079016642163556949170321825156855644701996004126806962753256465769812888904265421868965171521185422920948290260280988474533367687997730948942638254610721007160072330940990618053236546019191447476131621927579594854091348132484250248678265015175608431663254625825989664369603958206081161758693652378224017255365140253975784876253719525348819282053546898414725570859724653494437456599022726768594673366124868074935071835361132296423590119868285987700489195962469515715324171639723835815800418418641600447489899681147234764055961912337412373615931351219448634303505673566562067091034727762163107377874352701970447464809300783285861177844741038887999620708497739479871700960018087438932645200400256404865452393740159108408585969514846385462689947244507223476843963948108022146496499021985720231522896981812401826875652201294988612456417520109815126629639796410870690357718170199380380970031891041979392644221712234482430380558599108960001121886810492908587881431019255601353748980756264147413286533966679814040107891684966044655466706751718629753751863160888554078611196833986579484870267494579325910740489789037901466051817342225855202328388356497170202753474416796007963549716035608304640898818485526003699223600529265963972129918669913514169282388592570232160892272009847043613199048502058895968536503166161449347781939426269899661997907026576873976496569326740331235889246914430825852112224075265763368845044893339852935007298508343797189087863701235747884717801259917246268925830334642326729436424429300422899451666184081381890611690517896311747214083708531141523314884251423899196753850403430037700173783450459201179951716006329459445416254653475989814396779549911409396776046040221414378377969943492012324118835069636429079757727144859186802231937596091059062242588897054449022330879054592622644250350409444578974842410638150770344615767909331003752220512664939648638565641930402820782642703929783953996337871910967923439753238268532387466826531412925532207447337200969135742711359906236970996095513616793966057410685898026707100147855637638857089902073606288676476388293299703314315200486499571182620968999273040597480134997257648601778301239552257414708973016081945525163070847903814726780742375116250436140746761756408669675659897838574711758771367088142714747628874004663256007560780940870767894625583058606161755686046991553283972664043322498615703168725966339731602780934530972878830786975422778081816126745606115179786732875170758643701901559578406429655853879056314377809193371824296384766346673820645099212045420776228811251268968351984992849199641722447235231856789473220818749978636383325462652099962496909132608108982121864752877108680827277870399932925417975439495371250598908538158174382056163560252063787129088520993313165304059297725004974409027327824122544493242533590847969289049478787654204136812564310448837809969646875121369742905351801635506011860992236825120473890786686774157582566610269321091163506002483651665463797460018437306606333315048158402765837320136965190851499084931244717675702306099188362308406417468773878091805340009539143591689595971126656011755994471843072562522129056675452701866975451885197000148400069951552100445629756418812296868128426227981105740660095316402177917446332109273734883882667168215689852220622620891722933859722553727648512631461622188602501420554579164531997202685467656514626735012894322055180233042090729667112966748792588447668918754754022292449914273260992010496415859274639358504729402210825270526792429157308599934975541431453875806864403686870769453304433541069117649141489153415660212879639888397589198760977034614522089023025038911891383744249393867148270796965322780008457578636958374869007396632805568202855159597396720066212815164937703158671228060404435943562810761144082781334175581450036882679829052510795924247578271952000942892883589432196479149323824146163253647928852933830600413996106017246443634842372793763551726866038809950929528717510630987961369672595691677953759335587103605593122564544076747902498965823714881582969758184641957282622950582068345846042414217043660526577548315276629633538917063602943420790725448060758084745378950250200293330528593061729674909432380726831285924366399714247541863820489152305500564173626654260586227231917031854738373333128760192864845502576105975608183635859168598784618839021245010847556098634420466211120999298036925127235513096393391290725179865391293247820908329525625464343081513173549921845388116193103680960155482791095745472253215999094796444807024424044814059350949857533988845657362770100837242788332678318846649211749461350958633587963790725069650412653261951002319097828536385692742061715457736787366035127645797203644722994375003956642957446370810724105752096859620804436308967496352783099058008909746035489014308783440201710417747089521039618594933736699955203542690099618490840324000414464300648425038700099713137632872676276487980073937335004373633536774321744021351547294787909151397785446451234669379470467235911299519749980912111437447366883097844004727230945245603506493980349718008914740782733625426621956060500880709691554655250072912665780504540582942457668721697749540760462364037363035273027624180195304166260541200761633888891513963364643776233164749359252488780261329885666118751226446728768163435052756527426781762915917366694403703979199221426401837676072802004175311218333597106510873419879643312816135654626063137319794253035669800828405558834541521973924147035614377979292245599558573458000380105371405910691188434001532487635458396165951343107877560176603099897815412689433154715697177239836113337395593323923178606373123428219450477189961209822735685373955327359157165224436840648216664941297660684787176082531543636344164166435058581400752696770787523820064168939358565345827860299000541420697694666093532001942299758590008406661560749454590729529442502957957693102957475846197667158192755854566947850074331153995903593111523606408078155942756214529908969351776662911694383726807541288303644800393971501468306035192797408440341910080824535890330782686565209875553175337663100616657940940897368499929943568517941096251420559031967489269190397260453101707630425966921176185741302779844041137287146955550848289364322997070299732439617477290816469747575381784521793041616301620686192571532925338343836651847993867416015232066268751220074190483534551707420915155212074673356341987600390136946542075235554008583616494173559609437476147834123694099264409075747721939184671391099744567697868357007505907257106736658020512176964461423535304577153361973873295848495904563991848940695388975835100656113540094314963591950804500600612798576966682382900991432404843635288248892621985421029145427325906562388467377163606434745612049240121769412355389583786992421723256906224876933698887202829065113927736643199888719271822563029231991079215261607931549030150374593535362778294576641776425746144737246644742775507171528034016812496431025238635954927946464980790750287253697400366515181168211672445096522665974752920696267950413503051016264396180641714276441222126549534734067847795459668449803183883112399822953790447364847624576811891102404736167805289550357466823565173803191179485821200068190819907399048148105569556921011818653653867831496446442649521533226634615941604771842635587692536516370112453621844485596265809115042560962275504852040906262444324769329169010656642893491184920077857642475969378152686117704647144764154037645397292747225137410297313257572267710617056025178222915808576292463003716568483317235285031339118799924123884328557586501444577596092683295301290925565231536307390408169872558385548700151801447578249889267856235998196946565867896549542380308767727503247847422292347016867639011381810847792030031879071891983311403307497835327936067287007404089268528911715855169047288883798867262736399165677755914393632031938834320052697058855817754622999151037836670738678369519774526446344327238403744307787976463321257310238524928164594778205868333565711259701765539118283749556339935014383670058052353957674137033983680253889644557008795156063633190659783657875607834176149398889030977624001007496180558792562000599323895453674891892528497553133956287532355967153414699862328296045042146288460805488328679320870218070627029442537493783840994468034438189249731185050484900209030285028397209819284739384605768441630347510704478687600763775329371503275538419025881296431786405684465373193115948647081997877749779238454770414138896797110952708150881965188597914683565163279255018784819114123670736927301335057242002137473115366989434716764245262644384106679232150997342890180034649912900323522237719986905539846535963039893324436036162690022639917019789893951325088035296643973884941494515591528136189323610402504245451654703881012643063568572120045546981730792413200995790077700134033137798308617207938502056712891720568346759055483519166467315884552639938386348252805605704670325120204937527960674916925441180660055504630926347079980803932992281987858290512131438153137377948870589115456685864952016759215171030167626068023476282782065036088541811522591605025224685640919128035275461321833302331467651273559766919021689175486222655375066354550051105281113277321193647829588626234937234528300545868373070602585909892344537570639979629403319512231941930051931852431497421269724036960948608175238039228699092860049848717859402068043849080687054270986360105836264241470282734932053377919781403501813916076927610439725656268405489740437221990756295227019934087213234551602415539903794799172890624560866787328243459706829381841660343490101305123788989107393169326230546201062754801185875715215539866361472944817365146321345313738845926825177587746696467122250104206523399113673655282379976485698261050484154621099154907358699294914321948838974261467385221457786557187605509082741402334159585032215678635176201426703424762757354935097047254273271788264405047951276432577466752882562182376297804460519343272140227723077980352983457384548480946792323000596796764179998907887132692053715899431527206222321876781899845631957826510941234465767371329562977810299675651181152454500913360026918334472828570940012810958792068570274322301770822801245713400412051737252891645962420449440338482779328118148551747084638147111480958176799867888695370540971831232274308898413667824716263450792254692299650335109453689361723738666935696731426693230439214479348363829629525484311182870507156806489842131907539494189986121144202359820600351272859123124630522260175380230256387849087779028689405117815998441684244220795500827388578513888330560190556873508522580674483474287268611542322312402638753739085509265298248550027078595483765364622593794128745209116054697197181391938958267205473358082355895081459469044011471237352324201449546877231076780555325732658113462275734034320963789470183128027001744739705424894634900965666978617494096855683108192177701317260020031838009784495125130501398460936342346372394941004889927399401081713811546119537205671407047915138230929249048073487878838325976147160470904167749167158740237888938595525259578267097489341736397751689480608967971582764539028910468857112382846565546750866221353629141645148734478717946307260130494602026242002478677623288053709051300723234002289547239790482745190031067494038298204706170320082411278031760732366860937002603364755848000737288068730078087474026297873260780729833718665452906522336112594453479544535212549271259681137771530080926261822021855857532620747034433817247835234768496788677043236781481725765406216312835576721307281564091480257215025544576337768034630308100152218782767961464206989971227289505964359069885920680483526660081512958615291595833957034251064254362028298464144283757005851793542695082108459780536365959847427915097587275023116674195997565936099260333636906547192213553475586678302574352808477065745191083750703398516893691147452855958543049098855159280097721054878226116099927667134902975586831934993809350838828524414062159005565179068418763853667347180281304124213267724484963861708140780399242072070014809027247561997421400252216059347073675769260709129858719641662590788082279534246201412644388787865212910133936064738754107320442008191393626930055610181397921426635536631855796893888373147717302065344348270670806596878375406469534684388623797459620020029257692383812013760431305624461423624871443877324889712921420534006771046461992604202907462244793653615040684344023918429281550781697947340510496368229320431252124825721174459470951395238455090595644442571388766675082449012155548443965417569931248789695635354036311732933574820525709191044084727999424966693068177140611514371304461020891186835401103975549176675384819247452117976471309839632213149115762316878421088224733694441338910637653736985864246126195898688854052110103644387364946977266040184619423871183088274780408722199649235945082830074780273079304301759235274592459837883919110028413125464172551196600518141100432419547950893413011854127658418964052890745203234704810684567300762112850717686804009111511821708837958238343982355733859499099711988275423655742000499474211414118945130746778824886056970286047368923336069549578304769702599651214692719545413035399427663177023636492970363130143754494998158298781745989432917927248283593427022677244362879623737941435780749062002099342987545470550529683088067012851583936164022611872031396316187245159092088239380385015689078676186944440629067329704632247852932688938763137230226436995704936687145781498397001043549846898311999783210059538982803669291534116272459145311510684168231624863918271879349244678065571774994691652077909697632953743244785283994964019249922282336751690910735506401823379306245101767622882239503078119755879508833026558993841666233754497904625152371725619661886502336634897320267333386136446835553441131731349349685319013710425714471402170082899623533711549237241827354309425996238497897523809940023863061890093074157507828552178564243768365948582540766947829631320253811169815729840936923699517368683986277429065978484889221185694452710055031896395415275853025878864340777526529520416939556714092840903331602006320322038444605075552662677743440990877976021350401266242882823362757819049657980884417973730443110590815023789925639278783797523142598797552917201504205696182239105771232439640355638898952740200653229508650627243392562689739507890063470896060519062836700580223123953863627988284666771145236942136834354555696143062196034440134616177239466769640618651173547301693414900607782804704255461532475988836498403069507003706986975857213412475388041311545152738680012967815458823550411949560743597460255650055091713348144618129714328144887026326960117401441658763843688541771026570800851347310676580714177048100653015245814108978862967352115726005061591614261404939556695028235216707155153451478805750157715366265764174990698334473216643193547741726473565204939923625177407413455152313966650582667968465790012559457578692084318919533343393192826445002995528455106197573258603292889748216382252050052456239658404737249536523892265604713892258588725132926224973681777827250976829755182662176840222181441331629814922191765251228530986368971462124952264145836723717797423138157603824237728238792533487643489176224479234642616303412690112113646762826359192001762679811099156292375157024718843373058087358853298087400477530835534510893889898374485892125436303394494487927867818477850880449863080253670678612585810700572585940638949147574894641125804863549233282352476576971475711894876961663865672277929974167380860554766115426263860948438423125043136366246655620582711666899040042118834159003542164830532425608837269680535462788696212263727547436873852151743753512905302747413326693079666963588372908607651965632272792771836362495789116958705895900524531265104502763067076143615641179297473976260508992645852021403601822828241477657985495920941315541418282093598535530950185611982032528199533548636870873875394277521821834741923191401171636768876313012976040596505546151013652918461166950123628212728544958220384850996572644257863759187481295515364108155600041783696704942582608811604374811522178837561118574979043750082214971017141232699856781079598419192919504083891477593532362513819610139067054440926246569474542599713887717318715920857172200060926476611669914290154810421097423418052520108023685782239572659178182194346066354640958852762420633576812015682698131132694139026162250110734272675378293594318906210491611066406084284926009854680946803191555979807886007243761477680116624436653819045643119742667131742638485011781742798184892340559888579283541334528980289133161061139399308757444969540624981525005235213851441714193131200970994055234097053555921376204056812195198399147681991956417791999253429270674454155950117808192726111613477448949495848239978504853335269579883675416790890173778413093787027339609311821752183952985673698285176827216921101463447753370106280258013664542402777357055897861789970916703447296556266907023305146284625579790157684307715785224092034659757436313250117337913483118172639006218167275701626027317741575824951063072410786030707659232690956716685268089904386602128337189537880403402448398491890571465964693898427727329744542978099840766363744114365301926858295333889053008455562798955576639614833613554482056396848008742473746822934286508846390467229688018892717838098975802377636588797911061342285321141114861395724294818047347584764097724714864079580713830385560546470460143225494149605417966224040903752721315476523246095340014286883139402889024798266710259850486422519701689769941693094009603009496668830030195146155596133208068238690838213821899352666131865880044204121488618852684847067037980975814901666934140147953560911736828471671533729279595166802846576958947496897351431495493254432500697025032046375008029761488539611394965229551762305468788542784046575335942451055291331871125803304512395694375607581413840739423772450920437004377785772681320423524761163363534207066336322646506467835467843080053291334490547143932085409771725963973571207199094004962115732698676887372903662456354385624685075904403102102980671678965160102813062844397487179174354501006058639176218760579665982532122801903747445936559998794136557096870228400165995011329431999404792383902971221974818434654104998953744874219744896712158143429536195794710080197196812108401642942481680834730578616383621009950008300470957056881553280574227619678243974390126778081787002254248747261586995930468011526920522484881481276572040183359015914940962743575722254948513920260571077217474785502835921154145767350107964991108519079158744101189319221598899254240232794715144950483310189020312181242131301753267505566312344214261010155927743297336715579208957210187809856422168565248506986944422010969774851451358042182677245145307507514043510693127879752921437383374021692459132595878734474025541966316118873931381001065103596609303497391191016130191536135540147305534600796785464247774466670223191058980805400411883157524083050010286686675728432085276069884473404506837407920211196396802494358224503325428500627358717163735335502487722190237386995085317004145297890852126817192620033750080063254851444552157909094160578786402188229783047843464874031671826876305995220777766950998107624182025988234850083329526280395666064037877746384539588085051105540564566932079474570411794804825283582318401588820915258101317615376779721691967073976521271503885002028649535237674973993711559625918831099146095976593156037593935741574450136779028487138599314396046927101735812328401618381796553250886987522070369114013950015266603616823277897864264235848736936959318767303713504854008535493719805825359879582076300201434719207865532994887672907963935265483760205436223052830264498936441919938133521898763906192165888246733522496438721751787968722324954838236590841815487853177432146129086531274238094112472295655654121714675504897869558162789634703408141352095985936459052822936305130949144564115922341370164416224321160607583397355898438940584402047098959103910465375302163543987626424948082383582805378723665464652661627634586510377173411305474637392942094660512279773487913540165172331768112108029518180580397338102927181758540761506487560488319667894385642800078679889163096053740799265877106683685481278490200466392755685805866201056243372662870214589679783664707264029360013090088284253255041244082278419845878586498150782042469595731383190707296808648200935533077451184878760207990869719752430920710091500207439441423859705432910893444128610574358554171345626522370052533876579464095406537817031910843855718305270574001146278205761071194278102262899678089599017050963995141575222169578103576923046356606924013036225989924154414355719565911392482587677810046507149798098791596924199347755011647745140515775903444195892081065086433675360136907238137152839488917300809971360096525624341410744971176156966945803963488493850506799053950687461675477273046237777921016090773848691154809870701775481463309944173368764807765939409639221030326204272624276823097237589894271296884551884333909908764250602852044809787632903798669847977811957118435876098391739869389764832740284324824052738740202352706397182839499160289857999214094908624545120654005985866859379278457492807677113272463467647631866347637826719952262841510395535077623931348062368880063929883344690635716329114617417420700805674568813070663436845113361616030616736676530524964965818296001021090744642439998556821511733804594309765754104877660558486749714126645149675745068110921790026852824769417713872020377668227540649526096421100822570205809102110522803108613238120267246509653581127679106292638292226701058758978211518778853731497111324190679930400277009006082518642577426090570139341096973212906181582480033712582552075990731360963926635795306455907484026213800297656460978257841780888353085786634645955071327544910604954204346519433651234346534389105227110060937809310720562694687538728491950212501916579314963872808394121288017220391407000541100764259587057276064744950247401962647635567671185131168968761756862765601168454082387320329306837231335848918247130818014387123449739739621558177529213919539273937950621047539887945031065192185572067948832072834454737798994260461798968275535880198773804231021718700321193106275235478542429820040351219280620803994248571293070944182417039562127851087930913871604955527737981022001965000968949508296922211537211415634067461445902689155591179002554700800355741754743690825574029606211654765459521131953997181196736283725904862768938320172285093975217204670561987097077703994159305219718662269533775236864543263131466076299734611458316163802961317877249358799712850522303510910730806911836180328135216169215704875313970640829646366376077813373537384372737355112165357310152051377355725049774868417775841009983264635976340912733145657417740020337678853597248004969165128546633267539407011455813739140321353359990667548128016400722705861231712938984827613233889579669776413788754935055935666844876601017536490109956652834827169637559195475924543813019262442385673054229907102960075624381026671607151109665896946737679054390364109686966455098226629801813955490440662112368080949468888081005347044989269575800714210004092988958487360700467982376180018744575727844423676514393238886381750144835621942839347549162699820871221797629808622339811608510322482760518567517291732892410804436945879229420513708498819778889347642361192006230882451742586794034320275043930499298202137861614027304404669853913253555146237358339755947566147099048172404454700732484335463862041763132121988516403466165880054908017863562474195820984277793083098250060045541446978821133342802050751582732665783083583643005970800753193204021821765456397924716715527078086134229365470862044069703787600015105802963142349676138473070565788030531178237488243316522140997378153079911896799496743616426787560007846255523061386100790027684078692613176429981548336849711035988434395078692843458238768476133056287028394182290841598692265522747794440576025219890801815983132613264856949218349964006109194626874254815589252468940775371147697679063609095741212024288758681107653462721457928886671381881315856282130666777164527892362304973056053935874236561667259269379302168135748648736113904312055885311490021294837287079208601705298120063880479095556904971477432464928841703291899839333312151338501786163906989800483733479880173032810862648516934982180141017075984041943077701648398197678553073017470325773265601014687886237486021091630051585625061980764426940819472835696728511868101516495379576100779892311332834870808084454509877178977389357706927196800404836491389072731516573774148324272020479904405641865629209052731965822876836475160906334729543626000733256790159330504462337208465943090251985417212268476014169122479013944221225262140635105627134428885516459845517961541540480571231029129533187928938433005954544299635513198840135769298391132995127799830489363088925190701953667722189522456162747360391423397835582982247668493515791364582362708695109876102205734252627167475562915367893604610689712509968285154004019351940300920957396823752108066493271886453912173012455707720530437541318837737167831078025228537683808145282115603114776352265203126832131810586793893141821121618551405431915290224919688309176403949250477795006498143003428296018633898813461922095618353752831284457870045581581358414516856499601541180426600856757830064756571536281237848656536393430794482750458083938945617402062472613475364876719911914308684333585524892459700316412629270931495610639252428918598974959924635661359055100320449305723682961162959280051065691062866149739818129694960706030619839779943922074082858561614733722096264351765258283312130686490043611736635434858877853192322044656540392046929920548823428441018967285885777414121716132073643684245122650652039585454819803769469400548890257474969474183274410659563035214277036934341731838823684091958824688602234596886634680849966250722251546663554168136805855950542266924830101612807506275080965883902720703897319120739419681098586191226830367436430152505555891499146217015463521911630128151283937929695769489318549859194377019883881202766515759357787887155003320045552499523484844327595828830947246882559049834237725439360390654522660158104918687889876728435344239502468721265341293822553778756636447195859487929766176259943986543570663292819579362577888905655262037442723682310597545100723408186132885171495388712638813038384328369826274578431316328454179825155359463498272789828096779802900867940808050168266914378686685192133500872079315656616959179391232893201679846093986172027877985323025976063166015872606178258385479530729102415474075968858354120149246012032962883100895340093118848668805165174213993654264993847615707528333864563683787894219711575971059542540247501876106562448281956655513962723035420038207078809808927415896411929321204723926048063760211043776144046878696984873533528770506747852903631346569715925887601681935428762415576162392109806381179803911538151168750598354828902890046256055044725613595325461802511006621889658114857571223673409843028838993464214342138841788725328276850494644240337944670290200029707619804886856111133735312525148622777844196216957003540185329980203459489392065840088454908424251736344461457418213662044267959586585021601659808357867250496992974500202803916220516439546729994849046045543225663089549949832453404908003344494595733440599147089436613731041006648069250566835491386414433479304902575648260361939640435118306906150028767704595241332178643817315468607102672701170185804635794857755849749394744406720394637982596621522189109352319654106077375771338491572796319454235541927330842033311990283854872843458947436480073656299224012534387654392130307525631169135471038017758850099224578485432934871594643249194871276012609949319207991971681622915768000497018936379405662325240175199604581798401912357468812096728196335812193565978342227096949677416025309772535017629109032273386145965928635353445295174996379912675347769898214711989570058016102377842898334045878429186705718779658885189666317514976875011970929467105534621411135030941218734314226956032674738720832429772263931208146218548379518623225835356075923055326643793706621592842221451123999324483800858971202699522076860856968947093863938577786690774564385283347750969602174601061730468332183267502661289128589003487768818551087481076785500588806066952490152446698892139832951553969761900362638527455756178198552054027631074750443329557233889045254183830905920399506348386225128744342167606601359225038472402253119037964671481289833139699630682832552272019638262481863697746770781484675106916018996316817363243537810995760857649083925068298736093334184774520675057205393479402207597582679406134696973068096543670376354347444288161425276322815407983031049443077689068132435944666926490892146380176495351126567880023634169233935990964540572116108042708810303242817334927904380213154371161393237436759972208136705323180274231576367548770934789462172143029526408447850153865240481595376176368506637997124505114601332046405681583027969481150324909724578781578693501520750681235438827497969722622553737431695034573779775601775578104669499877492956030922971700960099311554924649028282548614704699495646277281129419820445816152490904490493413257204062207481995296101725872271214929318562356917393529280380859559757275468801921094970574594153434631538874700907885467036102005824814601594926683377827869281171056699962277239445347594276266169911778725138273437652862405986384502840586854852902613895039475594472982395584487688347428732381853993790104082385375617393073452362981734321102391227862514542056602558723131057709251246724524856225184744592697976020106271976165383457193403240318387127119523502418724419172262762981088419058910740598571073343532510033133648879999599250627402092450891269651471240611374468777753408803907986313370453692969530477528266261125817029905444139417852847265352021881659790286142571629582282935890963423568013610691453513490375363164268884041778094316332517334599026055939249328437676517996802337168113000270941806788004010537133173342791005976038458476527991820843854002223386023354026223388064620443446023019422865875794442018220975041235768183935945689951853960243282516452737635189725178651197491766550984007101027428800656070280805265254520163646934413733138767847960565455339201388667572457130297112512694606881574904336478793022428347959438082699216196000085358119668152659208357503040081861472301364770392530889594515356539211562515127866469177235080522166870850024494048036306164097301741696108482171718253553146601548685787389574918247483458002883071953553341630085940813650789606524757352718269213228953619709175854856171995796744595094021189343810180537497111816367955737253303745624130115918114457502332060086218300953305893664823155405807808178314405662909460101625367133635986815385360840080320823876001635941673958706313974595133039669174789775097491271806842838459984302466118494912248583515693266180372412187160151193526891205092899986172816036316864103735283013931322853370883172495484718339912793976013047055304909116902570382785940949854076553129981227651030899560733263218211276859751656467520916744133893441480072583784301890400722066577029077453514538054431501629404572166212234336980565997586317783166430016494804718237950410500934185805405284614090713762625927269298834460907267245530073622040333713189156385895942011202885308240684092006785907250291751474546460798173210404276086401340354929876295616260114085408523387297034617587415497737420832169648195945416403566201471740009171330822787878350680193498757661959980068945072426962353007362233865014774078202429539316339190555254040494199901420689294971414696442716872719427299800972242719828758103953679392568378223398836132153513368087528421297391444819064926749933124892059004983913755703269070198275211188005956966748106434979004320883807139053845585294571215224563423565773048650479221228964293245437247281306707929199316226145121241982746889357886344808446634650337479259496624218876567359046097336823804914437575491137879676727524671956265901226410549121577824236103540101619718027767898084699546785819528965207046989173962046286296914531117858419896593082357072847466021272783393679968831593300493418665496924036253054132135925706052129687031026905863642688212639398941936695159137283071221566514120351421490209098197428774556630413506181060154486993554771761426123007066664993661258738613902030071144895407238524596851134661709020478944549978489093087354406463521028903432601710793586052081765854507076012086713275538230115887980976333537771406675339853991346065464645366115609379600144174224402508602617130800464961472740839851551087213557730718081488247551443177472977288737788092280273443651171930934496386381430536910168709110537754643746467591838160489726571936157761629806257381955186343144585064071492133184182824937118690482735919437619345503568083048242144297152486968981266326738763965701339075250645694816710326240703635007079263436130668160872662656190318528863301489055282912859808636399468435942563319665179738556192119619666102139911230520537360434045776539847336774804886124698312449986837145169339088420636393609076215656140411195818362245044591591432656021596727276332504283109729296240649780254049900254549674132815024752567118505678742706893142682681511239934057063704985383187422651162469046648976709060202965450204825941649536192819163046985280772349176314171095017495702524364760680707346326460500757342121725436017478803292352366409712711585431810361440931109543637420915178966402945774746326878414994473692375347839521569200383096820557554581493742129014728689932506544710353121013487529500237444086307060320234616978097959378177513804960720876047915899438033832203136170778888322704203156212673756270251565747402939839816220243562509672769051629468356150905163659760693996436220024703252684386304362088032043852454449296505687315292412973583089328817183969539726274752702070901675216606911273416473477963595250373594294573469309888129492722151069253421555888589472079599362112460771941703918063135684347147739080274484447236214705987061432427700149641604116601955959820850138649228172873605438655951039482857099222689222091133310410343347202502282174701076707986735464431625905945682966081418629542365593757070043163367285807589736447834164573403409918250000878893193943559670913918851579841366857473708176688901303605001377778172241693730880289118278899136008513488987775867614170304921645081406116823627152954058811977056392326155666903899018862170095307039827480832499922708070133390159200687120964819493911696934778267889576449822080828176973182851331006388202170471857178554810770607989507905591265034141271025893114902623146216682774624078355414769250877916322784633734401155566531868440146417855528962490154472734780559042510516667529080764525925433344089355748661175651974844932795149545868943641990434749448923935545776476915811128339765550009762559468314443690952136699997677574992253298868015427129597101281606767844155335320787810234629529034426620327502018030222642554635254857538256088159847823284483649403550480885979242737931579808451650053781926661589463780003616582998214670724713749974898184911736932773396993893307234921812559167377296954147415114295102971672074601607664000222984662768001525316153192933353196212786654615892643832416713443484378679904177695165654866388518013358336304695126237804292393318406867324566588385283340505427789554954091999554011271620655452982970584370096371129300968473407523332010383642898951389096979383832682609883347907103555007884262775288119462135084169908904405588270381858315628537153171585482874298395458409069435265922858941920752444387921496703322247339678608762452733054762644604129197849660344242379289294950728458077385270936873838655769479350404281959444151283154461498959325127391665539751493608996602976862601368434290912346542630043055779680115481089802902714569565844632537533414047330398907112747216369229528557804031505305488016217437383888450681625447939018997417555478921766049957032737821521088131479768501156505863282659320240666971023343545151562235416148547052708038037986721959498963475647761367584379487114066559735667637238227702104506773241404680159679761571872641969493584967791467762736488831160941441659289611134382359825475889550222217146590218016507741937075027413915827833753874946532083044005254272349040220775237786580997203463706228160030739602573351114874850503400549635020808099238596295767291536721688330021688693097952718753862293583794135120830650529228753018512098028846164330984466941792583353408946147041656333274364337486014911858552377484630387374190502637031368547818822919458077239891262405773622528727919855797954095694801600973264284832936368909440429095355335942855526759137227627077861758217016307242749297620692817481575422418489853897236160865750406969237769715137963693287558889267696658137866956389571305544657584421110009618321907330956224108032096691486845128120691866812818025371177554555874876519265856903138740047280781841045018172314659294670632669202763671077178154313856438972019060853889856693706237863609924407975238250023618010371711509123958053777273324652355668381574909928867084668266324935470901140817508868668086538479495823012674580839377309448276283460715452778694332060052797792434308686617557404889839111894060369546492366027352640483464353153255730296310460679101383093859220469982559412919840121859226415418666727851978757571005238623785653124934915780350522283374978626364640965689442230419627113575269291603754227765086936952732620228916008533871176377523061898800251609434761163456060673124479252331681604155718268688431468395370086875243106170202222223622287587762916506257990478709398339627292987292115808937983885357469477578720533219650429973838384848138705942873356460607729480371130481721102592419148087957632246818031875588110646952736980265969866231477059215735751841827874199621354701022292314144626723410167799015812004801652679933899578266034830062415752734646342597387443882438710105086259672122171641225228868334223941053300374218361347317331001758188108192765638806903273845780955783812878110440544335064054383372855914296215853306174250138493892171131407416289348558135057593125178279057794057169004517693960755271773491333038937967933195093114133845060724831738685860596728054391342561089581583003101275500633248613776284067171096739274444514978066685605202379141722796946795407095348791091912391230739323600149574140123492484636539154681654148979375622930357975037016117421562368644682125216000046961306782570988210996653190879118049385737464681790702619196823604814404729558300390459180961445227458487004000959281132287693115205444169541232222212707492654309917000949174578749619446375743877728134489598197755003165834390002631778392316083999051148937839868198583748084289359438195185211547197776273682909334245586746096055913385159719941644342346450800089382618077002934001676101517731093818068474737349834696067415069712611348230041397671969158218587184192462269217747924841735144583629407220460548102014901206760962328601138437105707570534322752991589326377209667089218492496404332973599980626760702804008498404763902768363985709440922533942730134776629661887858477989700669610222456315755111335038807834992465178674372659155608439876844850353736466514910881233383513800064517024450784944709398552478627090154004983592729753498605277534850688451093040733342201056465108647503005550393057243038355002328033517349335510547416616969988859486769468340622839578011925624076427071972895492279777017329627487731796007272307679041792839560501087982184121541179747960486521387461568736348368093904455902566360265425020659068985101840141307908644056797216698768240302668019381917345187020078065495029473843841600795391856943291737613269957569118977188045629460837910524263100702309576667592147171806703482682072552812416432459677732860542226322690518733305413028025037296112130750997870014816466503394507258031195804432047553704347924328410276840715197457075367647549274569613092653586043174656789764279484735394146409262740457950640231182090324212771352547248451860015798680632647126311296362334284917336530995653549970582127108672484168440846292384923193208281600721622577750721532966945258883548574218824476938244585828148936028114034966081487009522134390850862034046455321870937983704446761662068763051699148827910753499423490674185201252266105743403284235857706609006865507697998568305226413493856172295228397117531568824180827241559863550373002243725014395054403016914920210456936983164044002576616350142957397976219232080585986013396557063277654282277247868415723510185258203108464162751169048414137770528155562713854967927287383358150361513222754999837223823587207595281530139392453776425374764407458644176067085932443876107496963899068039652378559854055848697093750262253349973359172259708109641062199152061705137363394192055025612305184525467775883093330961172560796039663784397739286386706035551993291025204807916546833296326325313772491280258050439090346153872124925083495398264319875052421299299919993346303920750264670042886722129551818770818746725651920222335577353170300927358113399198957724278750072519879479199195787840642962030165552913169789500802274319533176098795021618155040177368689566470216745232284734701766109643240021587657471239606890220848393428246822078077723017567979848065644476515500001317138006925684876397687031135600626474582084815319633180344980303400147717959839745399196170595654894776991454634867610361191974505094732975219479260370080852700597948699538520824622521260216844779509084967105399100124914788783954974676277874774721602741497202505428958456783883121712710535527261812938689761329952695043150372076874573735889322412423480744223017257407020271897100865596905692510020124091047754998897189606788360456121395925892879439762701142268471350883927450882372815088194929802244783794635132596057518827686431815039621904886148838086356163142553386200686773819452161989860198984035915863980716461776192438240763413803855466837777787382322701535680956207225862075645490867793539276798867345840786852824826835264086717169853955398741892831175564911457811121882513868549497482948344328195000115337308765248926705048805370706026914699336976454907075439065936005565055721145049413771287350085384172907030407823949766330113551177798481021332412086054921674465485495682903908971015926659427715735003336234496528885157227094872506116722185578305003978089364128477004885939456121063073098617108158871472414158698975135880736810583776930441384914758505091226604101974076555728055838313243912320592351434695454474654096232073368777828467973301508018401490134143756826994614522226327892386405022007576530499038639306241936424648515708628399947252801085467211623895801494858810011960607050491592741032363471615135280830746943486295153693172856628374014616897655463646608591683919367548386666928458698320152965536321523691338243327988727490186623583775139105653768702398859520542177752860992203320666002922462020169828084617812682356447334220066816917271613670831058465955116357811423464075032185592330767196219732268003080561644133352173931316768811762024844978529121977780916741087500783069132526045415026896156816598417783534581447005752836921137341058414444916362481789218527772525238087263432220606580700888220071345057234232774429216806371499607241961817182241138560065532099675823130035733614837365553107215355777509083890341332127294075238000698092336013324989797530133772980764400883951404277501872339377768176890086364344470847937601919635198717567301944009025395122888325100546984816231294839244905455894769206388272313461986914932064418502360738165005099691278833590009626534868934644377146447547086328247598142974682544622727360206465254714615393936048673102990591649367320901796678015023881287605962344322652249224504614846959035240526819954613196968088742172489342816157921186467259921830327233880067236676813824712510311306482462540011274599920276660051354154331550273262948340293150033389702834253407090704486526967767471941232955534267553085851193993659550975456704805833128704064808851021514333802393072417285619636870681200331247100268311075632960018600119800067765358823716516593629465331345421880607113114720180760815853914165494103145175587054983869966438647193525046831300463071201110994865041217578027401976767160265219242408040971256604565551055946664114456704020659984209575688990340463436935697550106051237926182919031617266949319450130866176958525122908239962005414375186393039222557920482395628137836468179177508089035361061665502505452313442988108617317993964173065563736788108543979759622610093384020543284968652375082907792103275210784233660122915484558543225089846086777935963315242340063195680022824906324529003597871317460297146823263717044093090313983918497936202398262077760025426504994133627654962566509418297923713178339605314974306509595534896675731835737851466916316706671833884615373640355956302678516295147958199265459902958286066342980245352629982828376867432883518931656698388413958566834334574046878370033705760139299343217293183964497859018562815985519254526195313986572454284013553671960349198380799506214294847023931103215602187771341374231311127147103239074539697475516093266028008554354152307212388270323708586198365208113687041477170953487249512624281119809765934054170702357486780435870204451644312663881730277808358686697039880691491163949620465324011597513502814524483769154039318809069657141382120358652259050883197096645771902913428728860359738979488716260252713621697341462452672855005626621587791487498771610268295867020228442661351879768443071586792791950343033718079100702808569967758622859101033092552105173903501572348116194721777138016562216027239024631789620746665829086644889715026826259682868114268062938268661750516809992968472041816156181008192173414508543926218585215377691548990034224998334209041676510863459934780616048587522447326870727030512222098021851540936386928259660659460271804005703315658102627268703366383911410157314293114421049117729446688303830587321244633682897375141343684761848599016095906629259538012674377960808433660359291856832867321289025118580609405239478571756714682389663078258934285176196700372986846308830094785765201389945639805544576057154672118336416183136923054605372394181222215008249070801333721739209444010852156472161502727747087526472381651935909427410153030605223569078235599585407226716880820208515801081908413643493867233148928866044043219762306123136354579372575978813514171659059353823631596709888306806692278852264756644552868934339124763116064988563171749012108061825660486730870047808539514863939670256187773642833317543404169492585957858321138206862858758014978605171892690768499231715539639970478320131271140844738331913736739727671512231391628975754462182565221742945907006314655119268656111736173806236793743290745406414427326163110860414806792601946778080634517572130568389006482731107072396755264350891705093351568719169516034806923151193761460545057856077550447252224966325354322696225734630003400728838498812527120459422173946340680414354926604587060242133413786990584565475365040056804231587574698157738217397232148364676712142742224763849746907449702500566575729031030892111716787332836094959524788352189901695948347665713042346225059929869740853372097471753672926364774717781181856920659983724258505891586150237200925098557368860941576006822807560168044882481900945667934367126931604145686917597279000659659951845573746623859064551535384563352416042609022288276602481166559074596329991082609944684595204649664330584663871708647877847835876606705914674145781754051038729624125641441689295404328184530284114304433469643574834082909671849064623869375370031143930393734603814521473575971121874016311928858797133629691968978899646725622301872163033173090211847407283176266282986275978312068774326488375433293071632043525281281665301968634915873493769462612315821940949153465254317127566046888869792213261255995362406140261905612434907810049178826630429809716619527551122346992683151508033297722001735763445992402774229832529940016904058463065139688052977454533708798019944255956027527959817296797472815965890216672307739611867731007483895748131607074330494306537040901657705891697442283764047757809981367596749318779476978078966747528006925242513752189403859839328251335059271206465332214658661634534210177628508247370469032034270338948438607256362294161273556125807010991335780945741956437151356686282087712125874809919429405539617902242850619310779045929675123519405678677572903556895662878767973115618994258754725641601068414410732025932122381618533592419718333810420407888231797892640000259694257106082488120700270312522509271303329636182575561653059413774276685606074487248260624241515481763013804100926491077288357970307639763017256959851149727758395249373271211784738959495524595797003138302169788775998430886031200924744364546358346463421853137691549589135549904514783681125046104919724313753455899888450108202791287321896744175894984425337200472082361078005400529171858536167199455250893878211332524646769793407134538864411944822322903669929735556673602843629098199105516653549273477840439423503820074638190892826401348181852737761592036171570425473307845010988278271277858201027002933101059257371885124458266289861159917149123610770889217567855999608936324943840946697447509514575519900030542512041512303651515066882384009073679166462430511957714766451057170544334989012238461358104770802115455537645134173891100019496479500745050357291921587072268751710626391874960252475450070793225900634613533554975935481561580214709292205915231932691068821973667393279454750515910796133925315032585540402873936931802636776924762253359711148104191474429199926093025829466705184991891733175249280245372363664620601414793995164572638658573595757100708812677775695215572588915126460867881219750261568144348160096702723078906293827268692566149977352574630670242822036433398826225841335695647394046445394980648940216285390079932167559675234263439019016974576245706337423064229866714922041635109111370005801557166052749836677954835345313885741813779016277878815019230029993879484667559093350065017695611671436183936012875238115413670899275862618895743312782008432206747795741731642615442495392990813909624102287057615234240407923386966333219169539097651805260686550111038179378302035939036191957359814127460699308758350711221323230104978603150530892395216132698155200307166878404272491646692613106628788295384999050040999562084498091271559464626311627757263540143555230893772640410744391646093541185983232893461688801217652157490747545874819565162487646364221740836424853084632319536531453251133466765722534905808880822949422544178724582655708035099806315598974746593588204645981295632238509817825299395275730262046731768184843826708528966220064174172663842208818073759442251078937288826088008008999225663863275775931309918251546622976960225172142619236085923910827269891161392294048276115361446935913128182008519651406258622143777031085003739743631694694858349052067732332299798966572851634487318759257855957311951574925559162837422129905927794448060541280889332324421875160011896082159864980306258281290776450049851905920746752948444323878041052519138066754243418527609443364453676040132254042879769643427255335375866021883479220275757995723016416857452578431448250053954171327098125172374652876667866850571882302875002274946498171541947916237514378672226630590135301400094341469452107928465590939497872978156343029681847547662816116862232041578088192350597808734671850375619521099081817373583598201067643049590896269925608425504100062279990865228491200591688712758966540120041130003498662731186702874874866506038111607774198243852399833992791027337410646253639683442973661592133796165775147719100262969779031879829398859477902926015362499484786357083499202689933687955016890690908232351200188192854468629291796015339732208213659899192337952997572687911567290669596361957737549225151613759984700601848021618715135475014377578036916072039488822418196528519029309680210136646986375853432652513367368477002668352887588147777170120969772364633817684634780689437767843870188570787962200368539505571355345790032525286543780050994135160154688728795003777440069840851436019228512412758615678901369549437927007252281012897662911048517957654290621930150800205735817368817691329684031992499807345311344379108653627674129584615166405870018570348307009721441722210480447214577857903850327397194675730326273194288198708704691060123886628121814395634951891257789983475982717079659172985487224734293211044532206248931195828497752443259720043916906964376846161343392756071802863235382892837543921888969646117291922313875510907956868660694565364558469514947788213843469050264627376337461241856087826571273297048148240451207437242982237730450557044662458922586684882707434025724248740751467563908755077292228977488300518245548519544950969374037456100450430227870290775897589823935114325246148550262742675591967259619147318818717819606692096793751751601139760684507293234973114759706934527456080587620421311293629137103923985873960318896593100121010824859116237395826103512812073762199189767229821540729612212470262212300191717718021875662513335697709455030886627734233065817579736553798867511255341187031776157641097681105947207014298641120191625642997715445387239281911562585402696986900884098460259357066229945874550861158314047476953354444121733800319956817048931896606986533597119032528398759403173417517972666669536754397340368981882963665528437912018802894864999754915481141286451878757508008007223155401083380453571516232755530504151710696599626229235314816694531480566177747492541703157903366321976319452382858827143671114738650943325844122018219088694799160754144276305714114193328153227659657357028057997416499641318425758454754292569011896005948867764130791447490545521176578898408988762696728525272586191327783135595268070635958940081251758656953650892680110628181165442078548537359414756696546648177973453611106930818989347215922823325737950379182180526278521991382985692288655874192351117093180587758017403396718890819158668341208292910079758016352049197445693855715089112091295285929199338798168604351817618603770349867267266862199114559149926060766468206641989909625430061325104300118469451320208938963167120645561495575132308627534254847622059992910746591008672385582933132432130280349918084295675516089231624776979000556135498938204039718485706380416932775566820983411076816949431573693818525828096160211931092252523377102007143567477608899712910623244869048224224522936185887958622792693302597499981868517402677584553652154721096421489192690830433708212938566147018703882960125243271188606902127304279768639451225877532531630865697713931393659296370013192588192068611581110915142771741851500173537863019618266802226912673817987575845558511891583414340392532699848985636605844866719045591318653060169448132878883888775147291531712085194626699290960182287029506564719671066014495333860268607057797944634389808082130962321136938457514014290696897760606577527118023777071032750049445637361802548078929519043954836085393015764313908435686708778967663612791288503891419946459889580163257668854247103490086750639782755284266335766849058173363554134577960045383043055341252246639714895620218731360174324058461172266710838450467670249199151808680098492168131249701221574333860200007256975860433100774397711066836520364719507356701875935244813495547015955046861911642949245880354957332697417391687388333534157008338689354770525298563522130637114330913456722820083724755185005951718175182572857200754299291037446384235080235699944168503305360400803695231066501654481144635427567657572427808473421926470786922921887726586606905673288899208007820451830105311570976848565182297763712320651343381002953549702908719964880769318921678882769048887065177994274652800281632186135953020140143875730164274759583263877899170363802014155019568392237025042385672449131126803026898171666227204823572085420227256641281282071856976238358742800529454668955602325746561996310244628788948230978195104219548619066541795303799000165881456103744595380255872016701347591831702611374697185022795216247409641397270068283173629298003058461385045332568153014376290698631131428001942406465776423663865232388884503600554017703912885102678010003582423522954420475672842208478352173623716845912283798643658341989063043780445493454137872468036729599471229386705114090355644819764882075248367095157069254003693934471996123007998752466664420229652818809266794222129603455059395069590315990603716602978194332081031111084355614951758308496301428737519070214956543967297526944355072361575058687744917984812260840706752082324538721892853045820182112921968134187239594516087333581250645617837734730164913691494549728151566769078608867810969796869646518642395125828292341363336358070858101818334135270930470125245587259841868671012977291107855559259161803946082848158344265548246238707681738638908786334853703995652775289415398418047300738247195865407754558791598957120389008248154501983759140558775947833425419906938457171119061588613360519159600718078264323272144185791749011767622792531079206453608869828500244657220412769908001284081962488225404747976793533051881772748729390606541337364160479674371708196824840286982599838481041975613835925580384310767502332883399052261112688427545700546169677038656982617621763153728261049394598857068615162094353370328026470147227821280184051911426305689301768985599167849591351489055910980309151682086187740043927158447979865284193408350001373586051808783382006006373784039690904772441903376943904244977959165131014149845104581563140568108157803669031245050877788971263077639730442732548444892046063328622312139066946501704114159666725452302754590453287889833306449471795993491348600065982210741907003286203760458298543453491738854774716384168995737230581887199232605870059864415540984712735478935877439281596548387183012735032034007353168406474330905752584325949482371314963848314962713986286115356092831979921351856445882843273219579524959119384199883469443241672007365362837515740327898476227942267074923522780052639124367271613252661173817489896433510372773155450391043458237174180630937172234792121166819434469003010535774850064001485929109269780804814145248884118479160724335998898486704624171238092353025242171347957951869570991838327486645299491672467297731340260370102792166831560129921025782458442465071706777681189435177626897367525820047517176219001061787045425454904935542244487337266068291515944549826824630007240259964755441967155520693792817108890177702006631509925056037855711115986402023803893514957076492540505131701342608865582424097479101318304335182595397775290414955664816624000310292125028436409680690684703703685804324223119364774903612702783018098163414772669770012278515180871177190442718930289486473780023536677452674208333069926757985449424367415970301637697937916649149543183331796466313860316503156929363776866936540863263723469089137627650411400562654090799187149331902602876260282991196577955159159378721663185048606667049552069789265063207195493920842877712189813839226264211940631675424049822811843881078486470276010470642351512568071869039596828926372291551445819282229395067243022694961491102217899398606286614664628579769314387930531402270223194819518722651291848410147835630574389295532039621727047222932747339402923720097998004979068196795290907836620559850895087877852392386408715724601414537006398388211985531639922124288568977222270789663619737030714078774371549227421257020869376655233674155943773030820763343062125516725451160560412029204800905372105035416767094247844716980391418761038283063781017941079913629150861371276788074223385512640089490169887139869826789673495009322691821796571657520230268768329622186527804853797839258680510213205178393009648189236534179610309814269861899512527357034947951463022163864299750089620775816184119992111987268645279960504499408549711188974639549360817384822607217876401519477206535686163140169908605878668727835919639814031444260899430281146028921283528531588748333777994462344379435487584653331758951794375052087249290006837018454550822167780837575584271021552149328790863219206491172943801599734508109295551789296259620713051773946918494962375590562367915651984900276829900852917749304147523203605622172232553087797194354964418120377892523599433193195323297876599377185275893507722542266425681913756091987079135680800896672362617805639716781660480749868908987255154781668588827903353416571600522060470973336869938789398074530681935888327867937974315138762994511392408361349558625909558183171805823369570868803493343089606278548171845828184100657208592354845444192494151193176741825458112919137461768865178925016490466489784359736213996529792995779705517021354049009176042265310387301008222053038538948784148898657683833470678606606712772961840403630812532652536040644113587880958660631143038072313003452736816949168254510463668006282535173523892365472966434592004643884442059980749230381861684007407087572245780523915563351123392963897309963860872728838838398877937410314217923189982664899113797887127831882415956365620206922102670486295031280592146309564817728604186863760625266949988914862667701456678045368824481197467968954099105737441646682917057567418604923587625130758284977778042579742153443667423852930745653637956639720339437048147867000060235030678662990719005049928274656737047186898834409233655920411375264379949819397951037704324312358775979102406404906659770776417884489991723871201293380877608443721398059943697943096041189248305636863070088029826349436445985053094719951458490301816409748715648947732642472033108469563333956612973641892091353200085114418669402316283494649390395341103357297930103644214936500213822813028727600447367322642998946861940607684031642489817659710511742092101084035603134707099038623580023238012034928706758953769956489929187272437081345665000895527361063482236799600019800976881718353232504000749235716242300061989150900779744754374384696781491461064360456702491270325602424423200100867890779833602787085699529748010589203608318274328817608888995194975680022157584933595610795162546217300394236190098615199969927457086457775983467788201656467289340327147771101031928221731551174890818217665723583880756710832159181182899162621951681973247100320889830660441551476386763385773657882682465783270109306911989251803143819540337467188886817792502439227739041296673168801211680948843433714616317030501562642526752369251420686730216948955229481606653429562854062664340981755085777855096217928199832694357083590779723629835898529492338685048784029604643953225800149306503577139227657531287789722865977670448839272601476119918785775442104506433370394327310055621352689228864998001945479872360314024728437872829752124242102957426154613455977075008745194335364001647987270169711317093377843515271259423685232240604569690041174368934107835001043505606502011517940620875234333111889414525521710847502310388204484475192249790294953849073691933323347523789873191862500267788727320560527564771064708279956664055055057723264615836408070022257155405978753813543524022488399195173310935910343026521447250300927205887391619205328360813126344327333633975904476468341094189940185712320957872771955912225058882280067383683247306571537478051023487847667157647725411073203286308431489205196524985422228546473672314994890122260112799728969919626102996644234887812527833051258545530297933826657320397093713775807673221996584527349095808278614171770449085503696567948715009778456096368476403915578440923804066744827800695445411826321348703024252810957267801052094423497252791409682983878530825258226345127583559396390291917079573350880707935812363866203919497092297359910925793493006734626058768472386318652624383455353669829994241365113389085896967194237695992198986325067498750756251865968677358075084233168546821086138614701849822071112257047376233088628590566110826691945750039063701320921802675545330061110143433013372589548415541329086869021925364950630432109988618386850858342776800987222937688415604388374115970519403389752051114982624190799740323045973684813546396254989544950862516771566535838898930368096638974766419271337502729628856672887067874269496642872127332863021768921359241457779698040890322941997533390544402006605108292131383923467580799880585605495879280125277176253069261041548336497128422525905828413072410599345157709571934190207644829103696624602743442464835886222290744195998894393436136459298372345601821280006953775234101909364519203645761147434177353719729280190261749831626140363092438566802693582478993775741255640934940730471030135566451446953887825774194084002992279447014218892664865521956543966755754010099209643741324688700875419308230592314744365505548849536136470487232063008495305693134827892069419627626402705061951322133194428044981405675814282649562043724012167762294589045403199355936091927858541139226994364970930722203292028665690820284624526991274411708829998044112164599979724407015288060998247767210020454289801300795353933574983869142068034503741013754288666746841838111119414023489319340606869758683841497001109785870591138051619508188065649197475546084285010074714070691741695774013486156202733251278699503967698691835051576031505832201701559792746859663799083300273671695793182282695687589783215565667186037451377852281763477758195381191312901693253577162890761795753981055187114093049052391077265433762948076404523708717426304755012580187950414479136071922181304200800607287212677482954586715534165669920766255792276170609745637469566072410533558414920168068663674665028503981058714746277307059190054778249258179680410780004612564206180978351462304530682401479020178904815593741159609766467600684440169068003818809960936057392786421195375066355163012065727085439792804580965762521219283849078753156255220681184827053103590910779251122559316678938256582739743812736740149532520541544526424595678991055032923670061274429588923376322767309947752053662012549482358837643643411354374577209439915450374172681673306905499123905578539942271495512500011640395743848280174760551775752552249254348355017214137725267068868012136060489119984248747198457083649274580649559682332976446498386801676921569948454900353595783452919539817080650810405338831241300463061460256363813724071295790714122041735031968536245176467281336509937963731716538674792769784314897377763103319589565646954646899804339139976474555069303011089298390004917274780414694422961421374437377491613331988460746381141994220055067295136148873741463201932986775234076547933456698393699609763135638543133832374221771847158233258213211949710517474703206743367620306165365505967875381408506297420144682271619883222651867124250026453417217376382859506083498244624026773769274618846762539026637208207688609852067393438735046107254253962479063304330206668101995087132107970013212358097174203612610915772867881565050322859016927254461614985334624303972524337252431717926647850512552364866431045113081100163001074555911994189531943148969660945154795284441271957332286946963737515028284648572915026238527759179169368273213219588279483692738175106926862249647751932771370285479405433873711774723455328213291893847922856396775743336728029028040610402968420257495250078182980602065646440411037568798430234186084883289412519526347334135680478795734420684226397841179032971123203650983676257172509019487753879396980827943853831988622290499848627425461955413817165984332943145581908609803681200080850096648301863964591263474808559811911753018054466823902298819937476011941429116836734927863637795678651695478903649762840762337321312277517723286088698999703958217085452429766871659397853073071977563808716995762348623870099050151290049579503142939686936045949677762094249680071740255113630626222604752714391660726757172048106932033726121678658366114814448046693587526635009172973923025141148710290747932641293958279796279162656401897862774518586269273397835360660276578644038397857635559539627449099537059293338260060769868690893808058444281319304317296808910591746248379043564472622425563415962075081473807201384078516828460611092578209180594950366968094865189802875648617388435548254223490067186347049381054376518852171898380644609101975981864022046049764339602457688169075548752388352336487835148026233598606071746381344647258107403749303408341573354880051527753136529880770561568173322408997172946235093232604032940957742142662171475805107269684763076059939894520395599301439749915971008594520912685891266558505096400990772246608830228630572437529642088130151473595491753377707925235615794136440510855244968472164312917227140152370383082559800903849921615567085671269262962805997389102275766431925499207888494400858491329457219404233148273534948509239537088858159843792988832037095108503070026710944820317404058082712733945981549216748938070219925002197561608789684497016219642065841185347163378135027573181532815886748668608262403800471984388058338242676342192225746084360170352934243773647270272530233906127285823506099465749950681867775146572812097286148592188452724417848354102426375279749132596426014482868690314330368635998373837233197949548544158848782826056185015423512043313175092632557481998397557156643584813878768964393802039821541388607885828810602635185529471356505815416971470809307480166760405449639535082946276086300073854301304125255936036030955572959424805757576169842087212506223581109101398592882993835700431035007074612829491728323081466727501637337150994152337396376179461255518508237058220442234384739197371839960121778381076773488533983575941248036832067002348135925951605403966243050921769642898144231922808308182738422033263773719521089095685935099997721838119237763145294144987463897688269604047269589507791341288708140140147548245390456081899577278972181456607998215678965377369567964041915891716193864988975358360846372396075272652491448050055890208216452851907765691689243808450147323757489222608561352690655805094960879961694913105435923892760341530861631974422070322068692685159743863021385537961563146570927184504220619430495222766218548770782824862851661536570310353412359864504730522186661268229020651350989089044463828463116438867532106422253909078757039707575982844325280682388004084897344161164612301115380886777668268071994515864640982244841171676947002933854522904380495159956680670238205083033962574140833584785601366214157141321950837927809502164364116474267906921599905834824015944970083791658841345393322607890938718810265528276222668352563699517593654097240484927590119521871779759782448682201199958135111134027201098540422563652990473901411474725065533896311067009641834881466820453745650785939669732046673558322138691039079926240277467882832994333008941480272682531032181929436099404261275009400223629972638071910086979155693066864590064949303753615162698860750614817755253534528169044241292122365119367097203802717277293982995052816239067325294773120648200189332114954194227927860300998092641068110915100758423720831574601084225459922203292490105616062051882443481396438794185162495236673410816554287452587784414081455019852548897225306551808380350968923044097058556986307641623781751403506766511364827943218015357495827419713239648624211673946041221071580267367210788959486679494522335234613787363314192493394000768171813679733948294465953777012845233634469855098121609159585219201738959554838700707876964393676418872642234214073435857199100145121114484534424799516663726567171144931027594536901466148088340530585684679444564491568132994532012012507230896234397683474803789584042734183610415655903709384089376058210408461506812415677604690795548052297724680786654689801555888627108802129159560196178143831887075179876604137786667633594185702340524835994974148362265445080810924384443703626619226532557239797462971287523978252230089968873091968511812786150194618700059054416766693169008589290297982449216087491289618114102002490088242435743906062457728646341331027111563091564973885174531034492735909637603957460321234530083578924895896172166096864028795445510899878641822634499284178438432336325758951550907963783839203166306288971763027953508087358585759224720645579419511854881354614517906983124095313629302604960638073797657618040890475430971603857350602500182672277041661230458390517657504604503507356887048486150134175308756295568347911577605977723092998592126880591660982354659612802132485993365545024828481799292236477419956854969421346014113550957431490511272653628696477697359862110812815814119971357843016408984488286410552926400614928347809185999731133179027124286769717782150924888120915921761809419333086257715947988722738288131671208928732255017941421720562006981683151198419556440117594324172811745596860825068382988270879560320519913962351555514616292410931631349460632275348260658255529368469847075378508912016357591293489282447063674270971437916881574054803140835398130689273613517320246945209373339730466368408954499787807152024276798378036998526046521923890279845990239457188620167508226383638607919308867787968264579069920009793591344959209337008327487887161003475383363040903689460990547014025482511309066427291135112147359605779213935812633026475899912577979674636932401848889066383546348818442695981622480253228459321522005236091882716785456157578137795173584670550970856561233168599787936757700503815825338025940201647161151169823386010169305186273824187757824293458658949544558706166241628738529414456953168911363282099020424107983351164992252084323656900866612313846683911995704506294484656567847070850841327579404461182499628367061702078887710746713216186080947140010469017980637437809993673650241029342142072591172153974915281124855172023187392601441171255198351053083681831964804563001867837227365797114768328555306671427658526085714716715439978410165122499127428425763819183174371203625564487182051929858023911883664226045094685979332711286753699895957328596236573710541171992749611569540629784870812375300683486116002450474361256207102963409268476770472405771017081969679377243226795860989522303569655521881905110795546506840898753780029757725486609544516861159394416622049079950710537082978512649853454565231070621205431229376513516730541164086488149999143299814019918118583203509635331264063595255532115694489443516746989394580010764228595054227114178044181267488513991489093740449078103091825058681425762377342356921500766604718935259479964553702901817861670047903969379155413071014477503538525808943616206178121817018583141516522298871542094866276808038143856505441070288315728380031456577826579142034173787438792881773466860695420277325702342678960613482279064659792817289923806993532279185976652719571400555849060225988738919712400144576068701087346733123897396216301387419912137996728553362074828017875005575753695291954666148511837607188857601901402105084896106425256126521017461712116229808981889309010457337534170922861877954705081734702895978143888714138254610552132671491039219229934743614673028033648651768363449747060720516522318523636306515327613774059993574249069242876144896213381202695852363878060429867103747693487237896495550167172530861401707372791616765374056664703803986197930233282907662320994016583531950189519765891037882818630639044337182522740518538005739461606560242599112598629277878624237453544716829725046107447867937768072898389973631645248669486165603729398359848838683350021038631107489582520213694318120595510248001621090878765973523017295479110358155566335977237803942501223317547208304405618680874390052909960919943199533740555017166381578912034253340080382414021717933918350656148754292193910049267315955802746909670767571561910367857245316933085733153736868692835676944464049240492414220273966474313919148597525289650068833635801929833966406693116727885869171612900250739295077110374374214155016367812498303293341809271375893964379369233345070053432902562205591472924282852734618831558414882001135280115734405014427848873189103917735109371949159992592885458310815743377642050678329993872350418284909151026478638250228750403975353237839443618251127360290997803551102021551679728416621664590745193245984115428197643555251892048299490535034830449875680672097457571152336273755913901829943674334336666491799720628939693289177717381385421091966122743610690351498400107438105672102007845064652004558285648002973664096118487503081508940482677614943632578802131794032458175503358263883608990494964357370597073547977910796901043622659839619982257193972499152727820352745785189506212571266437704949168452367340165802098516453825331461045960854476397865027207031100542092807152540926651292946666901839787690514645895793161799002717488509354341583772343014914367027020455615024361562282815649815712021043409150991170897471436917849672087338871500088196545970439269732318712740793118511808586086328755232830759753369582645579809938319635083868744803314399879597557405276927687390664383877877174704794480384980896702670797890664843688722029737450645501191776458613876730626279753355890744477449922104671126056847974227670318615802404942921745379985784101490682584005596329044980385858554444799881599849630976330921159389966535524276611992649746227312468649076472429670278127538895705658980492429991027863351870583088541037121888886289666311125985781320976873711118395021789514860240736299629917549999034992319405609458590085191608275045777234527225092740757855962707189447649162828286166616862979078026199692065272129213825614218410597535357401897113989972667072529726678545595742156289226437993725361529624984465732219165016212801728510658115462524325366254217402507079137766750293415318104823484769831694218327414597803986824697327471687736623704574707062321298281104447728175632398778786732490984150248736690697932048716694734023525906751092245483180771794170139436893058174542192359274988703371734688155380057985463741906287796542306468588429765226602414119944423957704950180862316007225275835708463846195061677794057010033019920115424209711368418964700918957516454054439244829368929315937289027156965680447971608580210173068546299719859553237774178987955660383696239853891465301688238435948986173720196131896283559558377115764267460906723899708948684080527020898885325219787135557260554746085278663798859055132853182899265184452940615597484262539659797651858893635132688587407744027071762085955677978352270887889870694482801780503461077541537445346218180749429909276861919252623915400164519438544101327938127396141739785105198226256805478321476878603704574312176514867677595214299146691589625050234831311262554426530161949889458024266881662659658294523334971505647448515040478639935449892294694531620828693007802238222835509159732443225961742475635523481146319386867221328455969388892689142439729917871077539422112010598241755263758578888012620490491583309536947934040788344814185803649513231855714280779313833914022559520502043441018238654213964004914376083602479241098408172085401962572839517868311945565704809561701137501904941938552542081456865563687770524652523756725820156388611461219159062871456892407755599843165270086950914151537311507402155820237736873016528714669414860676981242787329814036649220164113273441669676943293047278354695938983422440041913996160372733914730808648285848137995882233750052052510275871888579924048635173634284681127338946549240355034027802574127848101909307906315267178167734874800815144070721980231198604998689735324865400102550481743129573948113867147383789151322516040239755805891470939568072133516937231151334168265954497956853092438091901802472694651590443994087429104753115928000911450925880719093983747243642962440762401208469319355015741784244898178567013240607673351746062872152130162175407197987942608331259082720677163317011819000293674583359933325362131734311316551848074593629049150279965811664242730745039004521006844747165037825762143934196343288115922362501338616801623664538850541081677241263682780265971696983278728019385899230709636669049978977147319867779378945756852030647158394481407871759958819637278720761195922865247685867871813151075763825880210011257169678241260686506113039343511094556657787137318607242410048832114168439704242041549334533614997064066570813732474851254886005860272752378830290347532909299136376542075672752096989810658570783803169493164535948451780449152007002363008904732841047881876628943610045645911995340488075976685515863615027194554560271336133520233047935844288571347405140260700697617443081888120528364566470188880355150888029147285459361859063427962564087273412893336633713053931308239644686436655666988778514796314716591510208531501324397385334268639010470907800820111731468801618178898216967275496415972076670192253192022800289131295351309160026171707184795031161149440148578660989985404514407755900234800492317839787481464955908825793745716486638682948693515294803808635606634640937555343240300313680958108543706862025877681332444359691618869166627138340369531052623541737165050629651287073354457593222615927223966652569452067396343076353592408501126964139941840056368958604563406428714447727268996876825972126681382774719828400477723623840237189134955014900416681553564488893942904878852596946970636343328962811864424444469897102442244270141773328824445593776413643685850330275016804898710893324568106503303119490938124272658018231447812946580484673438770910498508073620898470498047585687195394104090369746383747603521304700917567580562566337944062388845075441535705015621085199655062135421850844853752069555865555142784702574785275622642505585125940872651206652454780467197132072974659246608758038141428615181604513153069262867104055396611557765927513753750658979057729987003626670809746039481219046350763981974223082031581663837369005366374321457877977276396435462137774253103246139957884259659371714137928429301642470036715740414686035530602970912360447805796914906527604427280820289415259800123815416715797667453947121009037617233250667039363376040951551912180581543583515523050556438499618500944718455892004021798775401183867309282866364166446861661734833029083965824299641383250152872630075818429370957915804997862325141433267780849972064399498085093567597776201317495878555583153417870735055959857612166129369912683077062275646920664939975820467967639219211671503749384265662683683418038728391263003686479825578524729756813151842852965211890670538721065074146264590041233717705071486059147885274569460879463051045985384519112358056946905878282284263073500891477374616931380149056415047529182367619290042948072466551986493628804111084534265678421152136153885808439180586711248627451537941573110643465633177453480325194056202047184701067547570114629838790433457426838872206016784686409445303677991526595600303898274589094974945281999901423542155643680150757408662232103627596158792120429940351828131764306919341623931935946267171119716990504230363643555302548295379544120486809184019515136917258520106328748994716267028145664950482058978464617327823593938492107853812359733374742634420294168900938518440051429379802760111509678721567739723016171127908510302588258079485580742838348262456717080022869767603806680218639018192585935753654457881129866125191765548302158181338046816979060886451550689090015259447886291482866461810891271856557910825381408665799365701813216524350456706359126731464379603317299835368698427140563930826093139609531549354029751950964208616273518864032764179025845561449957536690369472452894115264470579537203074006258083466463459106781834721494859392393524884514397010851334166037169035270184118568311689144919562212411722640023243611187673339678708870267481474215933595966651069307845073893343114187182520765788247730106895587486634236391209558256568644076011573256073378884053833787846387931866690999248887123660362612746831374766332945579443140085303124466430154954688174533676251181078773052741586782941898029152494746719375258981810515947974572521816696915517393836964774927759593649861812219045463261427520671288623506068097607772545481171148976435532343245083240944835662812889623740340517000633927201030389316873894045770531125468409609383147557707236749179053431051498810938547360345403579187993913365296675132961463053997978545490980956366473285897286461795892002134591212551802088561280475452040951191432701711511954556708233167070492046233225357850675204538856241438720233792450793304246319687448491421996582201879127817523495993217129889782572834378273430567969010004166728572212535104236202607459612848441637481699957350693571230650999018205779066934655528875825611452087541026330046172875132443334906388497572160559816435823937840051035755966119601585795083122115586895507503994977447642645189029082107086443868546130547258214383028434296964620880066070042328803296336449827276869975558253973592324097442758718679535649032215362254790783679722353158481508760422779919124571439795725754884214121984346276267860240737365325323129756433062908884970839836446125090687867076859211774329400329406983174535452631585701563205078875558066509818560278692655530233625533681343233263853959424542941149247519486875593714865693190231212085793510173594462319529524866486962540152232428598997653571588316670793215588918332071697384583685145783173792359633364270977058704262871611435178981897493883794949318337058147954107062687738097749602066605225973343979209770794839899598878445557426566032026873146551817796112536322452408889304454021553768188357458321409020177894149109128172955022578484403920386586641517039361555584046074195135261196031678626785955622987771535335483449443466318538452224982701935583930937558646696523334783644525904635306269236439166509313036651798597134463275900257656913654412662302972642963651496013360898535905438620838060146370432172551359011014103816516824361968737466582528108279593403141900894474279510189030807457288846192524166005273128702503245736625297383373928234559521125954498061352518340187554763496083011818531500182231989384102887840791017993455882902407260766836926356613583578111970690793714993477802592151182994068403561122402144628013026959357341307484094029528730636498423535561353527254568785654901513030907194908153861759572136922001672333829628688729339306202261632945436692945866576589561812579583301883850380096495739687179065257329664496112280324910293541418568669901932517807362166351891188318753215874356152866659111715361283944530149030289766400774068079571458747264461395440178697643303577959739819163439331513897833085579200654063404166300667758743240650274735841255165490761370996734668949521461735679852546372003832926737196291287868722968688321856766019956581680155332736339492641654061557518469193494034140878300869862228295013803145727721898056435865440119622392884426720704170551511063688458805041360227970743794558717419276436017324431622647974794643261009348675143146489894649096460889014195786126247181326199726049734841633857840372970349940294116545283676628206448352621959950646052506608591282156021778990240328960220941706578522943591809644220842640584034498350104412647726902904725073626670322241802776032822955051185015114757006055000366839961209640301693730117075633620122784132178823169439745126170302514231754526023886741505287149006225974253914972115918967957427293687758644875452261725760135006574518767734072296376164688256320188069520741652169559973188900172240313489153358489947805270113934842271056680850195902853043123731120527135075244733748952673187036601754144896534113078154625896882697025719388152001729003540338466023583836432003063680725182963498147775833954179239001416380768005474043968173564649709950357371583875230331251504953274148446440760037259453194746387806605382326923889180290445716905081005087745135371984649708491195623109326536668634218745953410472530529311694948729766130486343491899030403991793360842179749972566382413926668592028907245485990673246887920355135421057475155250845333956186365429780474468589362270171649008863133598372013000627242923929956496727467434960829507739073036889406240152227630484478372853362149872887461065969181529796053663911523402391889655685129054320231361855446819044317794664328736401114095833481615215553512862590262465480360121249582921983734248536119528154885912551417779341774971810397808226806573717427285255701874994599590742294115352634415460385456741871706825713717364767241320622628338540381838226931443282503617632224765654223781114253117799351441408211705512409135974898378345447172284259214714085074185196891063723168948548337952434300381023689984107625440365052566979837410753528351147803629160521203868626815928808149597402362727835533493438005534154912298728558754234589285295901162172617838118614852260654571134747303284088389091031684630213478852937254504489079323335993534453660617246835470295707879980286414777655349032183997133670617571695068817083070428804188185427532976992672577018113738850834440911342791082952931314195985685218235119505314925659128123544560751353894276959577677087504080605207969506636273449818917593335059728480651246587142816017938023668363744052217779332794395220562789915623573144503480891727711937109440124550123645448982391335410241294046915235335827528668704479591334449179033932855080678439219676849470493653072852531162946198120784151460478510542333584317558967134145177945562569103364932843514943251439206755910065286661542414209087785693531167604822881377435962878449974380419924326128452372913466096737463568311426295440127137776294639708643333695933364550097350087214248833129390796209522820386752170862950147214423812058494933348259706543016009007317291627187296068445817634051779239322473434689389299076631878799730404222051671902093685462432227925811323323535642730043874309201259975161732436890755206249252774638465952222265964371951804388070692029466826232836069606226613774222896541234968763132925900092742941311029010087574689435475517787593625594195725416302398460110135006660468717347982506762226430451758131865259893545085096231980822333583925910228916823796191647241422665987146377329454402084011695399483472863747418737597075277758916161341157672417656383212036344942924457086453774735795026575728166741841300680419458436398165279318465075394735729638057324175138818239473493512123117378039739775082262938247057212359896553759746443260093791229348608164578196661518661598732817366999870879002729070278452433107417312424392706602360130084914944674423876515983284972262394152499778574792294545596953526012528433753998939967300720201857314737182607053905894346878928687424244716334392323418162984897690206808361439476580813340382044752278134289202325376492318008925375303570616000221045808030551857329165879450642388439941540160727655525199194903984633668633650630396967569770642027557010058701109935622766571400745527364070867178269929143821558117776108086452970498076878138798098513663167298530137368318843968347700061514454175377845465754491663353236047290575296454709843501604417883812781526396944444815279783414316320979516193872285757063199085942136108730016985950142474404889307473221935206348124533813119344365534208772491285415988934171252003970072768356286744692780299105012320453465888276282328531920232702180109146676117106260564821584974596988999785098997755217339678951361380205934710653766336627342147182731162474677794807987820174461532361859466277556282567891821050511384611935265638754647614967633033385808457450027228761880497263623168931571733783619229148858364432083072423808144527150646700711698274169312674482944678152465805839233512260559068798426138250512242775714520674298999485320471038764729403697324262857231324636968286931378820739850604710121302935796521528178926674588109657871714823070007413373109807029988123788560092399661603767553257529165130069762595970140118144671766257091502082490687441965856288641570590945328256591876450651499775539857848468945842478680854923449735773748931770707221494345228791866657056030208376184237669644637503608131597207811506993621113642492656616934554096837557654389665124356210282045239414327496662438088995397117715073477315014172517098142044138823789639990568805045676800510560468073961593806160251641700017283043593409378240619975332807773765482641466784919927010002424770531293947433295982326618389204329520176383555486557661184945548817290398494495155968154313034870542816737864928938646865224812475479560063791984348582277796853285023673191280164252855021485460837303310153650416013312100520631652569184330459586477739734662968340884463415173029204008166113393519402077850364856114463590908237559660572763227561681043953250436532364775773107063541816324997585267380053112474594121288325661215772190439808687347557610921215402626104640830337949287423342580710423939833730424416527528635693565487239986606620798628212242911643189749522379121153485927777592402042557474172350037576362113926640612420856638998879160622889874634882136526475694770256598990703024149033541381778077875991444949320909731708525436827657901779853955346749639692587265956243824179049073502981033008640761913262805151717113193166616989929496911649791309782079075345379794238959228310348067219142190973799452458540513163952517129344391469359314996290641613643028673237991424964959246061623388436015117128431989096470736261657795441372157232231781540018552941086769328956188212355305611888286915062814731765436026978212318105733808628094813013677752050138256379317446450156715004728644664108094155361098649300834366402170719147425978533273138351376710796585072235865839431747196122355846544551086234225839591098668367193443579717697242847280182557626928095016556754473651028430352273978766883510539179488064849395842635625136583736545055398439995644966953187688953932064645256320035986423716431321941646259476037226309708137059050098813029891981847650955246132744216628350128689946117683720554976046296667419539949072884327555387649128402067381983190913451684236124576075850561143101960482971215979837114359041015867024686910804750725552659696704703115741021945715933659545299835583222307215925166587421497979100694473670164250839147681277682979171420177339909618664546210634888261632999545514913830695493167199255298309342304870925242955862843310501457902449696750227319659686266679491608871443419589212032147559524453513558752147125559550158195566251644288604399020413909691845933699359309629477167937794117319662584035798235010163042923789418307708723581247613730088219384031125808696945886475479237957178868885735213091564006175717498247072618422595849573891840489191169280203