LegionMammal978

Output length, part 2

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