6954466561578821399595529604667362708365422305445495947808364190371208850081635174679459396806943174950068122730107053083763368775170186009373383098407774100077595613323250589899749516936034894356788013162052036998582295784120899690017323526215164394962484464433434266529240857396783022468801255781444368444173851253400291417995140576411839225340780819951751375332974168180624603784780955083526814330249212782051530535134496188512637668846142305368972421049991164821615330570016904147351341467840012546593504295619355489626310412766316777297768704252214855897173805583203979850275496972561289669218538836811939488176323551417438292185867960809726469714865519438756333039020093649611098659503478112415428528892853063828889137048399941793583768164457336259953783677856204581498833667292188557825600220779918702179998216071764224257325226107324214035742928341876519031741584905419093386110308959853037285686128127555177207003088382010678391103869477297908306135346414243353749797417218048762397048462708182051893514328294524228065346154469649901343263625048955589195541505595630057329833729277287741801451025021763746129057786451641897000503789164876772550106260440240201689596973651806816443597522553611660257612703485020379131386758824850612992230833871784923699481866937136459543821000492862700897581204950904386496546722093182931062457457996545299862071390683889035781570134753730948077145424427005253376741114209117821473826627242570154376807728411558940613338696612140720493234499394455789648210524597646970410449884462427359311761435132173118106543895621552629773386504925736491770332597850738177828221894444511555814690774581364196276720182348929398466924051560198770889023815854601293708855974852931843135711271300681476064559743827140711839960028275882337202595319380563560573490088212043302833771838285232582680502716147331708991710333691859910292907630701690772715174350351471761425505765843024641187113360437679130707391694068276098334488146159130869029436363063806344159864787874876810456853143788203180669446823505550236540929749167233178760111676799353446321338061479355367524194030474107231047194120666419938441499800633738458961938680573417657547501984830627821699646098853508369467940013796965820539315776502558253354734320913067098565126371207542016559650056756513125863983648959604570675241902224800109574379330888845370461793274284242679602781576103150229647075509777648917074695000133108816467444108000708277778892202194831575996896877694472261582801285332921510298967305631890070298731024185205001842306585592522496699118749259433774333882145484144056930855799176609998212761276782375460940857528527359535763331579015009195948790526489955289446447958967561330493032037666501155940747403637686090293059700825410495235699467177106512583676118267890350307015825486735092614441220356396197680138802312673127240376915635493416396637895108932960552025665916556219998519312508664876333834589101000952983144911499133426885895906002291606007257160403091581171882001272873508215356665824931129320457735095927452029611005217240395079688270926229190301823658687295153980073705615755948203071890316604711081653239823654951131172843214423699023906361866970197371603146516528828455531238248085155560122774556402956080914713338985997274639379665273375846180978478196569597463091428903611619566475032092738147289189541712679226820039203017846764729991268181873887807219004681153152278197275663344175176534650065293102930406741258876439895891320641934975659874652295275855997062255753219106662892320806405201427903225135892182314305955576719509831354944153395835321888459300284420924330779253885963719659788121113656724749027614986951829741852128890264177938437022115089265587377303820514457169470988805364192832214375721447495484375911420613835273746990739388715217350411895412797396460308270801546687867319689428165105922003167825602343212154061572074375692474935269690816312570787125794931425951921003744992960782261764907403605716080570877846172358849689950531149297384169787022906875860824948978606113191893084761258330724622482004323512911397422266348801049350793044236475217444178068163198167572906543164819327123930349166914214868275766699301605630657358770266184651210251322986951697574591209675807922154343949108865315435402992785990425829730626258701342641919409451034018170796566700064255296142355756564644201871887303923637863348095550980068157997280543320665574120118225130839658612045011578080102034548631697458653265322220341544009862021767632058591713848903303299592679333639598660044844185515465732676930899756761145663215761234502105294260836951528959436560011231850377361967110905948504616739915043789985697698183043505288270785153141711470298503964482300388994209470627747607903342682711610141098150925685486810089351422536645550643111769341450385438682346891956278444488633662215073218997193711666014977234565063394284993374431042530364710217556075475712266370624650031053818516054625951589652017021236518469175538133391256468270393055892709363176405621367184224629109389315722362935061880303775785623664137464767273461592879447910376899546913640096146334278070107796751452727826541185502410521200986021303086730858419661713844932545676084658744686552624018401756323921497372730386659050800086628010250997160209974870861960532434459549265396283760757953917250695650577006734001186881272997057612760471044555664252489789585247514661766221888213462430488913775131308930119031387630679470847360591395406300448202269217201037187326877517562483610631362565384017604355111469730794930187715227098433055191175244648666348971670423828448665190554321066953021173466301167687632175381987380598944575792560234542080288027077962320909155178633832960762570377509599415032996379666643901038788738780293592139196760151264032916885815164488497073189205719900689270796235074882100031602503662599569292800389599602762022389648605535715843703763040343682546407050532027497773177202560725475171225437287964372103359432979587610263082778216426751794092041712738136414235887463642142356427701525166689178824189403648381052215731390308290619569934862078399873002042962933990993389687427404705010307500890899227296948799169771701452542531554373077847864731811056201464610058456240927390481687318465926932877401593233371540271118610313591241390724051106233445216247696720960032437658271516047672432014110113457212030292906773917219630751197818122252442129421242106181391072995210465777729843164782912020329841997465147122548026318521553537626473987700954756488340495749512259658328414890539373313998959174140072913403456493825125920838352350652092338977360972464558394630695994128926762769006562401865834324846649216492393049289476950493877532454193333738667604300349627471626146589853729490920055027765838552101196469418511617119996470335645755402354205367078967615658113799349575995521229126987553475744678636136788911834423288526090568432155724516709242670522132289132348910372953978135287591710623967759896192489203822572654727013899788497746776058316581054756145024874648216911853401607183797399786151982674859100371089359189158863962139514525552760695604519406793906967410976142211872234274954254941792880404635813137564050485970059337378741322736492897845433448371109983125499038228012655999737947946258897801634435691291274969763399189960123576046275392789665094012019022379084701330619585195696907800048057438562623582101661351142247043796643816165485551787901226031300065456173611177245046268861002119654371632840574179895782883194160597760045002520409078266586092152828933434696637644461129838143326229563032606370827949923737170892759053323951943647639903720709084080322718812186850840123203202701743914796004799784806126547728892293763374844722202925670352241560937275650032352544112158472529613440905919244409920145083345207651652254179620512636134568199854020355773735796960583030849834347372950324893599558951945829363000396328718177122927112694631941071614595302125327138308862956163224673114427059772602598794300722280601043749626997146926466438766726931316388978783485022676442125828969697584363601214572127440922728787446973243474922244988981254022876564899246739053552440566978266922402336010916361516662260197789029263965956693754311648667345258284670176835200742907773417043871338455149769833034801152957244387223847713797000581606902636075897282953323033182353953227834314132438760164482718013435128660084327103210669931743197710676785117927359315309483803584541219731524359290721670051319763995968011447376449517623764641030527329563200845807669945409513665308255675769359016010651502878419334802389215227928983144331282116697925957580273072486810948260939622228077004302540232326253256229541359159699854887110846161793648884790650635124836910626705160048427583547069543145108888495400252001356062017321942720560100236436662278470212316689645656779322089207055076317076930506184126425346051559290008792753461883426050665821751851631906243321773389446029204390553643278501789127162765685024170435862723891813520706365877384338924197586667020000737214053587489898556222025035108830345694432322187809112625136020054624067390518399301563187780895258664494556495426573991770759375142691157797339097386553538566171331557326060960798354717674381425670303019105175010491258787839407538849859377979928154023816767511305281228015918833345626302054184703825627229012456918658953371842124797520432677378234020467641964344196240418145069471428193380824234958909713310268410239667659073469269230672699530564521286283530566480547816860826378406035498444083148829506599236077780229064573897770631391214911790712729177466234207437568960139110492300156780110954611517631552691932948617738734295357010275434637931703476349769304016033587040734914261906972803314017475170254646072172860051392803540158273647255572759865905285549655473747562119495381971499953929467741508710759287385425421813860534794665640679407950503685961925494951425582523329479748244346986382524182345777615690415959648286549957292869631290242837702621285180919196169389414698468731859477578598114142184553390163259296944803614139347792132158584403108588950363307177490616564914224183078014444252992053600001534942249150694119319624985995149543778784744256297159558157762626003971346872491207162077854027627924169746085115822130915417180883299174873394987190192733542630969987365694082702811085440603799787413983391671853962406576846814666955394551746033283941526218674360809255329023352746909520497834914949482494830105806759899682074569517757240251831417397265573929881657381307591632372009656948936092830961710883121431397991895404788784856945257400530239418058537305791485011751715748789685438169748897498674746320209168712639503393133000575118138055836199040480794004152663477383876485489528508918323689927756044682231283034835777036028804408877190218622015682395998888329216926058910122790020629518350372065670462575854957910961706833040508654812497882584670741435839990755146386175433890975018692581567181810437971350347959818077124842024067864090035830712619432816029435122621635128209561414796408351974136300922743790841221861707994318058040315685670892989159849371176980012581158137335340235262470078170338453267090625758285423530348382227654353316882711254608743581804669005447125307533993768026217674684128831471125424801614335003461973767905128670061222666176412610086787390157263386643260812173172850589504321669333650641858275451500460993069003468432518445980131188188594594831674936870479583602520379829202470873450597446816068096078909246233589639483065762671279070994618976939877283750927145142141603400094081700186288902417722983223333732912921650440791573762194528801192495560515585742028338881671781920587548096561773617595653731834982637546193371642392967231424822196840569997161391597311553946166740807706412642701443598983609284364044795050331475735634905923360865344949972120704278768251697774208693591813984411288114273040561331791872270612830641079484531674843921158219493568765603067134618901026848898144911572988601062963065750549454855903102062169365772248302348733224644841058994571705536861644067421906012811369449002689853250903004705997124078979248223559649959420910723120028943875120095090032134107420522427704327437936049352773425478710481924767451056981268500158920079271647483589188314275381184181008273911370298120657286394712923840141378307220285003643024327701826964894627745256610023565246428024404976641276848940207721463275716214989007791586516399435863444166564464234383044774628214559066622178692030335813386107662578141358217420554145483094751018922068899531697002550960336447330536326379539349694690734388012175818446400344204773846384196403085830470404824202686214733473872365303343836256415147621969346673203548821457109724486573517175506851744889600672020788030857408093267656517675888956760746586496712587139907485281967942501240812170994884533152258052212337428746735213776192327223544788420395978400877597829651906384137267764514502351034009190728241968644196656892006506425598322419283793369049350901553103035386215685021035061051116436730269990468061174771876988631304331230386283390867955643417648181214343961300387183657099763572793228524655793512877687553910180502364820300761949717573864983934170653794760965836693970478762180255634011007591150558595462781716379770981631756802661208477558185163251414590281447568316061989405720872322341485232073680888728201398630975013647845214292075905035808996498852547069498796296899380289829605960676526495115794733761754625212289941591102672146422697169680909893052162420635287556262230321211516823076130668323950273306527689362779383340282687604045798466403671509844962120891395874721461728889873260572562602189651797970868745172139386556875741820618694579087290239995572047139291050518516345478467924229942971087138990535173019712235139426634348238291808100181315838871434978892722802713722963546424578075964137327699072278523266713521017520262032039357119535107569660323440753066092713667178824891823178153550159420787504497876059376192547563505584245784572178115824089745096644078647094212123606104088697252769634334866078449060479339164331394838315923867874921854760204444937869362749436929014481512056450236272547490183084522784989625658275529279387695048316715777243070623650599368863705376944778085148414573409386666293888255063678419877217256822542921757353710562559270006698843035111856128285440378479038922226848923646565009146084997780012696499853500010035733132900901171820706157169262735148349430657840820536253189352967801844810694686730465773719916706891372442811584531109471472043632870114305454907028976013318782969070410066557269166777009988175183234230886613529196907905723331654188276838181001702492975208474883600394203313494634931462300788048188609930389753146392622601416324184088117182596135498658809432851369281999149862401277157000396522551640565542793910626337476129474539595140329721894438275898835289239853996969048591319808681219243128518104019969090981859971995217169980481488387486571569659280096994043191920769316472438367367966461770973959891538882619445131877955043338227471359620565079156952456890623460606569615123049735081660732079149895767389793677275342325623547527104932802279097532874437791543263657948176175939116559239483810285989706314917928584418356738856354334076477260018560305089865590034442189906917874805413399949053497616607209086477918258243248598269920640549296088813748162912848730805850889488270644450752936810900486474413240205641727910692682631388720054175640722423583842015244026031549004087239687062273898200914168168677390269066294683414515931748615445472479198557909360853038809453900247157003793639725029810755155279085796065439301913894870385803802381987521561653042529568159449688777530786952256409466372226284062726795480606357303041263882398560240788859495126520757036275132156135011050673336301015732245561284795891969292833944418732399517986576762692975279620404733684483141718087275893766816290669108422694402139719196778307473384136396737050032942610451198526940679252068161365626771881643338405331638444680143810009173517357980153998356471753763670032767466572972708355521807174278544391948135316151704885502030884314419333974599769158618922911453994838125674551566438330531676976459372830395542286019172240947683620803842497626228235469564323685676060300162794518164110553812389995025032211773699101266548786685288782913191460370596151929697116095287606743780739454557516338947466126891169143199654406140934680293983099014333309849563557025155443753755298629514560915728233888163548067930981347449011845123049393100903992137871872056579873813223324623937724802108856744035468790263656329819120916581094530319435791434315328329977087531672526195248770213045043851504662924544178046067372877162313880073427934838445273561287519907904357041525379907264383145035735261075128766667493932246840324841048561438104854247471156288673778634888608193618366581110088356120618489308660596145366464200823984732662539588203749486916009497870146499348269543592283994833521635384218135090449768057530892056584915839448483350166820919215864356849884722068175767768789376801495474846152060547323202249829068616090616913977710030264146143905514676277675346440476980605096557015643300844589536125285785440142706046031589532255773352996911281895599657601837414849149740969048608563334527268643657631627532392259592044860634000863936789028254103317794867367344647226229054565806685162808633008831454459816306075582862635046929074410301931648206483746351944841293233337591321069344070265649869182525375417614658165282746722641893420971743218125743928591855945397495560991703278660420516110640489046035116543400553514125280239133737348902343398649162781704727091836726051390255271440520992702886558164293319936181133232503892448264683025919527741064315604849765134536038081865062404074568435949392005904090697848345791634139078378969478538322156635799212129067964801765598814478058089392308094485651211103640456265294424324772247479699954000736255708131619833681551546057020746216130291175544609754459161236967571690718363733618054071104891558718899726099360166674784274329201180052752688605372751178511542650766031200171709074192054218574541155375492663560980295626574039154782231507854953072535292795600179303463259754051215834013674792723179495460875096670081459928100417467904981591159167213205016167903694193242458374106426037643434804223647883721231884497252605086418773562944068257696422683281923801168452969794564106474703996377493339526405961382020500900538388611674225711959262213313376205066223655237332358680912359079585108463097730075833935170078926536483882565563157450077075977531289568815471787432539347835599717663545092261914168102986445316082447046373464981701090634276884138933660917406586795769287865378162528629470029608274292988516333586458495498369296616914866409868403342992729758310001588138014865299588761636578578737541452838368317283357014872746500645929865606325761463950234885859452339909631217363659782161657692835735699711557923891117382042325909578540605397677798526731064664511366326966733402365948145501052199832528191542878372286737932251144307216371668595824407201426641071703440506456949399119251916024294548599235839778799725826529959303253187671558427390882535430460786104861026869609797951404441420130527729416487356141382836988992054737778426151876004287986785090464241083709996597026814483992039453662033922671383964403802106052428722025283421727267657968664816789081509851023750525312279660338247498383586951914545863730774698347175433029220684261634611071915623267679592561087251613820011684001778628984093818980273375543944011984773282563462599937481885397595973392558905154158897085515364961291556347962477267965526163650779924669366604430127770486741729722289215876319431109248823006988207138726357390511435318728416247061833478208359402044816658382188272620441376227522904670418727655917962099712574765133274157822424110320302559035558876382075317739872812078071526414142450081765742933140948101852277422421607172476790885606781008751003173990138817896466044245121222539828942823513169763288890912176169063246697903980309189280508114020345014715103243162080130941453598090571092316732931955950105554464421530762445738834329349995432884948024269732625068003092636825319121647511883489399699962644186008273034113462491461357622030741678971483739989125251013227392469356495779677689205317739579715741491968935694614255939986868443682789672242604139723612308252511890757071342755728099220145406686661369593878441250282207847516172319268656591626645975760511139360296152801973648146712863086923952668848946300125896083382074479636421325955078557256694802349203955087583181946772332822056087472071839158252930163356652360018316499315240533550895551798899620370311835989335424080159949912049070264853796339837843848849044051077553832565548333728502507902119875158405950883155916267968179166682523019007413015642338156162830083485395137538093237152769052161409039542305205538253520435742892896751091512165990343496971251440126226487694193227676263489534647379918678097310177704153107561399280158957799707588993313060299128243039808788536336667074094016931244125004858581158865275686370404926527012861077963491069696746148801502898996782132238208972597487547826626204518742562450610468123906678298750634891137208245158458015945820984363576296120746581393997489578914362982604678327567857605663454890189349817759506391052618964353461306388063013652868029825260507747376182483859035937820446506270018636874260173667449494054782883646224750867134979828334802090464197662759562950842775165365311820697962919104189367973500041134203900191012530577264615610834355745764976129276902473945038463948525012625553143381785288035429381883146691905344412930843396324512826486587111563767841180813264557296854576722009783902993320875695280747310611599980189511609169787862693665724713831893053960939715975241823295578767062459443425913447629949407373089325270612113467220114165893291134661723934380103124631120540663039201695034144557911033188155468489558162576022723837256161618557412338586299462855680207478224975208067696533718377407145077465086993652315697525275090597344943532808039608351989598558392787031322125186022210160926755033747979192701303525632735310814298996805185215678142415947039459348939447978536440691296999845789673528225178813882001691686164121584316923705193494563732348760919350943323933373739112347124225151255597891239502523868680002628744294084217178320707575676939813233742164981723894551019602593917392619007279569014226187346748587849759577533445967576210995753438414372125470976724355344920273014441654202309972317942444462873228494924155053294089233770067389138520035630959458381769765404427280283857842898637804881322864592621906691970843624102345522981243343912000094467878002655853078302703004013560347158314909307137318718120586511326168558588202044816739797459591208064913843147529293173819778999805297581995758678085477354153134653412502177945854491127642956322763024241946421960083848144886053356880974527713721016930318914359038036588250633845438469261606609412061997051445989735752822493434741941646891389362838011360614188273348027166192486398424495804732166979696306554184927476057430647344313944599017410257853607671405837231691692443568354624482532116849018188322779505077516779091686587495238506567074826403403661220069593444090707280830281547660676636070470450279252370425292269922529577612649565802845375591593746703465739786266551098558707081752198661630267913122988859567742952829993029711123322208155939125408307609681794136467272765788239069830809989302048776053622455362346336224165479347042415750297521165897214851796501842318447190316895626102382932126368203022064753325036364568770416337640946421764367994450238389913787781324590937737172106934926294963105565658421149459052455175662982448004847061907803158666132321675576951767967758064921544886943590196373069834740133397786470830849586883776141264594372910093088946625902627743203640931941349143706396569233654928012216340354735365021954310712514835469405979416928023555536897370817867454306998800156619298026017703549979668459464135065968570240694592559404350764361967815849909369625565990076413609380875865802864321910018669029068156643233410953054056922825822637202625067062467872464747320594324586183899136823169644486436978336045435448020347302740494181925629272716519643384568508026118681608979530595833399150952674442603491354404998227243348506050210550695135625457281515476071002158127641204740578720377974084300223088118593651423451248757198210619421380746898244369235954885847780829994673498924848343821316195187086444883686061905388429139647355999478736442533061914927882527027064848483736143235728416669471177652400784498822395136803740967723964942391273502026706081177959246730979007457760331940158843877441538549294060094298203098385039183047966372482901722132960574483797584221479760942256452509958237086408655621626941587748744577376926782345517101360044919376013606385520171892028033524462173534173635643832045948201757065418836290764048352847768843640182075705771286021305172967331350658138706825437567175472105340416229199882335092800357678103144877797775919518799834691512837315084862453314294178648899072713222708944386805213187966964145578848643171852384602498085500157932707125301540910250169619735528809511142206397322338200273726616578683913543275518348466839490157025316760098649583420014964089781313089198953911354355852260138370678688584875010456032258272119187046805293794739442668496607625420011630919393337693443014887429431594696535869528973384763415469529088631228170078416883234780742650524646464562303092316894878134286650207763994204446026513427846402532208698028562275826269944695848169929831798015508225120689173080073967136937587310932990808216314600313016775506609899979701332792834136813474134013911981024303686000791038441953254352465995253964933047992088414849196685111508002416105414255649659228849900800041762203639293268180974974055159326556820840166985082589984590423179762747853452960118117666719127003388064400606727638305076989699037934374345017781611229818788781484912457959737809021913782561619101446132016897799981360616787797832446757436116115241202981650434689264908629230765996185240394752789189041075151740369893923308677595500707212487523412805136004754304375106455108549839353053439869307818563173938812847252696583514205052469763654849564823572833253869005082347721787160418601027413324922167849918725876647740581823316533217219091579243028076269690243675497307554489781598214173208665204044790239118277108526956723344848228342354181892654250932266741573417643051131407932925152826984225089485608759542834340622321753262201862647691875310483615880116447523898557745287225596175196830592972727501120852311028547121280588751411624619940052906729848996862913086447442447737419404293870171479124868013787538578998386393540553949840129982739639467097342497791786899797061034970770514764533701391371177270678746707273627008247474582309477242822640003813737484932263200935127491402783157805209525946030652391542810225916536498092795751090254436559150704354253432008117242786331356327852278621922744578747381516258034262124217582939713451613238032568771202051245217562723057961117994024320454076733005310107228917429952907405088389920031763665418414604455963892794808974331872723184539125505785265162506794966375738741302981407024274954440187760535776074115817345840285303070133701308810302046621750280698601081222004045359911187115274045144366577081516417626347965369974301068767828460223867653199096437533410202159172468124434443197851292322537545791604158502911797817059312166635806312172473642324030961187841431063380527881113617613721506640856184137925047419180563714489465173697480995736754810192630586104473211300884550032051315374094431762903082447541757988426925379556846245499253438127979662200265859574024040383296093060380307892849341846884214824220259389079253298373962483976399414343341276596433739988375914856380725843502145528417344935420059121606057272824775400893446441454624320158330807458438882426672035578683427418253007895048706019577335788439354665444958829421488122791544470946480886768611860672942006444538176265832703989957142352007450268985469640039024749984295930066965501476489381866864384887884580030278826765941527066444223671675703685352847000716460883240418988246882167867849495473798830739663352568245020979527807781764620056212147740747799489158235708803435759424498278216232066636427860336388728645476190306960502399432060843608145854894581542871714011105565380966445903068345427928148695233239874365771615158951765635259582569006584645261057134707323281437438096551087282905386118436570314123879987606906545156999657698011398397068658312827427483152063103032738504335628370119425721031434618568002664401513565038242385757513414680130392659152077216891552894263386415770696994626205450749276504255823983573045665110284112862297870268525920497918037548735064841877639222261062866621494090485662335368695891178730889289337894137773532011139003081910943632046813276478691691990192286559864445762410280449649668987543529974541883811956811887776430793780144323615800592671449092171440465908360851900268313222539784831321258243333450291524887856349481607421765100230492870666290149309142229849963902180256876980820835168042038339658673361950042035642456660503568436862968962176731986643603069803489675472799363461126497893874122090648917853290412061841128631940014805591911952268443565429523524904553645841067912268711663025416971346921037729945826093305957644789471574357252835435875370035513450617153878051605183620724285521693408785591761370642715143606865115984444620758822194708179856377966411973959841050531449325962768410507803787983046281114610997838888679957746050678780252242035814781677442057124093028343556148616884539734546946258193558273134713276140695290926836191019322804231945015545637221840042985176509694295859313145239234423940500570900496328732255289632937097045135174817691917435408692391105618236628487579222863732972083654578141089737669946329516825180637551659533300205937999571190153809064028358488971671538647653044950453299038926183246110986280685720140153955564898409508136205787892808203750249180040853573051841122952227351260275260618023107310515748473690727243315117528259310984732101173808239750403239260359832042160550374359490824850986860165381337475810850943328417003110659893530121117201633475186598653532896908129850013460079638404758047648551546548984982956796172986750606860514303702007677294493078138715766207578778536265604011835607284814662549493010680182365836654045412677616028086005232726381886428795456059857557181363901190833602147853848504313459859079052413638423708668000356331348254595859692073930830875509743569918503563870164148235796761117019879236613630144968547123235047934958519982997483338050484088782287039037227076400216364763632960664677400108849870507983357543610178828938723610761460896551923031823616599860936182262827019313405866525401405014330522324266516193745396536148571534867393955664939578122846694757243973268834328285198372031416231628955748271009519457660812546609405989806007969904671653907567517015096696493384841917217974725536136705445873258440171878340803417087631118544489496583318408859558322443398846786445786627412478300554994778447081569222973120951016405983828526683506793116211313053652934787455715395707338569865230423902647229868449182939825359401792067899776510538722615250190370677356233985939812073609618756713449072461065946254514486351923378286523639134750112560296399726554107461474859971137256895768313833579727112100213948627193935318676648369670602996859578972404362027963931901190886733620871207500297590680700888562824911132982912761730810809755948439553742033210483474554539033977832206410841880137683137140547230551202386575599357771486430263229449788335994830607845599615047982961795295788749433083945449248534704234702577420829213768793556027441921179821914845212181447149994086204297488862494602857571561970500929668554894265550217464551511504571327816233798819656011262323881014705438718699555167384626005107587020901760726242080442153664322025125292374999207341656913455668270790027427457181357049394960787867860613358167202007947433411207084055390207037338122875127257056461990021824657460657269084780336526638721287924099825823392335998552434552255664546028458781381146480846061637082794640429657772410504101374173353818960836604856906327554972307799586669230616306949695192333102050717641712343948918428661972288350124296520824716568334532751597509029681764235892625178453503253266124391715394567084929380616932654084256795242950443472443037302801227806420716851298443857587877900791333305091111055331090787587656780121720831936570679648406161849861934928022779746711552178263249432835737914889551717924850185129412986687066011183886361470083925114882598290319707333581580982494882041961902872506965014012352830044230431618979665267668993187282616769930727694210987877295014286852845828698110118996625226654240525017977798700500262784450884936447235914885845861140586575068603327828207781378582641208704665908780510298426274539669430907407276237367109837280157100191941678292038749732451576296316400567497690565438684732461103743800659419575019978452608818193584649681538149047883053935854213677645799604618306611015690122480154724794156997558760220232571596968338843532298164187110368417114957831185414220749550697449251656339558190522606652712457472548172138047000360925206442290544362685489299226329849594813868305573111140172705799659131528359816238342450730209275288330276168881625970943074091520364482108987050557651059469611657006217105901967632838884756911621353063653850513707686051743916151457723108150531399905180572187223095305221384414415923080298011320961584622164505008316435347489475624196303863364205859483221279732241881167504025510568880008981206395512272775237383172283081202932483610988512241668887295415609858219318160494550349168600271266088020846985331475382242270496095907991689213350998113440480190690499557589925914736170229238207347302051043645128736858781612446176482587941464237823701962117734472631426572996788158345667330877041283940240819724659225959937741879264288379242718730325229993180106525352387558321454086986394314067593821687429665074662391733239999382540282249756113352525859858787931950274259971217579065040929612718846362259481138144749741703085869596822770994718283267338736223273865143232613532858691475107425711325648919263559329466986739200343918809836182124061769442363308799580464183395702988822169509379328364883113694882765081931968900737215537896374551050153350140224056609399027482687603038053186681242281184833102962276182490069194313531024335521859567807913822364627739263725910877657349732968321104031314905093768593466662594605118259650250536485732308658029631456421447400059632962828730793849481636377483356653845719789163112385013862197853147718697614935273775161380166471142012774177795172688826933570695907275792572080259131825182252842570040397695620633726234569844001006046705368422704438894879279480094674201044225768557034952800910377807012545011976779265455546584375076320822029696613169714372709217959032234103874190062490770601306300524045322831938288255326567297250754296580784502338960616336061036566114193643877663725359965169826438957211609376758384281808880433239061121069644573002182961905338234357554528086386604990091524448883549901800448009598507760205093358258438483383243104970991400845671514462701126446833923074058615777213583796340924327724139991578209657927661754196868272272329159015808674740259845773991224149150631408983909893471770993307222296436224625504942029018349172391035768220781275478480214231471675142065043170717565697111368436040247752179141907566378404258852987763070995185842470310746632830607014004512106454486561124317478289780142462108546292314756503422400415752072827447779254815257498549025322505359027053434950799544556088349875888683936332312367722431266244723582985529860097779022149874256515704366243243020922247225650301982318032367660662987700375305593724528854611687986766793234893265728514085154843429199522901328990752150775260502421383684816606681997974490451793832201782443011201999348393463857187255590801022212146976323719427243892883085206410118851232184909299577886307959071966080398789718665353094790698794403432311283050695094463533312853106348566961930430976330661947258992758445638681789312489584310100385220783652721762011069400511550072051417790866078274125276421429734875644631338166688115857009973360925398522438007818303003091327420959811055955637467877277300142148029234720394130828645386491606418332814844258340205843482653394227418903338162183678017282511034776676909826145512314132494598076643344226840391632056396756654228553976660600764079708383949461226614270341327725705533938874906668096121263046516170463341731408307910047441003711767092166316146948052797897269345144361903627211117486176902847451998189441272494133751341635381570489333451790204589613887426573622555901070191559421810652210672828428636645801853944910231209592334107762353539833324358588537871291078303756649972418276029807036143084359014012353171884875578193492827839241576894073450908827166459233167215904302757748620347082916322054555095260945807842541832465671136635252356836620875958105773886449065290884546633129040617905649656176264619282695609661361936892519245717635805475332579762452613638109973464001545802779924185549460357704104269849016009428073019055826247763658559250102910312318801525202667423348469660791023914067597754496730677643612825217613373148597171248902274556178849286591441259383174301857475359288937171307235643083278916551579373091221054619928255157702950898197310425887870695211981277266086818850448236206827926144960579250046191914544227929633020087013018727829383805508561864873674085858641589870430286463951218617203168216103257285931327448310031347179890216944437679314245359484291180201896340007039553088027447565685875409419113078487389024781240827368309321628476104107675700793539360293355102822233091571650904940060305826108431731899054155549646676269880623807096902328972847405132020093473183873015803198939452654763001429707119700129913868024501902054035846727839731117920480570786299773356130003115818956914082601588914527537959441236928326687745637090843549593626318150819593167876951315275537179984076036442230825067684138855854261974519842825421190504399975401598050935217850069020569467007157062165696472588591548594294010726943412150319268323272602104176861112428569486329647917127535222343686442491123088789491255777011370024363475774542492518096897935947473711388843183445254834638122879250389273692036552046409322519534573500879173729023674517768622089430427434717610078539206078286220272025497268276030051668497110147449099716643247352419268079093837746718372707432773609407417791575256084264017295555506348127275700419845347166622282917729457027079963597204876194396068913716513419769589977687026633534906558999975924921680392955318709464264162655147205344640272042089416922198602433067532559764063014607926797031438281446322738139500202982695739558693335519323374304692851435480350683235177415945314699843381317485809327178663104664648977119867448481299065476842307194906892637585604511159843073793283963126884445906021906213692911307620318853354957158779148439560333464350785181906784698442409532889314393901091769239184334388577508047338538615638647180518476126020863617589042917625686533146748825196944859141803362025439014997407001596401581928130774775264915625874515674767680768135652154616203755212799458525338904210672202677108477413365809790212289410777497344196423013092114343394361011845364917228528839274504030242327853345077920713740100504628850646970488270241516636796258043108705853671795957520100726521931702388755925410263373345907001282520305997449565893138628439567719849439283139719022895638694365350394312635506509788251110557192232664827487037916731953919729052219602340154855539724025098904125186321336822375348850360250673281813056639976401287323458426745936332006993544773406741694278762406707397751128568143303730617867537277942064911835166440502298042779464770162345862517568797692960916383400634221572239118887174166805155129641709022933821549066646162784659839732935318573480045762940306289263467999847295290766960001730657093892787406036013709810983058768047316166860461732713812127093908649356942989163345726949759149914940544843750095568262238142044438593977253362829645968783088431381689404740022997484352751504733891732216229518267702978038501991175396018060997667865779629829936575177084074830527104066059052609217025433816979699096701706976808600254545143112022603774462052913049494018320632892279626822024428367779601674954182144827039472318096966134529048262745458406638537134847209214030215751601374128942327057078582513199250387809794937642440398650079005034724794197851106136092099099693076556965751961584194404303373771336933409696754264604045472850083676026986561088458863411696694962565253809908753630071140800207563088469460245609607821802933699997844881915586547229410713083982766255356905559382324306704002389014540240796734067507178589817729283207287861377027745603585357275606435222359052837307755291029689232864099905289929695224337396229405915915434427397819353082615565157658291634373155091490661128734409329493830246855995051273057507439488761896471070686704119860513461338528176273331912324300352708942894611249673864007448574854649828390414481768269913770256711604533585923109926828205220992053407765258679561153074506596891142818444301268484882232992582796088833364590339817031231589758457340686035179050754988036912768492551164771786852350154745021871127243721999685810925300903191213948211301369850843473464874995399220351498373357794041538928457479515654492737407902065957803551502168617890640331547043824279339656527207371305560274666084927983535366193234780818274872274063327963573906384365282660998495738524982272800246865131220060643496984111392426103616739845800240839250499631342604387272752877851786726789914185514331517895670759431000092510072506667357915990943053053305412673230075767266251566971302844111535533119936652718316556841253416960281275941113044690374500841548677804398400714274312763757902779459989830811349871048323124301357356339321465443548380703143379014647670826370625453524948375287652429402049102658011415243862627869819113034300102253887273436113104016419859960196484202655267687088630526512522170601966593251060923085637980108278365015341447540848411100221048985486910165820815756876998003891339031158730721297884584484774818811936700873903692140688165547339522102280581950164123939584227270480719877962979381785634166883832903880687974813081655062750034225614772479851260325932107211634105573720716933966459770591665175733015197880177723790749815423096408927705712495764749730373673313115985467707283768631779046388790299835616345711585762677305284214207869404085134610978609127658088865815214828299386157060836634520102723106935874599296389943306416689990593170539559297182523264933833882200263219138957219536020403791912948369283088800753466407776978272008027335215291648298976564381692495229751370435364151818246405655278153281335861276467282923598026841179203799927563381574924737411638558938830596925183576059700863729613497456148657915611591687059910350005619584386847997155851853899909471439967552341057643729018909956099085830075271046328320220125735733217324942056699521544667140614036878263578247190355811535696000687514862796516541033296756456424276762932583248342771346992634161737021289603548716840549703129293095123194548429004158129441471770393712166918919325238182339407546818034735527550084992135186830512326899451207215605929537120282525114050271003664266110833952214725231269469736152863846242463836469585422405010297681216452846492341994244745875533755300685324569759183558145698073514672114661547555800615285082434802013570634389870942560079313793904252326755643747994092933202602138360036501875675174378708068372118211871069536044582353260198310132329525488183542887114223064077210262800719174362183506812320151177468539447983292653234576581699435289234932352517941398056116160789602105431692487526421143769838708018652722061724366571957830611512478751957129566224319093165226564330535248204826257257664186832376329953783166891627484803586724457342720147727890639029378050496221593608481170234136163969018741890251099216230753360767669533622758967989612687924000776620092268054842704062865275242814923240055440720127404922447738120555551106188200041543798462385440096116734664679723103059387831931553237793260143554969898681884040463142469583949335225094282687723048384243538561094604122491163577306830193940150620033272389736567241260665770743746073302286832657784750328492777384714043636992761146289029397035417911285874151366984996826520161853071569084211810309091744761847255312310842923964964139515790415957199273476872379783644214266852571599847425762740005536052648805055039772258522533086782056846451954832067910173581150366040685781275581372390648863909504563142369827054284348134525575031355582574279708133046508056559694253500937907711015776571127187612963966757528630207864077796457743049625378241372158656335970755150122660495622847603346844919525537804953416700561896580081934598289674025605752832590599792142060938341901586770029178048362569653487688836513515523428254410476725483276927288841283019461408071529957549368252371772619760678730725489416232479547819896853637709358300024271235926905581854635561491493821044546136785871235891931081473678032756425002136725819028276533436601354855079741333235152715059720965340957821955288894076681554550195180962158686566973541797252262780876182951608206660739555881069157766051112042608682648127334349125721943247508476640553296730642225419744495332906052382055129451993967317840140756094299702757946233075750865840459979950125810544951537614199244131126149731785181344105515439953075789753832450584095556000096303982958231476535035591201201831239424258396059653203323553637760703129068673639969291656910796767189086953317214243409190170857566574279501332756196006123218975523050011144420039740462894781344659750875317321306453742121255720606784226069209845210432568131201889202918838822344497644558688766697989762555880329193549307274844633519874453496306760791519004478739717263602342928008250161518481363099350684886787603629780629765164000068557235996268236208284791202309264988488114938558476855085226143631580391794540488074682205929293442471650005154962320651243162507754819920535931174249364771921607188181234738955479405873976146965874998471276724765353751375061649149986104886253889154292808073997895506094620008914344625422822611171870332343234679031684867028146323457791014571485643139842766309645414526973112687091975242882857499951548960138937035650948134873868913800823727430096090903390777678959042414167267866957297365022928922163689406183878608334947249032258626667275563423267752487481616578144972429872108974222961022770695182334312532339851047240427587095239760914157032247062014772472005971073588292526323525003250551059166415345507249692202537683789606358982443167127347690458836807432220574881603448208254138818552785832221391736656581094886732910593825054238803452651149713914963355951375255591867971942243740175760908423083169866051285660777344335188587803790496525191168993436944803583862901553073289088321026507855241431697004323231174387037723248482551352795129336774578350685424789915194606540227775500678120599580090561225257924485552364424382492449561096789238793020463801140385232441120054823236272563777815339684896901394717335692960651295253632333462933777237534509628144518741197381769583336796659573924708817646822781015784350217609189070835418796997476902933794602600783335115805652252555925396657636060671151617842108790230996669275232458610304614484517606263290724069921961422971332003729049121627610716959146370570843858870933795776462386014071166552339433702380927265867274481136379212593822924641127954393507144166425707909464576362702153977383026507307343701338609825112851254814544379659892653536147323559930495933898887042406010853108102142735125003708059651737058968282466078578959854720994609496214560167025820806378368738778390756863665158148876613586353283268944201817631429180449084403739524044236090142161105013554837899204737337442668879370736129809739102945690956744772745467448311332627296382066433618264009841084247977506803457828745245130238753550311992347029904429043076942307439639863566556009903210915145999952839196841542442773874389988873157076651805050338615144042929345053619709315448319834248531475070342223265710641525059903050668692925341822897040555446842808678970505798077772737371956147915712863342240927191829025639331802199424748740550643545018051142451404879753709863128620425640986037515480760646069921974548637240992430417582288181279733696320429663714573792600738601971603755612094541810071055826023184559120439883065163278861463781147050193181588094422208444723938743763172221030573703548010414288654062294308455735199991942460336833062503359832441331536773816590897148483366600744998576867516606310159595156231731588175837597138254104720353426575493087737451376887260295648396945343017862990689315444009848433977378055355313254798299183027324062978513045370750680508901644050348199504031016075125915189595620540490803004712234726345394866811860841242623946419053583069751837922046218603345350718015080173965170801771005540511313911939326833824091191746707948230424357941333732851026697391214357793487511985160372032762893329199447209498915042345612801243253108928868769263407069250474899219002899666593933730765712102124124314381940234518584056366688091523951145179520388894520188088130436641168120269158500619518332385040166989005010860922974718946551568266176777854857145516311066113939656234010505219771312518139433409122534584105083224476290243683696950318729337650097627651019489175106089912777887549314426474382902500502779557312343896433971162422572750616448672052605093210452600986047692459765035535956992263361066735081958551014519209535872078652250455201313864795748335533308633688209340727106771605268509363621541486559279957018534484420793957196742670665466220779122291596206971148114751474441463683732463051275097562600145291659033380696713322078348353882058052390369040373580425351649944740989025929057316458994058042527525527129135976512411827632985747200013026514275417600474662147967078371023441092863800277591288085923125460670957248265924153951553866413570665399216719224520775062703061128667689350283735803419690096109075743789817181762114173172893791376644635444521842250578857237465020593138591785900967753576322935984308268336926923708066798091590030956799482185465271841651800813919598537845382919004279450441833792656330979161071408344388572942207841938844052102046585442636857641835629125335540198632806592256439901914457002122995275835061705705897242053366565183776282353823313147453789345954221850185568800224960249283879291486495052933955452486314791620779418024217513159398939409561648590493815676081021814864711985844984275743442544736112684882466955373957292456820541710198435120667053773928611765937056890403479274552845716883486282871911258276631926498187435153340441676594168250990719453968203248415064580316306487322629549974715222780711452090732905950857229852020102347547520820316491124109412522757412174156297837059570411774940781908324043837543590642719114282383125629013777127281562584903241553026027304117836083331732056102514116856378061760094167473083235756432069975042141568305604038503257453450065279335275736130091316052407503021964582165789889920636876636939135684891479368250314901565258162730210358294010151542708224131314435560399801816071241073487528961518557537629326541648097859746998753507279211866930830525490080855216033964141744838880430448434065669055560644128916050094848344810816363337840641346446830765257348975318003077111856440517133867765296107415236412066028832129805335045796319961167870653966856489984564296292318196162559144883871338758377509419126371296684962195060807668509412050270848345555062042818669611926053047972528034239520496358450055350157309102636589528263008113759765405426789448391117428339714781232884453497327439281125107576709097533882615468397500120888459458101490762208138999901989834770591740717937841630531630613081140214395099874947000174135544658780129728616100810927341905370249261143004615706809644734272396222346747119790471435909427657289514289000989027170761704569297249667567665678395472542909928743610367124781621168413613605570831878591060122248080451721379352540409506528753662708970108044308349399941726192463250361175505440379264446155491727854971522166193029464189629891677074227433053455402810883863031738251995300655296488577954257430366456986942572220088873209943979624213918165397495283603698096959470862689118968596866225135820777854022944731590277800423906973759161455938097115896948238826102128264758667379969553486269989191918493250997984840188715614623825665080089878262371253724187569125634633611447785900272791447350913486848983761251389558602438539888562461747972000966726070823802668805989676987983566163245526893774272240939637083609924587166544961295299152960221214672499044531750289205491524646113452366820996925945585738103714150396078077769264812486207589095025733640416433824063794552451964437891833577869376745191347433886676850108894821496006240984273940625646535018167878492591919213376840503005821609559808000931369054004315907078023904705708945941342884384181994384865346231835970159597006296634110755479552159275124934654217728803341297502439042445910332105095429559200553458603294337558058690645676621077847167690455261120195753315422116923692738364476585051393945266959218581317764413029168452088674505364506282723035951897195063423060410048211625220300020626978374326420351414036077189152849676118751887039433040759774958826548324502206140454520408893776420262622942667602165205094462014041304508875635852372881228439933174535422986562790978101054948365818361659215585582403508993830312248414345893342682042942325366591433867357782951165459681218977110497222901197213758727948735547586309609719530816798483356901660201161132086178747696921512779799815929238945820689271433600680562165098993475543560714074043109316826715063528874945343858168100882464061414201796330716533453432788184336766936579641204649093261180613399983641605736291290526734706136135599650233853972035609189802416075931054340647941501420300652359952058582556350401643784759984979185033289824965039408883781279297790119101508112053941229447376055177088248150365750872827554260877586400325362837825107863389376134775707333627319939716145082795272743587940682585556261770949477741100895963121677394471466413198308498984207465295642798440760501441239769416936490679514680640785819885837530170147109668633711203181775428546550371238101473603922199642496042180304124262533925134198348052370301714240504896309829763569806836018432582972502594461817797481083836185383533892349421201049258542250888142432776719849954979723948037942296463145029024412494889792596716362677279171622961450320679350996264981909071368504646604540639365754944851088948302063528592528104509094203097837144597356509420870779299509392116566301962804891969889849778099756386473663152249238113191990965693241617922256279091310410506066490552254580208217359400450167707863098547578399135075021147918604913868625454478976589603495355756143005541088886534494744279855470870435534322075515999317392940937070524967275727326268008293296094146643460943775301201130460169584249686680958598618721878884843267226894890649501384572360844171993572062136087215673819904411511979275489097719386778678110271469386925835517555123090801938175013716290852507120420410604522023494124100351174216268329771983322735255381408839556498366565897171606235376169125764690346836654814547075792604180549684377943325879586155326744899868295099332819778484026600180166996495339510597336748408427533122872315267326160744685537281604981222759591108272741294023183582705981830050988152271784092451721220313429417222559627137483556789720062903636882855668406852530402408709072761956412263949102242483363261547632274500805825040388625051106879007557548120734763625130341938849594349262236702065588612806790649184010333904211779630920599554463875918309730907871963012078514902493334207208095182594791653044294627048778687296455835990204723196890678446266801485984914487896476534488014795843432833281061618372711622192686020203632738800738019171481749451472835019909072873891049114159297580182072980268547641663078008756864072260397142917083491291067644141478507322514222661881997762187335286918279602978157257023242075503195913983270096821523958156606015617915233342935187482397968560122814447782085594342672379225238520965644952412947205542475098850947411806158452273728065675450544396586192047365648455012567622152700420634461026871373530392608889822895342544122360623753024902884173708952475702774140542932221648029925162743910335480684907071984876492766058192731709290998187575114481197906270350379479288945557995105805523669697634563367912612222713366722692366722168850021344626952525885021703919894806031593198451939442612913893383997147456291385330692894273502901615450080229863922111539980281352998007020917200511774773791836125925728710540592670147416600212814486368313463630645396057088379728455296633997961401116925752725561090754154850000122814489752219328404910305405527719167133365207157649679110773545451265502122837692660582659903459676236448632402668726982883138096719354227478734516205483706616288213636483257718338987267929557389753391727498332120946749695434319758920660503715710484444998339204107264224595177115650059882813233960492841469170636741630912345641780965102010183758921912147711989085696807816291083275590271360278838428200839047465024041278205198940861955869506108512730561170074061256733794304266549506613711127253937206647174728788340722834659052773337144527495330302595061066233667482834684117158307913119742109947131699011826667368779654964869673833844937594330108163560056924308692086745278298005462467169590369668242860790501147394111071007074808195265225330170681798809617098817433966500617676856737708508399133539199151929504288958808647551805814839922882301206087951717907489862854042383403102907078778517403689194432782193484192079920770049059592770080339859056959027131147097364473516491497093006710824634361818269809059858168830822386722803620611526402228101184413095376739790853493626546755107516043717697782122494058724235986690972742420633872388260683182842840114356329617946762831250434729740276819880685352636751705287161289970859927563727302573002728956943039931688960600958369531336921325228497283354359296249383086219731670309735171190715753162783766924964938555775757322749927294986482986732209785428792684413811550858422753732284063222773055201286139315688807313645813228849978691623191082714088679901886784543706026225596905763663842510975256968581031721208664958109207732429377481554784541947767788461703641480546914469553220098845016370518572164610665098097981482020082939255627693293002891949241359543479042702131432722816740986931378382653867901273465030138731869707062349140268504118121905082962668902817833794106918108717913189979260954323844446256128920238226153249782166500136859741774697213648516722383496182056223783514879620203541981599805427896148636599629983172231211764544269022772635533941175296473927344256524798252646753283930223068484137616531795471700104226533381705476020299837917037450104443614161863893876668471117227771033459636925212979816038761548752107061754385583565279145200175385091267795253610147152772780229738955625151522646451729998020993899452978130395040213113015015404450747560690104225536838440090435400166226246668222816751750704344361094718385207598163249329754291300772611131991708132164040560690777948062251432255562066013082050855761987130355901208810118424519086285998033524745536658400961970598097890253728281847698784871931730429555927746931690569956149213366321814688271341497393007939366999180549377502641480781585511111020174111872037285353412064175388306817905218936472823029447076817499299711615352544956900608390049979951022658812218908069808803800896908273055386176973953744134114815632048576293991387761274795177730044902521920058734852321948622736126479561677440936178362235408020768614872526620247173496937849825686174336099023840190884678551020747180890802187206285642508600685303392372680400029594845605674104543781059090103152636107764185539918013023033459613333000418072973884297501946808231542594492680078598258342933857001260710978986835650585888263974191272260168741316475954770178587715941057832064711206684791550322826021805102583603371850906048230833014525783153491676777371294388680042521836285342029756986415274278530614342886088064762403931369212284618896505402888029412558470608170969610261549351303558406477384380352379423369590855796443172500635963816252102197767411729970043530912537757076853694867765779133224478154951636005582259736749061518424819973673131457330905811062905387385643066201944035526723013642371846252873077581043625937392630725340628036884989351944683946918453415329907405340435803298999835186719619350884928418837637610128890761796785277029803676337440320396576144671474465722365100232272929544911168604177314935958286479433825041802319151545040969617550942447637879884949553559510266250504267044923428373638690717342393829624127470308671541612346686978831354091022890054115440109706590725125328617622034678789669228290813356117979283651520486418238320655366053082447599648389113045010547253661806665520358370674186141966223413079532677404462971696792415757065028285035472770940519851437133645463066614992996048923176980255801208970360669364167474163298788909897934000936442190607937815705795488888981536855916719490971540089978867920615107778728815969078066842645606217995767549045052859443707378999788355019913529814769040877676645570081073436317783797784452126674783981224965634014782228430108677966099585159550938251105125092789398247762617711547657170679958898713499660432596252079037033822694933990033292918115129923305574977366360799081802424427758215603330077147146237589022798519179513520335040674322334604466373325787821336403836179530086623056535318551101585293157265827223987529374485634163579295888500909751688136690016464394973733833708867770330432179618115498871252148815958992110082993432320546750631136026248356545899131296871935058751485211976556570700388472987863901533730386034014143981180976277421804933547058562961170167895637717201566271127314531548337801672403650287390131585740583274331682047066895818067531590927351529734540120702619363522614350503586930052123395231584745281241690293399511941474622007636760920959389240435582955265029705707803741765719268563099692573054834108375856883630939909256561955476303899577931934935950617812369990389247030134638124285977203203232266960083556369798385016436759985672680936662542470982525100109666934027694958196284447958078935628121881386295814359055852755218121210448077659194000585760392104336371288944953453402088118338872409538322828163504803614548335576539472654470821301673128061528282129384831924054122445241303222434473867059455868112636876108452890286981926512323597275896731021040648741392625084801491064277371336210359612120601840957374101245976002063276347422417154665890387088294612256098249065521001139948767139464064998994456667771765532355391898288088423189956023586821460640469267019438324927386969115279315242054097820322051758679196137752057467249282498663430340963739045881516534884640094028125509403092143806385749848251173724674973198488117692686412629992350858278026938708966507870860106191919721424394180841638615626245447320463903411506760521194829463105252642994144710773982474311732257512701126697674973220662835060812093215875643130553629813310492602033521085398454817898139279430633096194634589060740563490434508917537901359356321477726770221013866566601637270318181768881093379926696859587618427603492692939932591277225997830501941210404497656873606295979039124255396745501199469189687590503938578152703823879788746405466850607423793075352231105756303088059702071478014348459034664963878858065103005549484388854251549424230851162616664092978303557490923909025286853352640480746596588989891310005331696635619269928716705837847471531195666693686468138722516353407527194763122878692474625251601464173659972159019256729354425661089344331557558584257192534191399234778933699447963672935355485409876670039984771149333978416067945612615614082196130427279885670141313974483603316459177165623737979376814184515250178984557831628556237656117633750549094787850716430105816580965029929408293275818839410179265767750691410848339223164281107684459519661756589511828347458226671623699865423385567302148970548610079966508947494134449246291062160166716601341764209123853969186192764425560646167180566863871490776229776740467186233829107356334956924609645464187479390126859254857317281837246984924036612548034765484667481180583987648993896272811288927136294592256156445163445673466189708257483099743360605162419027007933771081056382343869100013724517885093298837172468479570852304182691921815522779616564659889298567750941403780642298664542572339105199249617772902868223571804725234169120908198484217564655128651178081081801640161827392905760977776984174238255347186476953040727325733257082527345083789094066809472708406769403002481380797487325505356022073373622850930678311962407110317655027302395463304591741553594269771402742388628177252407757273240390675803676583218568243961386325482973331980311178092498527169718015448547579797506746509326297009544498256226976641301233963773628078903525223997028252558925288185986339861151953889034836465274862506482607703181085578124751138398937198968287485933855220434374267077874702440044420952096533950758445815069163606601911665960946781272878895255825017174770764443570858637253745346064431518062420406270096370805511965127923265216843853580571032229831533950572167552800858061294178331727774081736926012919148566499662349858922524236427332298948804139114907269783335179398282073596508909625693936543483312610979620420492952355000459790052059012064103309635136271150256461473680190531495919636852978515752020030193332834797483670522008210314433767041411259526579789510642185562266318434487044022983048267814141872626165879372570975801693007185357064541478736733213482883591036833298445219883215663941291304088308242873762094550845064105613554379557934144599584091501172528055910703217677626036196304666462963033465222095799318049406152358662008631840410351266207822057923124098282224369585116898003806219728546878204153774454265655287159913601421947324860287852370196098458591795527003132827065174883738588768221022446728434052430803762639462575719391234749983074440704651908480329453927916324768849315406244377322625427159526400431981516044886059591216278829963062223828206911861992510402498805027419240931018217579510769649152993827910012833691642629684509799081872884167537691963822283152161248436853607367553946164480796911865540910647302796403851831532719363355420150439170466650713085911357890806849757803468439838320555335325900886666903756730562628152684275363929619995669625988703071509035338299299756619218098496546540073803822708470301110050614369376667049320168198319415477803741417112144261071912953491182566607429643179387479764104222479040883757165193940817328840198003081366183792097188921706815725024260889259568286079249821303906323411437383101818743626866156799040283912233414398761347953633548666068291533072948073878142507363060889043440745542930845005732138127032476441905298373873457671583396534288388818755133589356405834588907846637502026475300050533982883567130981294842373488432821119476289388508992130478211504615562281120070860073020852002464020349561568545552965040250507009044090146001566852357383443143058457571171338013359187422736141997644862095807232140983167872071746132332922646860969385073371545168402794069646743671288615860486336505011076650928147919596534267828329527292384199890750313830612455408137366876766841882275337682133046882460047622811038662331554958537884988650931045812145200696559248637402596791382596117277832856620370629309437796418136819105877804877807751521262085767688165945332023808950077385852620447932565877158043151880476738883577733311136931346435482156044392075417520223358091549855459999207848501623058868013008554554474259019281587473285585441996443869870799947685013572126226860257134213108977579836059781477593217638058856604597103071218068399063969855415864684992014911850756142138670156615104316717893878593806664689341952384066856133093473140508542638876373968572881228532583438691489117403351549771625983327197346257008434599566639128550360094629420264723670243266021158158511564580953320355771473588494356402851946279314891039497347772412698882510442832935985619497738908787038173356650148719759422222000714621967522647428494337660870952314401164429171021564221218303545095212755673886032465686427872381902178746025629875434086874002292419383086559447980499077587707059098496052096794833841500281086086836541741311795180230268366065758302577608788297220346183890465395542313291111843878496785822351816148467679753041981569141386568272019787652067255312327465122949241229995201926567790547169364398411400920113770550604421357786638788881993360325396838973752416294082271508541180764561936288807215533784549657733190284902782414077446991867540950988479648990307151841027782887886724698588528243438531319508396969338287049964307150291241070777600539243230671487416630848915686749774197164203954618702594162737714124931462767229099259665949610132525672848671571506473977849852005672857714872922670967651547847315501373760953210217972136811643103231607603025046743056747902222655716486888393977373957747060225806445123062359187482266063095675220733149385394042279875184742375458863701331735052940468942179724601981014187793088025929147119679767979388167565377960884505572559246175091748285072050411078323247865474548466974189231338161596282820284121828236269493210369997289208720802736452492724761661499420292382555291530712289355594436455684949579722703022067517960606275670637500780193399151957018746204367118196216556561656457222952399001921642207854019665498684914925017172402197599555194963454847358176316525374230840336682076702629261923451984969902661878549711738820275374860760037214069040213006024561948025138950357261283683385741846758271167192829047315744218402078905111831113017758323754695802692214397519811696539804264754024346885537419689232213740125638063741205057915849070345358911827192323928620204211256891683776596838121994024545770359428896455038940140542096563699641531177780585690655854511881846909117895844403479954416694879479481160755105543549090660047095944160236756311666565532537346831257371047678835482035399023717832579674441225873087517429890574721799133366844253015767646793176246160597182607918484158728135860486536254425117055571454267754893456172614236942599634051836326671388640074768918881397571113870919874981458340138367115336614715703101347171185022833367039511181402646363582084368705418470589739994630998206733504056993952925825299388118882142657247542735328957886697576790055870535719341137825495243822928406569041975189872421056338621572128132230849836089284828691758061884118192086794713196065140047236747567776445827247843468562386960717594139721445130586333662268339099502475620243301945302538462471322570042077407601132395131478611868873180830690804144668806767854741050043112293607174954521217781887991202522993700106669890568757447578831120491512188067123009843500393406556707925722544945829170219669224995697270424928400428450317349839308035078570320463318340085069990703301158191237678403511027017097328444363497255005457560361061804649185524340850396152189396586941869412846922961587896735483088275216400192399557237810459867785206856966205160884676622609488909594281911428517084747918856647506035127370132830305006981556317010633370383577507017606862593295358795824172833634405182342772218187769287470744284803047215446265041970717791110601905636281818312519581260482542643117835016848009058285224588843264957559144054959877400868753070475121045441946834675651527824872494608243347020488053106998385625095910254056195900311900748301811412448853463063195286360201493534879654900306625154780811050313891766167298860485954045141182572648265085871829415810435543890055981480977150002684637191471577176325312128238497860679727984792324966189902852539696579277747080476095095370534594152089864562510219829356410969374683679035396418301336987973911470737741280922862996584382684822805670708800096285844373642035225893874754853482067505969163695274661036512960177927424431700237694708459656774467209643713847606087832898565911632507888263923632315605452044107367045972374648979540195499810556361969196660458413422962944009746932851428574425767064269769643237513766514956432239765632597920781158810206859182158722982674753978760781376285501473671849315602579557694323974021388572403974222187957499887289328275425823255464269908897516558376819491716363889870769410066903584434516252531518585436533123482926487112466517476919673086334637286097234996633335393792335809628237061550124557197476600290253086792947960316125872533562588986565859656697200898141408766555211797752311142221035276052717238317183325549761874492008279092833642085530406693133443271170464839137780730499803147574692739222146815898938819233980450733656960652141034825848147292366631338494608812204889703533869433666516987768099487367711097040307068756433332280916788898693633430215959282510612381170049302756787273101453514843961965996161839567888023385860157253843469543599387180528104220955230676530980828637690501023018641618272361353217986947049451216487314541686008797391006052284822653118276976856586797402620013378790627225900659239079342353791660623455955011935843877013382549612957442044248732029821169414375570315620045818121103220261699256398951965457379480803839009024664559646292939977068341351254720185140779973971677512747962344453967045032329497158323119344889185999493726676381223534579958877466416888455184216660117113090747489077922431963539641362662637486383175429615978833079335609447086493936897485378686619280125923562966556304932800472491403906353650216856340621768007158548284640761356991053120921746591319883850986685790103205379029161149525523182761782102749741667782734287605972051272446311578356530068729317623750994635893629382389252194956221221685264536465703629948343066288347874327074545818803647043761606393726523078569340615329696856585968520827674618789212281876535122974966734105074006225312065588776272855365973373995436733391179796981518105432832475148477684564252313234887160308812760529975491633966344151281073349491399939092499033559677875119159399283192432446791668446967973902831140494738318485329926723114497512562035977715258241823235685336592796383165790515707121689113772041780096565527107810078980267562741740407060770551669467594241515689739535513678834781530064115684667611272540423901055061473042408270498742784174380886024338589406555320509916445533236679527478023656606507252705029696649386299554215866691861474344008947666521043520289376523057458252018660865227246184836131987712013980067589214932316920128909200698605354385788019712735525545615476011450038949910184746291853401002158161955946065439168244584685990717912507104647654488846314814986687837658022888237021753234723391084840642930753565631955428767875359324517693049612718251027714349281743502807768040965068749274202376727918794508595192976994314551224026805355114724921511943408631134714240762235627889084334298401972406573706279068967400930780878028776146774770677327411489567379256861548916984626468516572219134821075966664026773635282404428900007504260763441704332682025826937697123290535615059317610102796465177507551022638569231242521278796546202404768525458583846964843498128368835798233191575171555905728555449918841151208826072663135091536537311537667549247413737337491145877030796550575216699433282397875688668223371903672625943273061529396228566657024286880218515678618230196762464983672703565132094827836512768267625895252865164547230982169085847336951148654009833922148047522265951065820331314607821726488615200416999032164634326599147019539580270184301774207956870672536584612720161248769465152120483032493676782816683620135357495709949316984175844207211756596166061002691118793123845920680397003103463584454777151654712752452873210578024591206472843119454641063021933383403140335756692166363676769197438853987452021337064331917927771556844590892936733276377160837993587046026320003321958775859648906700413155155597693560055910810491532857463022791158263865847996050345182484664879695071665354060094502751217605565063139765262271622907029889445942366332869186359549351230284879005639925944679524569683701189090664667161628671037096476585595562928644707675778488125874324980173047528285862611423000443932050364017945432793845146290694890826338033676855130755375444934927551364721317920906543098581974739876249470163263818227176274647635359207224540932754562199564337863783515960063239796906963396173452803400506820899590286526244690870120271863843702721484009568556668685771156436719967467324179736505082298842523419256098405478039547877751914266282981731379273138825591792228847035218445463787669129209421315029551495032310177190110053185797742892496638745464476571980460234514753427291738285932021178191653129462181365194788091118038203516563771918538907707928722642903569837039982882563255138393693040033747636915271507110050329724727101975567094254976072114097579390587043752277774482794203960999948642027355123671841262668657641416719454067324509735092867622874546491897539090964564750523811265805994658657654110586549920047627126692457223634783347349444107829588834556910389623358393714406454337793394422394730560831281827351131470813142615671755884077713926073064389641118384872379040343041357895850971709296424438563967002892377365545575117560417704514894031868323970492258300081532011424501443741780915845853907109251702847221399390975550841661596667852684714754851307492558708465150419990466842072711066947784209341240386070278450666350029459494618657354472328384929022077926388253988436668597999802109891530355754597263013812703913903157193668028845257638818200500915635001814798224987879790750742315815006476308807684553528502833325925672312292961316669529703145748205447767053284951803884208782503158834630959344535824245113473889672136131076520012536058405884742956579777429430684390130718293589146114856700869208222294123472496008483163150081903233655003242953702118534642743167432042377662942154008473647954608912240916201526927874139834305106421422143296898676189073504014756808113532121099607604054466832512434788090199069820335771464716059437237357263246279856902484180033857593229644272158859197605618094853175030567883678588359911820206613227273052429288113115297317989301039445687516338749268900798629732677145997530314331121201063046304028618371413846069299306600331843615442694979686505535105149223685139499997855406959570084017476999939828513054650607716117955544438410272677143114985507392956300142279437242663051612341537277391528572206462878049273437165904056913133880178972990344060550066758071460577374664699005160266932749996944781248608618125242936101190795163387158019931456749360470550077405121923917062637674722887885535148340642449713481964142931494009834908243124563660074368417817891282017329886252250787538229009228439272150885101180833655665588321258464452063171154420086544377502349794001318534976085739276927261241642883636034732316234926653877042221695308772013637130805182997229388819796097461175155774963795724615594204040168674241648927590052512032437553421846001803663769910223477132475659260340716083985007354167415981807941923632931532277784526014105890093466669712939718270872393983992339995876170141968956286584883116006594211226413219937596974395996656077290832263167916514943433108706525619836242033684179522843723386947830554758126644597882154582177860916492305979429217432981198985986536767264207138881170290189787430016742263987875083113131019753855539856154941440862176277252648191077692186231317525152888142952169839047761902755271569374670886869773540640916533690638095083660637092167268812271344144652019183992108824716044278682157469378667888771243847265133459195122089877744879154981494830759272570468233710635033172656631668816962785167121634052318981057949536715321033207602844733848632686268791904325096280754048912171807687778201700439404919700028108966744564645788629111091193914810585941315883756768877997399870928422553042417084872671410398381223579983125934411789920959897920278267589183534702694690670472409226975993257727097566524561702734432921356029739585147694874058591784919622596454068738226621570759141103463018515399111784931017922143589891743372294372766967760974222211396723953480767363130238661983122794190438405242566689455554877147667601551176333901947502999714570231397504138438623474773754102226465116620473246683051437947170716327980938362921337470165972954697386489215508741488505002308868507155177638502651502002343220070796304077927192353554898110228297928335028848173428818739751681474207800794502855736509585753890221012181542827301062910586876908100319473656497593794843430030941973921397936785065549983096181289682711415184780244233532241470338619850378847871395758083120163924800947822509748214122434451843334338110361245167580723278353797121942979103620488451888724193906090298209571629475664436955356956085806863926973530983679204800408099676079766120128586416997947856824421307010022871512202906682374717857658760957109320610389526998683359225220030973044173025725694939952484588686980498701383843246131479937796485525405534919243866004997776425978418072464398774475974652394982723620877216084531029595724222495758835556265618820779252774013599372938555016909976802189581940888071937439129027718926875069057864057701714617488280978475470166662442623185833662759506143250826071333642126592767727341767740457690955278837014887612788563509278363891674485964725904761112049875255322871477840441827938132020646188476513398442525228142344418037974536975810162695409644085988786140737319326695136000409008976590674416359018531241392293181740808359985886640864993223531716807632621119874851251683947119899563826937925301437505900721601667940644336866910670270242313589384348772368050028145179411869797232109346252254079696637714794527737772397523030099653435805267931718957619013012988222813349043125920791793095383216498833837150742721990299738150700583866681656838028047920736816875161830095788581496188262944531147321331909768907526343637090215048171261247148890534898608729234141278493207097050530401374307712949898229029734898848986317089284263195198062541436224965674503920339848755900143776172730290692636510496986091469086360399459712364413012711858867493432477359686127538710895771421865113958816429273154144612864041552847739371309714129690876371426711484322562534056915002630873555693136392646051753253526604959429832472747452527953315976472414308645829665827612053641298439879634227283776448743108237071068032555284651206080491224922138031387816271402000140372775988882010701439579880905932209807686888968101069957047531761742511199996807004909703467543717068178177768569950831177831212918836644411267263246364058170462355020561698415839565070997944270882838008949433390998097881319397580481275219558658457146377207066004122744709575410135862593399900423607078035577690177436766766818179986780337007014757434011792609598176200910612198842343423783733550171272344654448773025494867113231468702167612589891431928740064110081207069217207451543417424845944074780602432278332774517001596093461532785013856124685385544144480634813314799312770309963477826989461802272213590631527875667255202382510841190253416204760495016254405489609725166787163103714439870429480362979658375695967400497540489425722788615184781422471226274227709078839357825968105238855388158166959895677163074507493031847664250249707513911372111514709565991025905656048186407559039086586788289745450368909765678677235804722607142179070946403361094575048208923231148132783110319877381102004438542456735157189167805026337770634970554169888705485998521208361759814231219089638227080110046222114637768777730553362384389002223687353230903059395623062062284553289502602908947510916122441996225186346647432183275887131321944562196850603822240738442674879225444130190582807870725982370293838251371429710498460069306336619545672815786836683789619342913968435717296979547815786711013410263834563151005886465146248690616990456861972560207711446205377976012608806052172844099610247944656817707413620915414386311006571263943684957058690028750860518645039498993698568560446432584458951901791161017864818551709145041131310436538324715561632657251375416460123955426073146412137265816552574960512210535177380117798344602199150471425942680792572407877187002049282786954034382522210028739933952130836239778920242245128111407720804437414217332566088890041813994347188609333590209189194375765109918778702162282291110558125745736514494701939159361326249713287948387858041066993136861832261965793589384581280694380464780886366715753112230300838875344322069740216637851881864752386729036901033796471650747212451124137727931200857013097829174287601473277397373184494276183612482520947677415723272799318789027380374142994466794063905773786514552077266602372878179757035786232439165735073351178044857335059203119693100536654468844677173003414484704857513969853211039349681129600085837133119430544478446569529528111834246199244791536292144107918191626235260630894413638148849669821545072136115567930745620686678723330644266722415590052021789551995950476059390949955267335281480086023738678763668284928447695693306779646413780609191946605175515182047798077137047142703321872381695365272986780505775017295433592139766955534684152763583036495719685381944303729996355668208880748387471901384274809375296174159098746837075593984921550268684693567151868318617119265392160529976692878600571282219748955017015674852723770999210194090692403971467730017007029048558618958255402175177987780694550311107033683890418116984954409440661365633913065886575960400355411547110412829307065652693738279334145297579419215771941314142085590119876717749317511743167475925937914695460392054229545382885389070530176116312744698227515053960014021742474658128941693109595597000184422897700604864184044604404413865045826896373892306776116658944559032621359648879446167723527072976148374248126170786569821628926541479903825432401167149211104868905806188721072188803824045421212802510393590809699082586028250541893932281262231149408011936091170463692829043267207018102811929076445627521848678479390581784782326898541736503340370438616185318997852926586820958902863571112912797990558240336137413771983284454253308232366089721199387605051486817630976574546756684455960018790464461018573148717253759860730786122334182407388114490476550528241584003244982804353301956009934092492827226507942372478179162561811193925676370607854762689835027147439096633693489855113097600414168068721090438423034444104246762668441550693446840384805320906263007162232686261209789312312038439256589848574604573404645858792718476451208668116566921517496768515251371247069615318569219986847372519633440301942799721619394032283147591531726005988159088581709024784947120721329135043992073086564059761844976990494884191409166661548722119808858237657898804461625407618699575409174954745291354894566436483924841337712231476956312965514917401635407631778464005302963464104367908671859695005645841187608035836703888758359823408627487281774344733608444436876649387006283618191552496849527281129830458820639794934618570299301394340122286265768120077107047277701723052679145067065885599317097270575833757253060548107139849666624207583218614779589303287154816247095326298765614554873698080605415957677543005560058418316386938423291945256803818750582121814657076171796487868634792904095561269986066704581455834025534180207295801572031177760163717225256076666824127245011138400122758356023605118942443557497410785521223593105999143599249080059502734083494993907367292190295256439938287786177914733953983408141035864642350041515810108458363577163527863877029500521467203651367620407794596546608745465821068730871550910664234108755348444218306461563520053574349973827349180726983235340698032020412147155238826250784844657950991216031554447162141626191887987009603868303120344507126205093703774050991203247798400131630910388793883913337017957970034126264034422713057868654351465978504008440722037723689114360868718119964036249922380292638714686408404808522524753773946828286937777257000252728006390973701494172997708734907807447434815965472672442315716596231085466062510787922153735384018117663360611789482708071510011933609035007276224494202463564667028922532250882322752908255721524327570806894127393693528000253695353433112524364624976887902272817161472735162624022700401738910726873146762935437608658721623695283608274577111972747620882252881141979436247335519382371606885990198041666400062991239399087577696490667217313513736665563321080730897528359610993650117559668731821573319271270636658413379252435583914942079033709540888713057515817301518522992847926707113875467198249191380675368049750148784403238148377444971875751876644195518332260904402590166353928437988822148249780949066691094837536429633558426521427196396770433176049495248991044753482060003421025065699588683068307613614966079686145193062368109960231738445303028537933160080977901184028568961714517934032130821049442208104286747431834148231335380600421959523366450975799833471432575660522859505692271165502655912479431627687147374580031206797035078141909614451800804034613417915830030902448528619012483835527011114114458211173074313706259061172694040971188486928298824820948208712719827776469288071553558488250521414281927856763819275113048091242761864659336727654266660470694871957323356928693120886933993470576319645338207620608302791139196837702335166928999829009113132715595729335938827709710631944226775358392895678459430493587919697233062351829765608647096797767480886011203170640504214984760418497199210638602753284773159200149969881955725900229696912942967953942138600191223193885089375071475688449558681090489987924532679137081947815925063962654107374398197392073675171578733244981420330169377635253400283508097140283390227091617967986346246960998328350150322018806441065761760693538644686987768413519096262331695550928616483224676585112446515160162923562994352911432777338845951143500799235536679956680564060274635605638181759655323470886804377938591410685550093430429100547341191232290856965218360371336161270404634720317848774711945661799739293765797481259620825381550434463730300058173146139777823966312796826831759164887754547834475754347030205222600486930614062647072885806428798737330402808062870058548191960844578618809605983989844753850934392154034905503802886252637721161486980371921311599225598261478526215252445576736768218144382134866381636184867434365170608812298837090609095849275893853735065959668739738322250840136500116702678451425358573668771332343023381136378903861137905148373685014138875666043167968472310679280703580157752179866604945003931901350465241468445016400000394595721778392438383884435446576035518695424678517895349983541245896665207775636316850849203428908574004872435067752747668000801759169656890307072256023824914080006962641672470606308791182691692298452620967038679448566825085214150322429123080935781473082513029061303325624617286334732984286193323655228789418141514803232941273549171940991806057438861056274638555740849929625378265460198551316981065968921469395832941796837535642239032278107691886956649393957271184302223082170776330369765582691132354653970057690727603151421635871247534640419482252567719973450685348813854702027284066053309468903884169649842670076672013050850238655610604862979637848143138152028699650146333397081806110036248107173187721151859039751755389290007425197313408411486662100130230972592324674525664330651664698795045288755107774217273440809688283711586197975496223568548406235506764474171710332799543494127688254792119281325604559908310179904474786615857317873763605723623161530202797528315792062634907313477598777420361931147401901632070729506249386479694345435608906989839564592140109643187747648236229176636840961925344029883616238246919504690783328820719170793628319269739818240033104021091463395222295286001104425827037174504036266884494605157649443261622036752341780251767431476802965178744078157272459292340021327834619126932760915935270372404188650562266533534127644672912431306362688242595907772239431674704440709634883384062286239307877322493456835274780909533573251083232578252779247338291548964063396643478646670304123387284680019684021996553693116445273642643612114214979348750394922386550922134665062096961901403632288370583940556855452643883256485312371766721307952217506921679100448515197337122354014607865786820672191934647982393863540128700878098181555254583879234246117295004813079504053340363898500220830221629689184429555945795728802834096964872325271865344926806089589186573806333410055447127736785793350741385736732276099872451020466531679242826054753630975088124878946960253868243606604202015593397984000396110581241672974534873562072012634782906174371725102569766078241610810528055238748905871578302574565628423046811701299446387634080642494898580651870725453117526690849339187252340312968370033692787710639354698720026854858228496268232278637510512297683506355982815132996657719938707158784382673186476141923827707513392821089407055770962255925786116408507448253731837153656134846496346091817290373189545169544183717427618347475893858464328747029862523467115695070827359223935922175421242702310302137050454047355807031312643683996602757261997488191222587855244915190816015754673806155840364866375467068644002482098582529005643289995859260509809667919920594813713398325375266122924817966348729059982520156778061552249884667662561814839417313579793781247914271453846887529976855233458149677712106785548436122645081805873554864543107941554828327418095351737292502297453835778419329954038858018348084368935787729615128004816640458985789258920992404304785350405394963898681780921351830476516055542821790878961006290237889594159331511608495506225259047097402446507767617277899424338038889024684450121958638681014927706618076512635830794552764167938509416068332915984430707123817678619226159341849383454176568335197119835869954892138555201034653365248725711190413278899993468894419391863983024351231231577356808738924223525060284307464200880763566088340846965305052572561638084693427512109649244402758921720290532283403368392842028810093112166394735172901186488370479791007647110628928047786623661640741516237300192006875438804969043295818548667967645299079476370799381146002809663183180037775755693817418698565974293396164740219690432392158756185415132606637606740970295070789231744915688349023011031649717631715117675519411823027281163827908510288740791974276005111504294156185069038226654354875025555061679286289102778204682294859456524542161171458279647867342388940304610728873790664451296525329369821994781060137672701354897833715915383499512270450686176950231822351700752979024193800496420613959129294492394804185235987958243156175625854335754278766561496812420092577011586014891448697278521530788599758459838083842670523776755614589324318226511878931209884446804847279191752840744874863207888362090009185470544932418748537374673674592149294798939704567394752010570894823293086067423253729030188168540979288994646062344247356263028026054944308004248763598215528430045530970771206182432354816750754317304482503211465791182858834365096534894115362831050236029556065619098410046339535568271126732304203055160793747204122245928258689085591571946777189414916832790609169316511188807849240923293263289121872081971756680683002339757779966165362538197265566809785453449166692956866592049620698143488404064369046695900862832646095835342888782441041028311576286869304683461706810013954102730316356814150321012124410830103145780461987010222534076069070495073010118910932195693390208357854255277068162381840279200045720156773480396535729847868872355361948387326080552536313291526063267096738446401755397716869476792502186930680856396067754702382632940544502687326933708278416670875929480659482075455273114882969462410475414622177795016504891738089127779131359129630381860044952965632546782695568607784889384671134499177337994864543032960427541090917751541928472785982924789889970755909102940128616818397385273258849869054067839421350098626942837713718214908850086095957552735417898620011906904514000765049691370232344435026478988964569428565689913457959607405392749791558016917353059019760399674543799500101947342253229269236680059900020224959174507524447015121012125247742650110863208010622734046571245501622708139940003286781448573034296467280184285513281426383696015652380408927488717950589958550125463414306155036721880775531544181532973688191764943910574638147200498757676843237539686059964684734610377061385048016621617186569920968664893307109871033742408301407273753093803790994279519359590227692901282561651088930965925948618818037293458666450457049534395186080710065922668613317371710329038009016608875646088816997020923734735396183757465247936649631014498928546912758382076740614816265057811513788617924508660041677183975036415377060520487482650368756369000548345397445184449486261998899953888327061680024963599788578573852694490669661168527496354102598767117273149266118867593014274040862590804831443239099491828333310669650043288512521461653486828884840854172034297433509948630429903989307600139883243138902054944332272033057035450864764979473807135439844657102289666063001491215768643008728047904611912051283759614014897791592053155361599874835247727407566762187614773660044678441182848525733594961338332809744862056819382742148372215496461857053744683957172019230880426502317691160455263574498576518279400270486432069316765513164091942069107841047088654216633042236543453138343041917448002316640295630954889193285929820061726755219314893712141733726732905580112053533814138202584257458006017222676958471292550076721522224056313019856086241348910173305701443844820528152296198206536117261545028081996226935855409111847092505403502225828304955867051751011552802135618559044531236412514769050363934790694157280932283660565692986466425941670773992368325985183829472067124201501837779267785168115312135555715899567593372989790332545001673263210979206405384418673283340766088086007657195646404822167234943741451117837301052534741465859134389591284015120373858995580404932882010512034072457257706856340639840992195602848573354949674648622711931591876634070464422996758030224373551225722769212401087990013451716948411797619859068857858294375069901070741627623408294124551158148246320593266617536958304520344269902051388049792498338791725252142358586391261500334213485911125460229958085145189510959440563100232228037541160021117061128449563785698353469572684480593447494772232167514461730178238583222690923239981437611629542490723092084408406540311473438678750159368818659204335483826794579685522403268298622171554124582440093233560380252570625138596740840164521660685942914528378052037154516683641246537089827722936752103871146370923622614387681256477855070607699062324862521757304190698668438435677054307582213722891657491335802607048796028390579745595629119380194964676406564548007660582420449936303044601055865622771923967861501806366462058621898980387174224414140897002865954842981798120572986076776062567942231301214371560267845541807601925066198525772798582037217988171778397249827096955269081879686763593227209919605131039117175752101434255246207711824846553128349592917442162934026501156479303352554308514818211961077725665000356896648139951158366038505115241820495208204319146759619231755938088608529961975551523446621115013873726623721376528873435656158446819582864992644532886341057902683532818218472936214858064754912376658489237530152537433819211548104952976739854108852243274329140645943516501912808032359882707771365727477669959752088066347024261833570347332218516323057759275459717